int8.err 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977
  1. <sql-statement>
  2. --
  3. -- INT8
  4. -- Test int8 64-bit integers.
  5. --
  6. CREATE TABLE INT8_TBL(q1 int8, q2 int8);
  7. </sql-statement>
  8. <sql-statement>
  9. INSERT INTO INT8_TBL VALUES(' 123 ',' 456');
  10. </sql-statement>
  11. <sql-statement>
  12. INSERT INTO INT8_TBL VALUES('123 ','4567890123456789');
  13. </sql-statement>
  14. <sql-statement>
  15. INSERT INTO INT8_TBL VALUES('4567890123456789','123');
  16. </sql-statement>
  17. <sql-statement>
  18. INSERT INTO INT8_TBL VALUES(+4567890123456789,'4567890123456789');
  19. </sql-statement>
  20. <sql-statement>
  21. INSERT INTO INT8_TBL VALUES('+4567890123456789','-4567890123456789');
  22. </sql-statement>
  23. <sql-statement>
  24. -- bad inputs
  25. INSERT INTO INT8_TBL(q1) VALUES (' ');
  26. </sql-statement>
  27. -stdin-:<main>: Fatal: Execution
  28. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  29. -- bad inputs
  30. ^
  31. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type bigint: " "
  32. -- bad inputs
  33. ^
  34. <sql-statement>
  35. INSERT INTO INT8_TBL(q1) VALUES ('xxx');
  36. </sql-statement>
  37. -stdin-:<main>: Fatal: Execution
  38. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  39. INSERT INTO INT8_TBL(q1) VALUES ('xxx');
  40. ^
  41. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type bigint: "xxx"
  42. INSERT INTO INT8_TBL(q1) VALUES ('xxx');
  43. ^
  44. <sql-statement>
  45. INSERT INTO INT8_TBL(q1) VALUES ('3908203590239580293850293850329485');
  46. </sql-statement>
  47. -stdin-:<main>: Fatal: Execution
  48. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  49. INSERT INTO INT8_TBL(q1) VALUES ('3908203590239580293850293850329485');
  50. ^
  51. -stdin-:<main>:1:1: Fatal: ERROR: value "3908203590239580293850293850329485" is out of range for type bigint
  52. INSERT INTO INT8_TBL(q1) VALUES ('3908203590239580293850293850329485');
  53. ^
  54. <sql-statement>
  55. INSERT INTO INT8_TBL(q1) VALUES ('-1204982019841029840928340329840934');
  56. </sql-statement>
  57. -stdin-:<main>: Fatal: Execution
  58. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  59. INSERT INTO INT8_TBL(q1) VALUES ('-1204982019841029840928340329840934');
  60. ^
  61. -stdin-:<main>:1:1: Fatal: ERROR: value "-1204982019841029840928340329840934" is out of range for type bigint
  62. INSERT INTO INT8_TBL(q1) VALUES ('-1204982019841029840928340329840934');
  63. ^
  64. <sql-statement>
  65. INSERT INTO INT8_TBL(q1) VALUES ('- 123');
  66. </sql-statement>
  67. -stdin-:<main>: Fatal: Execution
  68. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  69. INSERT INTO INT8_TBL(q1) VALUES ('- 123');
  70. ^
  71. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type bigint: "- 123"
  72. INSERT INTO INT8_TBL(q1) VALUES ('- 123');
  73. ^
  74. <sql-statement>
  75. INSERT INTO INT8_TBL(q1) VALUES (' 345 5');
  76. </sql-statement>
  77. -stdin-:<main>: Fatal: Execution
  78. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  79. INSERT INTO INT8_TBL(q1) VALUES (' 345 5');
  80. ^
  81. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type bigint: " 345 5"
  82. INSERT INTO INT8_TBL(q1) VALUES (' 345 5');
  83. ^
  84. <sql-statement>
  85. INSERT INTO INT8_TBL(q1) VALUES ('');
  86. </sql-statement>
  87. -stdin-:<main>: Fatal: Execution
  88. -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
  89. INSERT INTO INT8_TBL(q1) VALUES ('');
  90. ^
  91. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type bigint: ""
  92. INSERT INTO INT8_TBL(q1) VALUES ('');
  93. ^
  94. <sql-statement>
  95. SELECT * FROM INT8_TBL;
  96. </sql-statement>
  97. <sql-statement>
  98. -- int8/int8 cmp
  99. SELECT * FROM INT8_TBL WHERE q2 = 4567890123456789;
  100. </sql-statement>
  101. <sql-statement>
  102. SELECT * FROM INT8_TBL WHERE q2 <> 4567890123456789;
  103. </sql-statement>
  104. <sql-statement>
  105. SELECT * FROM INT8_TBL WHERE q2 < 4567890123456789;
  106. </sql-statement>
  107. <sql-statement>
  108. SELECT * FROM INT8_TBL WHERE q2 > 4567890123456789;
  109. </sql-statement>
  110. <sql-statement>
  111. SELECT * FROM INT8_TBL WHERE q2 <= 4567890123456789;
  112. </sql-statement>
  113. <sql-statement>
  114. SELECT * FROM INT8_TBL WHERE q2 >= 4567890123456789;
  115. </sql-statement>
  116. <sql-statement>
  117. -- int8/int4 cmp
  118. SELECT * FROM INT8_TBL WHERE q2 = 456;
  119. </sql-statement>
  120. <sql-statement>
  121. SELECT * FROM INT8_TBL WHERE q2 <> 456;
  122. </sql-statement>
  123. <sql-statement>
  124. SELECT * FROM INT8_TBL WHERE q2 < 456;
  125. </sql-statement>
  126. <sql-statement>
  127. SELECT * FROM INT8_TBL WHERE q2 > 456;
  128. </sql-statement>
  129. <sql-statement>
  130. SELECT * FROM INT8_TBL WHERE q2 <= 456;
  131. </sql-statement>
  132. <sql-statement>
  133. SELECT * FROM INT8_TBL WHERE q2 >= 456;
  134. </sql-statement>
  135. <sql-statement>
  136. -- int4/int8 cmp
  137. SELECT * FROM INT8_TBL WHERE 123 = q1;
  138. </sql-statement>
  139. <sql-statement>
  140. SELECT * FROM INT8_TBL WHERE 123 <> q1;
  141. </sql-statement>
  142. <sql-statement>
  143. SELECT * FROM INT8_TBL WHERE 123 < q1;
  144. </sql-statement>
  145. <sql-statement>
  146. SELECT * FROM INT8_TBL WHERE 123 > q1;
  147. </sql-statement>
  148. <sql-statement>
  149. SELECT * FROM INT8_TBL WHERE 123 <= q1;
  150. </sql-statement>
  151. <sql-statement>
  152. SELECT * FROM INT8_TBL WHERE 123 >= q1;
  153. </sql-statement>
  154. <sql-statement>
  155. -- int8/int2 cmp
  156. SELECT * FROM INT8_TBL WHERE q2 = '456'::int2;
  157. </sql-statement>
  158. <sql-statement>
  159. SELECT * FROM INT8_TBL WHERE q2 <> '456'::int2;
  160. </sql-statement>
  161. <sql-statement>
  162. SELECT * FROM INT8_TBL WHERE q2 < '456'::int2;
  163. </sql-statement>
  164. <sql-statement>
  165. SELECT * FROM INT8_TBL WHERE q2 > '456'::int2;
  166. </sql-statement>
  167. <sql-statement>
  168. SELECT * FROM INT8_TBL WHERE q2 <= '456'::int2;
  169. </sql-statement>
  170. <sql-statement>
  171. SELECT * FROM INT8_TBL WHERE q2 >= '456'::int2;
  172. </sql-statement>
  173. <sql-statement>
  174. -- int2/int8 cmp
  175. SELECT * FROM INT8_TBL WHERE '123'::int2 = q1;
  176. </sql-statement>
  177. <sql-statement>
  178. SELECT * FROM INT8_TBL WHERE '123'::int2 <> q1;
  179. </sql-statement>
  180. <sql-statement>
  181. SELECT * FROM INT8_TBL WHERE '123'::int2 < q1;
  182. </sql-statement>
  183. <sql-statement>
  184. SELECT * FROM INT8_TBL WHERE '123'::int2 > q1;
  185. </sql-statement>
  186. <sql-statement>
  187. SELECT * FROM INT8_TBL WHERE '123'::int2 <= q1;
  188. </sql-statement>
  189. <sql-statement>
  190. SELECT * FROM INT8_TBL WHERE '123'::int2 >= q1;
  191. </sql-statement>
  192. <sql-statement>
  193. SELECT q1 AS plus, -q1 AS minus FROM INT8_TBL;
  194. </sql-statement>
  195. <sql-statement>
  196. SELECT q1, q2, q1 + q2 AS plus FROM INT8_TBL;
  197. </sql-statement>
  198. <sql-statement>
  199. SELECT q1, q2, q1 - q2 AS minus FROM INT8_TBL;
  200. </sql-statement>
  201. <sql-statement>
  202. SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
  203. </sql-statement>
  204. -stdin-:<main>: Fatal: Execution
  205. -stdin-:<main>:1:1: Fatal: Execution of node: YtMap!
  206. SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
  207. ^
  208. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  209. SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
  210. ^
  211. <sql-statement>
  212. SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL
  213. WHERE q1 < 1000 or (q2 > 0 and q2 < 1000);
  214. </sql-statement>
  215. <sql-statement>
  216. SELECT q1, q2, q1 / q2 AS divide, q1 % q2 AS mod FROM INT8_TBL;
  217. </sql-statement>
  218. <sql-statement>
  219. SELECT q1, float8(q1) FROM INT8_TBL;
  220. </sql-statement>
  221. <sql-statement>
  222. SELECT q2, float8(q2) FROM INT8_TBL;
  223. </sql-statement>
  224. <sql-statement>
  225. SELECT 37 + q1 AS plus4 FROM INT8_TBL;
  226. </sql-statement>
  227. <sql-statement>
  228. SELECT 37 - q1 AS minus4 FROM INT8_TBL;
  229. </sql-statement>
  230. <sql-statement>
  231. SELECT 2 * q1 AS "twice int4" FROM INT8_TBL;
  232. </sql-statement>
  233. <sql-statement>
  234. SELECT q1 * 2 AS "twice int4" FROM INT8_TBL;
  235. </sql-statement>
  236. <sql-statement>
  237. -- int8 op int4
  238. SELECT q1 + 42::int4 AS "8plus4", q1 - 42::int4 AS "8minus4", q1 * 42::int4 AS "8mul4", q1 / 42::int4 AS "8div4" FROM INT8_TBL;
  239. </sql-statement>
  240. <sql-statement>
  241. -- int4 op int8
  242. SELECT 246::int4 + q1 AS "4plus8", 246::int4 - q1 AS "4minus8", 246::int4 * q1 AS "4mul8", 246::int4 / q1 AS "4div8" FROM INT8_TBL;
  243. </sql-statement>
  244. <sql-statement>
  245. -- int8 op int2
  246. SELECT q1 + 42::int2 AS "8plus2", q1 - 42::int2 AS "8minus2", q1 * 42::int2 AS "8mul2", q1 / 42::int2 AS "8div2" FROM INT8_TBL;
  247. </sql-statement>
  248. <sql-statement>
  249. -- int2 op int8
  250. SELECT 246::int2 + q1 AS "2plus8", 246::int2 - q1 AS "2minus8", 246::int2 * q1 AS "2mul8", 246::int2 / q1 AS "2div8" FROM INT8_TBL;
  251. </sql-statement>
  252. <sql-statement>
  253. SELECT q2, abs(q2) FROM INT8_TBL;
  254. </sql-statement>
  255. <sql-statement>
  256. SELECT min(q1), min(q2) FROM INT8_TBL;
  257. </sql-statement>
  258. -stdin-:<main>: Error: Type annotation
  259. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  260. SELECT min(q1), min(q2) FROM INT8_TBL;
  261. ^
  262. -stdin-:<main>:1:1: Error: Duplicated member: min
  263. SELECT min(q1), min(q2) FROM INT8_TBL;
  264. ^
  265. <sql-statement>
  266. SELECT max(q1), max(q2) FROM INT8_TBL;
  267. </sql-statement>
  268. -stdin-:<main>: Error: Type annotation
  269. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  270. SELECT max(q1), max(q2) FROM INT8_TBL;
  271. ^
  272. -stdin-:<main>:1:1: Error: Duplicated member: max
  273. SELECT max(q1), max(q2) FROM INT8_TBL;
  274. ^
  275. <sql-statement>
  276. -- TO_CHAR()
  277. --
  278. SELECT to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999')
  279. FROM INT8_TBL;
  280. </sql-statement>
  281. -stdin-:<main>: Error: Type annotation
  282. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  283. -- TO_CHAR()
  284. ^
  285. -stdin-:<main>:1:1: Error: Duplicated member: to_char
  286. -- TO_CHAR()
  287. ^
  288. <sql-statement>
  289. SELECT to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
  290. FROM INT8_TBL;
  291. </sql-statement>
  292. -stdin-:<main>: Error: Type annotation
  293. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  294. SELECT to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
  295. ^
  296. -stdin-:<main>:1:1: Error: Duplicated member: to_char
  297. SELECT to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
  298. ^
  299. <sql-statement>
  300. SELECT to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
  301. FROM INT8_TBL;
  302. </sql-statement>
  303. -stdin-:<main>: Error: Type annotation
  304. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  305. SELECT to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
  306. ^
  307. -stdin-:<main>:1:1: Error: Duplicated member: to_char
  308. SELECT to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
  309. ^
  310. <sql-statement>
  311. SELECT to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
  312. FROM INT8_TBL;
  313. </sql-statement>
  314. -stdin-:<main>: Error: Type annotation
  315. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  316. SELECT to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
  317. ^
  318. -stdin-:<main>:1:1: Error: Duplicated member: to_char
  319. SELECT to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
  320. ^
  321. <sql-statement>
  322. SELECT to_char(q2, 'MI9999999999999999') FROM INT8_TBL;
  323. </sql-statement>
  324. <sql-statement>
  325. SELECT to_char(q2, 'FMS9999999999999999') FROM INT8_TBL;
  326. </sql-statement>
  327. <sql-statement>
  328. SELECT to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL;
  329. </sql-statement>
  330. <sql-statement>
  331. SELECT to_char(q2, 'SG9999999999999999th') FROM INT8_TBL;
  332. </sql-statement>
  333. <sql-statement>
  334. SELECT to_char(q2, '0999999999999999') FROM INT8_TBL;
  335. </sql-statement>
  336. <sql-statement>
  337. SELECT to_char(q2, 'S0999999999999999') FROM INT8_TBL;
  338. </sql-statement>
  339. <sql-statement>
  340. SELECT to_char(q2, 'FM0999999999999999') FROM INT8_TBL;
  341. </sql-statement>
  342. <sql-statement>
  343. SELECT to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL;
  344. </sql-statement>
  345. <sql-statement>
  346. SELECT to_char(q2, 'L9999999999999999.000') FROM INT8_TBL;
  347. </sql-statement>
  348. <sql-statement>
  349. SELECT to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL;
  350. </sql-statement>
  351. <sql-statement>
  352. SELECT to_char(q2, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9') FROM INT8_TBL;
  353. </sql-statement>
  354. <sql-statement>
  355. SELECT to_char(q2, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL;
  356. </sql-statement>
  357. <sql-statement>
  358. SELECT to_char(q2, '999999SG9999999999') FROM INT8_TBL;
  359. </sql-statement>
  360. <sql-statement>
  361. -- check min/max values and overflow behavior
  362. select '-9223372036854775808'::int8;
  363. </sql-statement>
  364. <sql-statement>
  365. select '-9223372036854775809'::int8;
  366. </sql-statement>
  367. -stdin-:<main>: Fatal: Execution
  368. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  369. select '-9223372036854775809'::int8;
  370. ^
  371. -stdin-:<main>:1:1: Fatal: ERROR: value "-9223372036854775809" is out of range for type bigint
  372. select '-9223372036854775809'::int8;
  373. ^
  374. <sql-statement>
  375. select '9223372036854775807'::int8;
  376. </sql-statement>
  377. <sql-statement>
  378. select '9223372036854775808'::int8;
  379. </sql-statement>
  380. -stdin-:<main>: Fatal: Execution
  381. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  382. select '9223372036854775808'::int8;
  383. ^
  384. -stdin-:<main>:1:1: Fatal: ERROR: value "9223372036854775808" is out of range for type bigint
  385. select '9223372036854775808'::int8;
  386. ^
  387. <sql-statement>
  388. select -('-9223372036854775807'::int8);
  389. </sql-statement>
  390. <sql-statement>
  391. select -('-9223372036854775808'::int8);
  392. </sql-statement>
  393. -stdin-:<main>: Fatal: Execution
  394. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  395. select -('-9223372036854775808'::int8);
  396. ^
  397. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  398. select -('-9223372036854775808'::int8);
  399. ^
  400. <sql-statement>
  401. select '9223372036854775800'::int8 + '9223372036854775800'::int8;
  402. </sql-statement>
  403. -stdin-:<main>: Fatal: Execution
  404. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  405. select '9223372036854775800'::int8 + '9223372036854775800'::int8;
  406. ^
  407. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  408. select '9223372036854775800'::int8 + '9223372036854775800'::int8;
  409. ^
  410. <sql-statement>
  411. select '-9223372036854775800'::int8 + '-9223372036854775800'::int8;
  412. </sql-statement>
  413. -stdin-:<main>: Fatal: Execution
  414. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  415. select '-9223372036854775800'::int8 + '-9223372036854775800'::int8;
  416. ^
  417. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  418. select '-9223372036854775800'::int8 + '-9223372036854775800'::int8;
  419. ^
  420. <sql-statement>
  421. select '9223372036854775800'::int8 - '-9223372036854775800'::int8;
  422. </sql-statement>
  423. -stdin-:<main>: Fatal: Execution
  424. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  425. select '9223372036854775800'::int8 - '-9223372036854775800'::int8;
  426. ^
  427. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  428. select '9223372036854775800'::int8 - '-9223372036854775800'::int8;
  429. ^
  430. <sql-statement>
  431. select '-9223372036854775800'::int8 - '9223372036854775800'::int8;
  432. </sql-statement>
  433. -stdin-:<main>: Fatal: Execution
  434. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  435. select '-9223372036854775800'::int8 - '9223372036854775800'::int8;
  436. ^
  437. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  438. select '-9223372036854775800'::int8 - '9223372036854775800'::int8;
  439. ^
  440. <sql-statement>
  441. select '9223372036854775800'::int8 * '9223372036854775800'::int8;
  442. </sql-statement>
  443. -stdin-:<main>: Fatal: Execution
  444. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  445. select '9223372036854775800'::int8 * '9223372036854775800'::int8;
  446. ^
  447. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  448. select '9223372036854775800'::int8 * '9223372036854775800'::int8;
  449. ^
  450. <sql-statement>
  451. select '9223372036854775800'::int8 / '0'::int8;
  452. </sql-statement>
  453. -stdin-:<main>: Fatal: Execution
  454. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  455. select '9223372036854775800'::int8 / '0'::int8;
  456. ^
  457. -stdin-:<main>:1:1: Fatal: ERROR: division by zero
  458. select '9223372036854775800'::int8 / '0'::int8;
  459. ^
  460. <sql-statement>
  461. select '9223372036854775800'::int8 % '0'::int8;
  462. </sql-statement>
  463. -stdin-:<main>: Fatal: Execution
  464. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  465. select '9223372036854775800'::int8 % '0'::int8;
  466. ^
  467. -stdin-:<main>:1:1: Fatal: ERROR: division by zero
  468. select '9223372036854775800'::int8 % '0'::int8;
  469. ^
  470. <sql-statement>
  471. select abs('-9223372036854775808'::int8);
  472. </sql-statement>
  473. -stdin-:<main>: Fatal: Execution
  474. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  475. select abs('-9223372036854775808'::int8);
  476. ^
  477. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  478. select abs('-9223372036854775808'::int8);
  479. ^
  480. <sql-statement>
  481. select '9223372036854775800'::int8 + '100'::int4;
  482. </sql-statement>
  483. -stdin-:<main>: Fatal: Execution
  484. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  485. select '9223372036854775800'::int8 + '100'::int4;
  486. ^
  487. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  488. select '9223372036854775800'::int8 + '100'::int4;
  489. ^
  490. <sql-statement>
  491. select '-9223372036854775800'::int8 - '100'::int4;
  492. </sql-statement>
  493. -stdin-:<main>: Fatal: Execution
  494. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  495. select '-9223372036854775800'::int8 - '100'::int4;
  496. ^
  497. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  498. select '-9223372036854775800'::int8 - '100'::int4;
  499. ^
  500. <sql-statement>
  501. select '9223372036854775800'::int8 * '100'::int4;
  502. </sql-statement>
  503. -stdin-:<main>: Fatal: Execution
  504. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  505. select '9223372036854775800'::int8 * '100'::int4;
  506. ^
  507. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  508. select '9223372036854775800'::int8 * '100'::int4;
  509. ^
  510. <sql-statement>
  511. select '100'::int4 + '9223372036854775800'::int8;
  512. </sql-statement>
  513. -stdin-:<main>: Fatal: Execution
  514. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  515. select '100'::int4 + '9223372036854775800'::int8;
  516. ^
  517. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  518. select '100'::int4 + '9223372036854775800'::int8;
  519. ^
  520. <sql-statement>
  521. select '-100'::int4 - '9223372036854775800'::int8;
  522. </sql-statement>
  523. -stdin-:<main>: Fatal: Execution
  524. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  525. select '-100'::int4 - '9223372036854775800'::int8;
  526. ^
  527. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  528. select '-100'::int4 - '9223372036854775800'::int8;
  529. ^
  530. <sql-statement>
  531. select '100'::int4 * '9223372036854775800'::int8;
  532. </sql-statement>
  533. -stdin-:<main>: Fatal: Execution
  534. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  535. select '100'::int4 * '9223372036854775800'::int8;
  536. ^
  537. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  538. select '100'::int4 * '9223372036854775800'::int8;
  539. ^
  540. <sql-statement>
  541. select '9223372036854775800'::int8 + '100'::int2;
  542. </sql-statement>
  543. -stdin-:<main>: Fatal: Execution
  544. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  545. select '9223372036854775800'::int8 + '100'::int2;
  546. ^
  547. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  548. select '9223372036854775800'::int8 + '100'::int2;
  549. ^
  550. <sql-statement>
  551. select '-9223372036854775800'::int8 - '100'::int2;
  552. </sql-statement>
  553. -stdin-:<main>: Fatal: Execution
  554. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  555. select '-9223372036854775800'::int8 - '100'::int2;
  556. ^
  557. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  558. select '-9223372036854775800'::int8 - '100'::int2;
  559. ^
  560. <sql-statement>
  561. select '9223372036854775800'::int8 * '100'::int2;
  562. </sql-statement>
  563. -stdin-:<main>: Fatal: Execution
  564. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  565. select '9223372036854775800'::int8 * '100'::int2;
  566. ^
  567. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  568. select '9223372036854775800'::int8 * '100'::int2;
  569. ^
  570. <sql-statement>
  571. select '-9223372036854775808'::int8 / '0'::int2;
  572. </sql-statement>
  573. -stdin-:<main>: Fatal: Execution
  574. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  575. select '-9223372036854775808'::int8 / '0'::int2;
  576. ^
  577. -stdin-:<main>:1:1: Fatal: ERROR: division by zero
  578. select '-9223372036854775808'::int8 / '0'::int2;
  579. ^
  580. <sql-statement>
  581. select '100'::int2 + '9223372036854775800'::int8;
  582. </sql-statement>
  583. -stdin-:<main>: Fatal: Execution
  584. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  585. select '100'::int2 + '9223372036854775800'::int8;
  586. ^
  587. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  588. select '100'::int2 + '9223372036854775800'::int8;
  589. ^
  590. <sql-statement>
  591. select '-100'::int2 - '9223372036854775800'::int8;
  592. </sql-statement>
  593. -stdin-:<main>: Fatal: Execution
  594. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  595. select '-100'::int2 - '9223372036854775800'::int8;
  596. ^
  597. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  598. select '-100'::int2 - '9223372036854775800'::int8;
  599. ^
  600. <sql-statement>
  601. select '100'::int2 * '9223372036854775800'::int8;
  602. </sql-statement>
  603. -stdin-:<main>: Fatal: Execution
  604. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  605. select '100'::int2 * '9223372036854775800'::int8;
  606. ^
  607. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  608. select '100'::int2 * '9223372036854775800'::int8;
  609. ^
  610. <sql-statement>
  611. select '100'::int2 / '0'::int8;
  612. </sql-statement>
  613. -stdin-:<main>: Fatal: Execution
  614. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  615. select '100'::int2 / '0'::int8;
  616. ^
  617. -stdin-:<main>:1:1: Fatal: ERROR: division by zero
  618. select '100'::int2 / '0'::int8;
  619. ^
  620. <sql-statement>
  621. SELECT CAST(q1 AS int4) FROM int8_tbl WHERE q2 = 456;
  622. </sql-statement>
  623. -stdin-:<main>: Fatal: Table metadata loading
  624. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.int8_tbl
  625. <sql-statement>
  626. SELECT CAST(q1 AS int4) FROM int8_tbl WHERE q2 <> 456;
  627. </sql-statement>
  628. -stdin-:<main>: Fatal: Table metadata loading
  629. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.int8_tbl
  630. <sql-statement>
  631. SELECT CAST(q1 AS int2) FROM int8_tbl WHERE q2 = 456;
  632. </sql-statement>
  633. -stdin-:<main>: Fatal: Table metadata loading
  634. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.int8_tbl
  635. <sql-statement>
  636. SELECT CAST(q1 AS int2) FROM int8_tbl WHERE q2 <> 456;
  637. </sql-statement>
  638. -stdin-:<main>: Fatal: Table metadata loading
  639. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.int8_tbl
  640. <sql-statement>
  641. SELECT CAST('42'::int2 AS int8), CAST('-37'::int2 AS int8);
  642. </sql-statement>
  643. <sql-statement>
  644. SELECT CAST(q1 AS float4), CAST(q2 AS float8) FROM INT8_TBL;
  645. </sql-statement>
  646. <sql-statement>
  647. SELECT CAST('36854775807.0'::float4 AS int8);
  648. </sql-statement>
  649. <sql-statement>
  650. SELECT CAST('922337203685477580700.0'::float8 AS int8);
  651. </sql-statement>
  652. -stdin-:<main>: Fatal: Execution
  653. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  654. SELECT CAST('922337203685477580700.0'::float8 AS int8);
  655. ^
  656. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  657. SELECT CAST('922337203685477580700.0'::float8 AS int8);
  658. ^
  659. <sql-statement>
  660. SELECT CAST(q1 AS oid) FROM INT8_TBL;
  661. </sql-statement>
  662. -stdin-:<main>: Fatal: Execution
  663. -stdin-:<main>:1:1: Fatal: Execution of node: YtMap!
  664. SELECT CAST(q1 AS oid) FROM INT8_TBL;
  665. ^
  666. -stdin-:<main>:1:1: Fatal: ERROR: OID out of range
  667. SELECT CAST(q1 AS oid) FROM INT8_TBL;
  668. ^
  669. <sql-statement>
  670. SELECT oid::int8 FROM pg_class WHERE relname = 'pg_class';
  671. </sql-statement>
  672. <sql-statement>
  673. -- bit operations
  674. SELECT q1, q2, q1 & q2 AS "and", q1 | q2 AS "or", q1 # q2 AS "xor", ~q1 AS "not" FROM INT8_TBL;
  675. </sql-statement>
  676. <sql-statement>
  677. SELECT q1, q1 << 2 AS "shl", q1 >> 3 AS "shr" FROM INT8_TBL;
  678. </sql-statement>
  679. <sql-statement>
  680. -- generate_series
  681. SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8);
  682. </sql-statement>
  683. <sql-statement>
  684. SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 0);
  685. </sql-statement>
  686. -stdin-:<main>: Fatal: Execution
  687. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  688. SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 0);
  689. ^
  690. -stdin-:<main>:1:1: Fatal: ERROR: step size cannot equal zero
  691. SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 0);
  692. ^
  693. <sql-statement>
  694. SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 2);
  695. </sql-statement>
  696. <sql-statement>
  697. -- corner case
  698. SELECT (-1::int8<<63)::text;
  699. </sql-statement>
  700. <sql-statement>
  701. SELECT ((-1::int8<<63)+1)::text;
  702. </sql-statement>
  703. <sql-statement>
  704. -- check sane handling of INT64_MIN overflow cases
  705. SELECT (-9223372036854775808)::int8 * (-1)::int8;
  706. </sql-statement>
  707. -stdin-:<main>: Fatal: Execution
  708. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  709. -- check sane handling of INT64_MIN overflow cases
  710. ^
  711. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  712. -- check sane handling of INT64_MIN overflow cases
  713. ^
  714. <sql-statement>
  715. SELECT (-9223372036854775808)::int8 / (-1)::int8;
  716. </sql-statement>
  717. -stdin-:<main>: Fatal: Execution
  718. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  719. SELECT (-9223372036854775808)::int8 / (-1)::int8;
  720. ^
  721. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  722. SELECT (-9223372036854775808)::int8 / (-1)::int8;
  723. ^
  724. <sql-statement>
  725. SELECT (-9223372036854775808)::int8 % (-1)::int8;
  726. </sql-statement>
  727. <sql-statement>
  728. SELECT (-9223372036854775808)::int8 * (-1)::int4;
  729. </sql-statement>
  730. -stdin-:<main>: Fatal: Execution
  731. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  732. SELECT (-9223372036854775808)::int8 * (-1)::int4;
  733. ^
  734. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  735. SELECT (-9223372036854775808)::int8 * (-1)::int4;
  736. ^
  737. <sql-statement>
  738. SELECT (-9223372036854775808)::int8 / (-1)::int4;
  739. </sql-statement>
  740. -stdin-:<main>: Fatal: Execution
  741. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  742. SELECT (-9223372036854775808)::int8 / (-1)::int4;
  743. ^
  744. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  745. SELECT (-9223372036854775808)::int8 / (-1)::int4;
  746. ^
  747. <sql-statement>
  748. SELECT (-9223372036854775808)::int8 % (-1)::int4;
  749. </sql-statement>
  750. <sql-statement>
  751. SELECT (-9223372036854775808)::int8 * (-1)::int2;
  752. </sql-statement>
  753. -stdin-:<main>: Fatal: Execution
  754. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  755. SELECT (-9223372036854775808)::int8 * (-1)::int2;
  756. ^
  757. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  758. SELECT (-9223372036854775808)::int8 * (-1)::int2;
  759. ^
  760. <sql-statement>
  761. SELECT (-9223372036854775808)::int8 / (-1)::int2;
  762. </sql-statement>
  763. -stdin-:<main>: Fatal: Execution
  764. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  765. SELECT (-9223372036854775808)::int8 / (-1)::int2;
  766. ^
  767. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  768. SELECT (-9223372036854775808)::int8 / (-1)::int2;
  769. ^
  770. <sql-statement>
  771. SELECT (-9223372036854775808)::int8 % (-1)::int2;
  772. </sql-statement>
  773. <sql-statement>
  774. -- check rounding when casting from float
  775. SELECT x, x::int8 AS int8_value
  776. FROM (VALUES (-2.5::float8),
  777. (-1.5::float8),
  778. (-0.5::float8),
  779. (0.0::float8),
  780. (0.5::float8),
  781. (1.5::float8),
  782. (2.5::float8)) t(x);
  783. </sql-statement>
  784. <sql-statement>
  785. -- check rounding when casting from numeric
  786. SELECT x, x::int8 AS int8_value
  787. FROM (VALUES (-2.5::numeric),
  788. (-1.5::numeric),
  789. (-0.5::numeric),
  790. (0.0::numeric),
  791. (0.5::numeric),
  792. (1.5::numeric),
  793. (2.5::numeric)) t(x);
  794. </sql-statement>
  795. <sql-statement>
  796. -- test gcd()
  797. SELECT a, b, gcd(a, b), gcd(a, -b), gcd(b, a), gcd(-b, a)
  798. FROM (VALUES (0::int8, 0::int8),
  799. (0::int8, 29893644334::int8),
  800. (288484263558::int8, 29893644334::int8),
  801. (-288484263558::int8, 29893644334::int8),
  802. ((-9223372036854775808)::int8, 1::int8),
  803. ((-9223372036854775808)::int8, 9223372036854775807::int8),
  804. ((-9223372036854775808)::int8, 4611686018427387904::int8)) AS v(a, b);
  805. </sql-statement>
  806. -stdin-:<main>: Error: Type annotation
  807. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  808. -- test gcd()
  809. ^
  810. -stdin-:<main>:1:1: Error: Duplicated member: gcd
  811. -- test gcd()
  812. ^
  813. <sql-statement>
  814. SELECT gcd((-9223372036854775808)::int8, 0::int8); -- overflow
  815. </sql-statement>
  816. -stdin-:<main>: Fatal: Execution
  817. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  818. SELECT gcd((-9223372036854775808)::int8, 0::int8); -- overflow
  819. ^
  820. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  821. SELECT gcd((-9223372036854775808)::int8, 0::int8); -- overflow
  822. ^
  823. <sql-statement>
  824. SELECT gcd((-9223372036854775808)::int8, (-9223372036854775808)::int8); -- overflow
  825. </sql-statement>
  826. -stdin-:<main>: Fatal: Execution
  827. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  828. SELECT gcd((-9223372036854775808)::int8, (-9223372036854775808)::int8); -- overflow
  829. ^
  830. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  831. SELECT gcd((-9223372036854775808)::int8, (-9223372036854775808)::int8); -- overflow
  832. ^
  833. <sql-statement>
  834. -- test lcm()
  835. SELECT a, b, lcm(a, b), lcm(a, -b), lcm(b, a), lcm(-b, a)
  836. FROM (VALUES (0::int8, 0::int8),
  837. (0::int8, 29893644334::int8),
  838. (29893644334::int8, 29893644334::int8),
  839. (288484263558::int8, 29893644334::int8),
  840. (-288484263558::int8, 29893644334::int8),
  841. ((-9223372036854775808)::int8, 0::int8)) AS v(a, b);
  842. </sql-statement>
  843. -stdin-:<main>: Error: Type annotation
  844. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
  845. -- test lcm()
  846. ^
  847. -stdin-:<main>:1:1: Error: Duplicated member: lcm
  848. -- test lcm()
  849. ^
  850. <sql-statement>
  851. SELECT lcm((-9223372036854775808)::int8, 1::int8); -- overflow
  852. </sql-statement>
  853. -stdin-:<main>: Fatal: Execution
  854. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  855. SELECT lcm((-9223372036854775808)::int8, 1::int8); -- overflow
  856. ^
  857. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  858. SELECT lcm((-9223372036854775808)::int8, 1::int8); -- overflow
  859. ^
  860. <sql-statement>
  861. SELECT lcm(9223372036854775807::int8, 9223372036854775806::int8); -- overflow
  862. </sql-statement>
  863. -stdin-:<main>: Fatal: Execution
  864. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  865. SELECT lcm(9223372036854775807::int8, 9223372036854775806::int8); -- overflow
  866. ^
  867. -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
  868. SELECT lcm(9223372036854775807::int8, 9223372036854775806::int8); -- overflow
  869. ^