mirror of https://github.com/postgres/postgres
bigint variants). Clean up some inconsistencies in error message wording. Fix scanint8 to allow trailing whitespace in INT64_MIN case. Update int8-exp-three-digits.out, which seems to have been ignored by the last couple of people to modify the int8 regression test, and remove int8-exp-three-digits-win32.out which is thereby exposed as redundant.REL8_0_STABLE
parent
24201b4bc6
commit
4171bb869f
@ -1,300 +0,0 @@ |
||||
-- |
||||
-- INT8 |
||||
-- Test int8 64-bit integers. |
||||
-- |
||||
CREATE TABLE INT8_TBL(q1 int8, q2 int8); |
||||
INSERT INTO INT8_TBL VALUES('123','456'); |
||||
INSERT INTO INT8_TBL VALUES('123','4567890123456789'); |
||||
INSERT INTO INT8_TBL VALUES('4567890123456789','123'); |
||||
INSERT INTO INT8_TBL VALUES('4567890123456789','4567890123456789'); |
||||
INSERT INTO INT8_TBL VALUES('4567890123456789','-4567890123456789'); |
||||
-- bad inputs |
||||
INSERT INTO INT8_TBL(q1) VALUES (' '); |
||||
ERROR: invalid input syntax for type bigint: " " |
||||
INSERT INTO INT8_TBL(q1) VALUES ('xxx'); |
||||
ERROR: invalid input syntax for type bigint: "xxx" |
||||
INSERT INTO INT8_TBL(q1) VALUES ('3908203590239580293850293850329485'); |
||||
ERROR: integer out of range |
||||
INSERT INTO INT8_TBL(q1) VALUES ('-1204982019841029840928340329840934'); |
||||
ERROR: integer out of range |
||||
INSERT INTO INT8_TBL(q1) VALUES ('- 123'); |
||||
ERROR: invalid input syntax for type bigint: "- 123" |
||||
INSERT INTO INT8_TBL(q1) VALUES (' 345 5'); |
||||
ERROR: invalid input syntax for type bigint: " 345 5" |
||||
INSERT INTO INT8_TBL(q1) VALUES (''); |
||||
ERROR: invalid input syntax for type bigint: "" |
||||
SELECT * FROM INT8_TBL; |
||||
q1 | q2 |
||||
------------------+------------------- |
||||
123 | 456 |
||||
123 | 4567890123456789 |
||||
4567890123456789 | 123 |
||||
4567890123456789 | 4567890123456789 |
||||
4567890123456789 | -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL; |
||||
five | plus | minus |
||||
------+------------------+------------------- |
||||
| 123 | -123 |
||||
| 123 | -123 |
||||
| 4567890123456789 | -4567890123456789 |
||||
| 4567890123456789 | -4567890123456789 |
||||
| 4567890123456789 | -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL; |
||||
five | q1 | q2 | plus |
||||
------+------------------+-------------------+------------------ |
||||
| 123 | 456 | 579 |
||||
| 123 | 4567890123456789 | 4567890123456912 |
||||
| 4567890123456789 | 123 | 4567890123456912 |
||||
| 4567890123456789 | 4567890123456789 | 9135780246913578 |
||||
| 4567890123456789 | -4567890123456789 | 0 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL; |
||||
five | q1 | q2 | minus |
||||
------+------------------+-------------------+------------------- |
||||
| 123 | 456 | -333 |
||||
| 123 | 4567890123456789 | -4567890123456666 |
||||
| 4567890123456789 | 123 | 4567890123456666 |
||||
| 4567890123456789 | 4567890123456789 | 0 |
||||
| 4567890123456789 | -4567890123456789 | 9135780246913578 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL |
||||
WHERE q1 < 1000 or (q2 > 0 and q2 < 1000); |
||||
three | q1 | q2 | multiply |
||||
-------+------------------+------------------+-------------------- |
||||
| 123 | 456 | 56088 |
||||
| 123 | 4567890123456789 | 561850485185185047 |
||||
| 4567890123456789 | 123 | 561850485185185047 |
||||
(3 rows) |
||||
|
||||
SELECT '' AS five, q1, q2, q1 / q2 AS divide FROM INT8_TBL; |
||||
five | q1 | q2 | divide |
||||
------+------------------+-------------------+---------------- |
||||
| 123 | 456 | 0 |
||||
| 123 | 4567890123456789 | 0 |
||||
| 4567890123456789 | 123 | 37137318076884 |
||||
| 4567890123456789 | 4567890123456789 | 1 |
||||
| 4567890123456789 | -4567890123456789 | -1 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, q1, float8(q1) FROM INT8_TBL; |
||||
five | q1 | float8 |
||||
------+------------------+----------------------- |
||||
| 123 | 123 |
||||
| 123 | 123 |
||||
| 4567890123456789 | 4.56789012345679e+015 |
||||
| 4567890123456789 | 4.56789012345679e+015 |
||||
| 4567890123456789 | 4.56789012345679e+015 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, q2, float8(q2) FROM INT8_TBL; |
||||
five | q2 | float8 |
||||
------+-------------------+------------------------ |
||||
| 456 | 456 |
||||
| 4567890123456789 | 4.56789012345679e+015 |
||||
| 123 | 123 |
||||
| 4567890123456789 | 4.56789012345679e+015 |
||||
| -4567890123456789 | -4.56789012345679e+015 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL; |
||||
five | twice int4 |
||||
------+------------------ |
||||
| 246 |
||||
| 246 |
||||
| 9135780246913578 |
||||
| 9135780246913578 |
||||
| 9135780246913578 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL; |
||||
five | twice int4 |
||||
------+------------------ |
||||
| 246 |
||||
| 246 |
||||
| 9135780246913578 |
||||
| 9135780246913578 |
||||
| 9135780246913578 |
||||
(5 rows) |
||||
|
||||
-- TO_CHAR() |
||||
-- |
||||
SELECT '' AS to_char_1, to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999') |
||||
FROM INT8_TBL; |
||||
to_char_1 | to_char | to_char |
||||
-----------+------------------------+------------------------ |
||||
| 123 | 456 |
||||
| 123 | 4,567,890,123,456,789 |
||||
| 4,567,890,123,456,789 | 123 |
||||
| 4,567,890,123,456,789 | 4,567,890,123,456,789 |
||||
| 4,567,890,123,456,789 | -4,567,890,123,456,789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_2, to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999') |
||||
FROM INT8_TBL; |
||||
to_char_2 | to_char | to_char |
||||
-----------+--------------------------------+-------------------------------- |
||||
| 123.000,000 | 456.000,000 |
||||
| 123.000,000 | 4,567,890,123,456,789.000,000 |
||||
| 4,567,890,123,456,789.000,000 | 123.000,000 |
||||
| 4,567,890,123,456,789.000,000 | 4,567,890,123,456,789.000,000 |
||||
| 4,567,890,123,456,789.000,000 | -4,567,890,123,456,789.000,000 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_3, to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR') |
||||
FROM INT8_TBL; |
||||
to_char_3 | to_char | to_char |
||||
-----------+--------------------+------------------------ |
||||
| <123> | <456.000> |
||||
| <123> | <4567890123456789.000> |
||||
| <4567890123456789> | <123.000> |
||||
| <4567890123456789> | <4567890123456789.000> |
||||
| <4567890123456789> | 4567890123456789.000 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_4, to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999') |
||||
FROM INT8_TBL; |
||||
to_char_4 | to_char | to_char |
||||
-----------+-------------------+------------------- |
||||
| 123- | -456 |
||||
| 123- | -4567890123456789 |
||||
| 4567890123456789- | -123 |
||||
| 4567890123456789- | -4567890123456789 |
||||
| 4567890123456789- | +4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_5, to_char(q2, 'MI9999999999999999') FROM INT8_TBL; |
||||
to_char_5 | to_char |
||||
-----------+------------------- |
||||
| 456 |
||||
| 4567890123456789 |
||||
| 123 |
||||
| 4567890123456789 |
||||
| -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_6, to_char(q2, 'FMS9999999999999999') FROM INT8_TBL; |
||||
to_char_6 | to_char |
||||
-----------+------------------- |
||||
| +456 |
||||
| +4567890123456789 |
||||
| +123 |
||||
| +4567890123456789 |
||||
| -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_7, to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL; |
||||
to_char_7 | to_char |
||||
-----------+-------------------- |
||||
| 456TH |
||||
| 4567890123456789TH |
||||
| 123RD |
||||
| 4567890123456789TH |
||||
| <4567890123456789> |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_8, to_char(q2, 'SG9999999999999999th') FROM INT8_TBL; |
||||
to_char_8 | to_char |
||||
-----------+--------------------- |
||||
| + 456th |
||||
| +4567890123456789th |
||||
| + 123rd |
||||
| +4567890123456789th |
||||
| -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_9, to_char(q2, '0999999999999999') FROM INT8_TBL; |
||||
to_char_9 | to_char |
||||
-----------+------------------- |
||||
| 0000000000000456 |
||||
| 4567890123456789 |
||||
| 0000000000000123 |
||||
| 4567890123456789 |
||||
| -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_10, to_char(q2, 'S0999999999999999') FROM INT8_TBL; |
||||
to_char_10 | to_char |
||||
------------+------------------- |
||||
| +0000000000000456 |
||||
| +4567890123456789 |
||||
| +0000000000000123 |
||||
| +4567890123456789 |
||||
| -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_11, to_char(q2, 'FM0999999999999999') FROM INT8_TBL; |
||||
to_char_11 | to_char |
||||
------------+------------------- |
||||
| 0000000000000456 |
||||
| 4567890123456789 |
||||
| 0000000000000123 |
||||
| 4567890123456789 |
||||
| -4567890123456789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_12, to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL; |
||||
to_char_12 | to_char |
||||
------------+----------------------- |
||||
| 456.000 |
||||
| 4567890123456789.000 |
||||
| 123.000 |
||||
| 4567890123456789.000 |
||||
| -4567890123456789.000 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_13, to_char(q2, 'L9999999999999999.000') FROM INT8_TBL; |
||||
to_char_13 | to_char |
||||
------------+------------------------ |
||||
| 456.000 |
||||
| 4567890123456789.000 |
||||
| 123.000 |
||||
| 4567890123456789.000 |
||||
| -4567890123456789.000 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_14, to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL; |
||||
to_char_14 | to_char |
||||
------------+-------------------- |
||||
| 456. |
||||
| 4567890123456789. |
||||
| 123. |
||||
| 4567890123456789. |
||||
| -4567890123456789. |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_15, 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; |
||||
to_char_15 | to_char |
||||
------------+------------------------------------------- |
||||
| +4 5 6 . 0 0 0 |
||||
| +4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0 |
||||
| +1 2 3 . 0 0 0 |
||||
| +4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0 |
||||
| -4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_16, to_char(q2, '99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL; |
||||
to_char_16 | to_char |
||||
------------+----------------------------------------------------------- |
||||
| text 9999 "text between quote marks" 456 |
||||
| 45678 text 9012 9999 345 "text between quote marks" 6789 |
||||
| text 9999 "text between quote marks" 123 |
||||
| 45678 text 9012 9999 345 "text between quote marks" 6789 |
||||
| -45678 text 9012 9999 345 "text between quote marks" 6789 |
||||
(5 rows) |
||||
|
||||
SELECT '' AS to_char_17, to_char(q2, '999999SG9999999999') FROM INT8_TBL; |
||||
to_char_17 | to_char |
||||
------------+------------------- |
||||
| + 456 |
||||
| 456789+0123456789 |
||||
| + 123 |
||||
| 456789+0123456789 |
||||
| 456789-0123456789 |
||||
(5 rows) |
||||
|
||||
Loading…
Reference in new issue