2000-03-01 20:11:12 +01:00
|
|
|
--
|
|
|
|
-- 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');
|
|
|
|
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)
|
|
|
|
|
2000-03-31 07:36:54 +02:00
|
|
|
-- 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;
|
2002-09-20 18:44:55 +02:00
|
|
|
to_char_14 | to_char
|
|
|
|
------------+--------------------
|
|
|
|
| 456.
|
|
|
|
| 4567890123456789.
|
|
|
|
| 123.
|
|
|
|
| 4567890123456789.
|
|
|
|
| -4567890123456789.
|
2000-03-31 07:36:54 +02:00
|
|
|
(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)
|
|
|
|
|
2000-04-08 04:02:26 +02:00
|
|
|
SELECT '' AS to_char_16, to_char(q2, '99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL;
|
2000-03-31 07:36:54 +02:00
|
|
|
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)
|
|
|
|
|