Thread: int8 beta5 broken?
Hi, Testing beta5 on unixware7 gives an error on int8 test while beta4 (I've just retested it) works ok regressions.diff follows: Also, compiling with openssl give a compile error on src/backend/libpq/crypt.c; this error CAN be avoided by commenting out the definition of des_encrypt in /ur/local/ssl/include/openssl/des.h I'm not sure this is good practice though. Anyway, even after that, there are linking errors on libecpg.so and perl because of a lack of -L/usr/local/ssl/lib Easyly avoid by setting ad hoc LD_LIBRARY_PATH. *** ./expected/int8.out Mon Jan 29 03:53:58 2001 --- ./results/int8.out Wed Feb 28 16:29:40 2001 *************** *** 5,111 **** 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+15 ! | 4567890123456789 | 4.56789012345679e+15 ! | 4567890123456789 | 4.56789012345679e+15 ! (5 rows) SELECT '' AS five, q2, float8(q2) FROM INT8_TBL; five | q2 | float8 ! ------+-------------------+----------------------- | 456 | 456 ! | 4567890123456789 | 4.56789012345679e+15 ! | 123 | 123 ! | 4567890123456789 | 4.56789012345679e+15 ! | -4567890123456789 | -4.56789012345679e+15 ! (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() -- --- 5,77 ---- CREATE TABLE INT8_TBL(q1 int8, q2 int8); INSERT INTO INT8_TBL VALUES('123','456'); INSERT INTO INT8_TBL VALUES('123','4567890123456789'); + ERROR: int8 value out of range: "4567890123456789" INSERT INTO INT8_TBL VALUES('4567890123456789','123'); + ERROR: int8 value out of range: "4567890123456789" INSERT INTO INT8_TBL VALUES('4567890123456789','4567890123456789'); + ERROR: int8 value out of range: "4567890123456789" INSERT INTO INT8_TBL VALUES('4567890123456789','-4567890123456789'); + ERROR: int8 value out of range: "4567890123456789" SELECT * FROM INT8_TBL; q1 | q2 ! -----+----- 123 | 456 ! (1 row) SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL; five | plus | minus ! ------+------+------- | 123 | -123 ! (1 row) SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL; five | q1 | q2 | plus ! ------+-----+-----+------ | 123 | 456 | 579 ! (1 row) SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL; five | q1 | q2 | minus ! ------+-----+-----+------- | 123 | 456 | -333 ! (1 row) 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 ! (1 row) SELECT '' AS five, q1, q2, q1 / q2 AS divide FROM INT8_TBL; five | q1 | q2 | divide ! ------+-----+-----+-------- | 123 | 456 | 0 ! (1 row) SELECT '' AS five, q1, float8(q1) FROM INT8_TBL; five | q1 | float8 ! ------+-----+-------- | 123 | 123 ! (1 row) SELECT '' AS five, q2, float8(q2) FROM INT8_TBL; five | q2 | float8 ! ------+-----+-------- | 456 | 456 ! (1 row) SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL; five | twice int4 ! ------+------------ | 246 ! (1 row) SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL; five | twice int4 ! ------+------------ | 246 ! (1 row) -- TO_CHAR() -- *************** *** 114,124 **** 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; --- 80,86 ---- to_char_1 | to_char | to_char -----------+------------------------+------------------------ | 123 | 456 ! (1 row) SELECT '' AS to_char_2, to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999') FROM INT8_TBL; *************** *** 125,135 **** 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; --- 87,93 ---- to_char_2 | to_char | to_char -----------+--------------------------------+-------------------------------- | 123.000,000| 456.000,000 ! (1 row) SELECT '' AS to_char_3, to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR') FROM INT8_TBL; *************** *** 136,146 **** 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; --- 94,100 ---- to_char_3 | to_char | to_char -----------+--------------------+------------------------ | <123> | <456.000> ! (1 row) SELECT '' AS to_char_4, to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999') FROM INT8_TBL; *************** *** 147,285 **** 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') FROMINT8_TBL; to_char_16 | to_char ------------+----------------------------------------------------------- | text 9999 "text betweenquote 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) --- 101,183 ---- to_char_4 | to_char | to_char -----------+-------------------+------------------- | 123- | -456 ! (1 row) SELECT '' AS to_char_5, to_char(q2, 'MI9999999999999999') FROM INT8_TBL; to_char_5 | to_char -----------+-------------------- | 456 ! (1 row) SELECT '' AS to_char_6, to_char(q2, 'FMS9999999999999999') FROM INT8_TBL; to_char_6 | to_char ! -----------+--------- | +456 ! (1 row) SELECT '' AS to_char_7, to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL; to_char_7 | to_char ! -----------+--------- | 456TH ! (1 row) SELECT '' AS to_char_8, to_char(q2, 'SG9999999999999999th') FROM INT8_TBL; to_char_8 | to_char -----------+--------------------- | + 456th ! (1 row) SELECT '' AS to_char_9, to_char(q2, '0999999999999999') FROM INT8_TBL; to_char_9 | to_char -----------+------------------- | 0000000000000456 ! (1 row) SELECT '' AS to_char_10, to_char(q2, 'S0999999999999999') FROM INT8_TBL; to_char_10 | to_char ------------+------------------- | +0000000000000456 ! (1 row) SELECT '' AS to_char_11, to_char(q2, 'FM0999999999999999') FROM INT8_TBL; to_char_11 | to_char ! ------------+------------------ | 0000000000000456 ! (1 row) SELECT '' AS to_char_12, to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL; to_char_12 | to_char ! ------------+--------- | 456.000 ! (1 row) SELECT '' AS to_char_13, to_char(q2, 'L9999999999999999.000') FROM INT8_TBL; to_char_13 | to_char ------------+------------------------ | 456.000 ! (1 row) SELECT '' AS to_char_14, to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL; to_char_14 | to_char ! ------------+--------- | 456 ! (1 row) 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 ! (1 row) SELECT '' AS to_char_16, to_char(q2, '99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROMINT8_TBL; to_char_16 | to_char ------------+----------------------------------------------------------- | text 9999 "text betweenquote marks" 456 ! (1 row) SELECT '' AS to_char_17, to_char(q2, '999999SG9999999999') FROM INT8_TBL; to_char_17 | to_char ------------+------------------- | + 456 ! (1 row) ====================================================================== *** ./expected/subselect.out Thu Mar 23 08:42:13 2000 --- ./results/subselect.out Wed Feb 28 16:35:21 2001 *************** *** 160,167 **** select q1, float8(count(*)) / (select count(*) from int8_tbl) from int8_tbl group by q1; q1 | ?column? ! ------------------+---------- ! 123 | 0.4 ! 4567890123456789 | 0.6 ! (2 rows) --- 160,166 ---- select q1, float8(count(*)) / (select count(*) from int8_tbl) from int8_tbl group by q1; q1 | ?column? ! -----+---------- ! 123 | 1 ! (1 row) ====================================================================== *** ./expected/union.out Thu Nov 9 03:47:49 2000 --- ./results/union.out Wed Feb 28 16:35:22 2001 *************** *** 259,318 **** -- SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl; q2 ! ------------------ ! 123 ! 4567890123456789 ! (2 rows) SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl; q2 ! ------------------ ! 123 ! 4567890123456789 ! 4567890123456789 ! (3 rows) SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; q2 ! ------------------- ! -4567890123456789 456 ! (2 rows) SELECT q2 FROM int8_tbl EXCEPT ALL SELECT q1 FROM int8_tbl; q2 ! ------------------- ! -4567890123456789 456 ! (2 rows) SELECT q2 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q1 FROM int8_tbl; q2 ! ------------------- ! -4567890123456789 456 ! 4567890123456789 ! (3 rows) SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl; q1 ! ---- ! (0 rows) SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl; q1 ! ------------------ 123 ! 4567890123456789 ! (2 rows) SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl; q1 ! ------------------ 123 ! 4567890123456789 ! 4567890123456789 ! (3 rows) -- -- Mixed types --- 259,307 ---- -- SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl; q2 ! ---- ! (0 rows) SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl; q2 ! ---- ! (0 rows) SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; q2 ! ----- 456 ! (1 row) SELECT q2 FROM int8_tbl EXCEPT ALL SELECT q1 FROM int8_tbl; q2 ! ----- 456 ! (1 row) SELECT q2 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q1 FROM int8_tbl; q2 ! ----- 456 ! (1 row) SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl; q1 ! ----- ! 123 ! (1 row) SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl; q1 ! ----- 123 ! (1 row) SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl; q1 ! ----- 123 ! (1 row) -- -- Mixed types *************** *** 337,396 **** -- SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl; q1 ! ------------------- ! 123 ! 4567890123456789 456 ! 4567890123456789 ! 123 ! 4567890123456789 ! -4567890123456789 ! (7 rows) SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))); q1 ! ------------------ ! 123 ! 4567890123456789 ! (2 rows) (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL SELECT q2 FROM int8_tbl; q1 ! ------------------- ! 123 ! 4567890123456789 456 ! 4567890123456789 ! 123 ! 4567890123456789 ! -4567890123456789 ! (7 rows) SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; q1 ! ------------------- ! -4567890123456789 456 ! (2 rows) SELECT q1 FROM int8_tbl UNION ALL (((SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl))); q1 ! ------------------- 123 - 123 - 4567890123456789 - 4567890123456789 - 4567890123456789 - -4567890123456789 456 ! (7 rows) (((SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))) EXCEPT SELECT q1 FROM int8_tbl; q1 ! ------------------- ! -4567890123456789 456 ! (2 rows) -- -- Subqueries with ORDER BY & LIMIT clauses --- 326,364 ---- -- SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl; q1 ! ----- 456 ! (1 row) SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))); q1 ! ---- ! (0 rows) (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL SELECT q2 FROM int8_tbl; q1 ! ----- 456 ! (1 row) SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; q1 ! ----- 456 ! (1 row) SELECT q1 FROM int8_tbl UNION ALL (((SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl))); q1 ! ----- 123 456 ! (2 rows) (((SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))) EXCEPT SELECT q1 FROM int8_tbl; q1 ! ----- 456 ! (1 row) -- -- Subqueries with ORDER BY & LIMIT clauses *************** *** 399,408 **** SELECT q1,q2 FROM int8_tbl EXCEPT SELECT q2,q1 FROM int8_tbl ORDER BY q2,q1; q1 | q2 ! ------------------+------------------- ! 4567890123456789 | -4567890123456789 123 | 456 ! (2 rows) -- This should fail, because q2 isn't a name of an EXCEPT output column SELECT q1 FROM int8_tbl EXCEPT SELECTq2 FROM int8_tbl ORDER BY q2 LIMIT 1; --- 367,375 ---- SELECT q1,q2 FROM int8_tbl EXCEPT SELECT q2,q1 FROM int8_tbl ORDER BY q2,q1; q1 | q2 ! -----+----- 123 | 456 ! (1 row) -- This should fail, because q2 isn't a name of an EXCEPT output column SELECT q1 FROM int8_tbl EXCEPT SELECTq2 FROM int8_tbl ORDER BY q2 LIMIT 1; *************** *** 410,419 **** -- But this should work: SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1))); q1 ! ------------------ 123 ! 4567890123456789 ! (2 rows) -- -- New syntaxes (7.1) permit new tests --- 377,385 ---- -- But this should work: SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1))); q1 ! ----- 123 ! (1 row) -- -- New syntaxes (7.1) permit new tests *************** *** 420,430 **** -- (((((select * from int8_tbl))))); q1 | q2 ! ------------------+------------------- 123 | 456 ! 123 | 4567890123456789 ! 4567890123456789 | 123 ! 4567890123456789 | 4567890123456789 ! 4567890123456789 | -4567890123456789 ! (5 rows) --- 386,392 ---- -- (((((select * from int8_tbl))))); q1 | q2 ! -----+----- 123 | 456 ! (1 row) ====================================================================== -- Olivier PRENANT Tel: +33-5-61-50-97-00 (Work) Quartier d'Harraud Turrou +33-5-61-50-97-01 (Fax) 31190 AUTERIVE +33-6-07-63-80-64 (GSM) FRANCE Email: ohp@pyrenet.fr ------------------------------------------------------------------------------ Make your life a dream, make your dream a reality. (St Exupery)
Sorry to follow-up on my own post; int8 test passes if open-ssl is not used. weird!! Regards, On Wed, 28 Feb 2001, Olivier PRENANT wrote: > Hi, > > Testing beta5 on unixware7 gives an error on int8 test while beta4 (I've > just retested it) works ok regressions.diff follows: > > Also, compiling with openssl give a compile error on > src/backend/libpq/crypt.c; this error CAN be avoided by commenting out the > definition of des_encrypt in /ur/local/ssl/include/openssl/des.h > > I'm not sure this is good practice though. > > Anyway, even after that, there are linking errors on libecpg.so and perl > because of a lack of -L/usr/local/ssl/lib > > Easyly avoid by setting ad hoc LD_LIBRARY_PATH. > > *** ./expected/int8.out Mon Jan 29 03:53:58 2001 > --- ./results/int8.out Wed Feb 28 16:29:40 2001 > *************** > *** 5,111 **** > 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+15 > ! | 4567890123456789 | 4.56789012345679e+15 > ! | 4567890123456789 | 4.56789012345679e+15 > ! (5 rows) > > SELECT '' AS five, q2, float8(q2) FROM INT8_TBL; > five | q2 | float8 > ! ------+-------------------+----------------------- > | 456 | 456 > ! | 4567890123456789 | 4.56789012345679e+15 > ! | 123 | 123 > ! | 4567890123456789 | 4.56789012345679e+15 > ! | -4567890123456789 | -4.56789012345679e+15 > ! (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() > -- > --- 5,77 ---- > CREATE TABLE INT8_TBL(q1 int8, q2 int8); > INSERT INTO INT8_TBL VALUES('123','456'); > INSERT INTO INT8_TBL VALUES('123','4567890123456789'); > + ERROR: int8 value out of range: "4567890123456789" > INSERT INTO INT8_TBL VALUES('4567890123456789','123'); > + ERROR: int8 value out of range: "4567890123456789" > INSERT INTO INT8_TBL VALUES('4567890123456789','4567890123456789'); > + ERROR: int8 value out of range: "4567890123456789" > INSERT INTO INT8_TBL VALUES('4567890123456789','-4567890123456789'); > + ERROR: int8 value out of range: "4567890123456789" > SELECT * FROM INT8_TBL; > q1 | q2 > ! -----+----- > 123 | 456 > ! (1 row) > > SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL; > five | plus | minus > ! ------+------+------- > | 123 | -123 > ! (1 row) > > SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL; > five | q1 | q2 | plus > ! ------+-----+-----+------ > | 123 | 456 | 579 > ! (1 row) > > SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL; > five | q1 | q2 | minus > ! ------+-----+-----+------- > | 123 | 456 | -333 > ! (1 row) > > 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 > ! (1 row) > > SELECT '' AS five, q1, q2, q1 / q2 AS divide FROM INT8_TBL; > five | q1 | q2 | divide > ! ------+-----+-----+-------- > | 123 | 456 | 0 > ! (1 row) > > SELECT '' AS five, q1, float8(q1) FROM INT8_TBL; > five | q1 | float8 > ! ------+-----+-------- > | 123 | 123 > ! (1 row) > > SELECT '' AS five, q2, float8(q2) FROM INT8_TBL; > five | q2 | float8 > ! ------+-----+-------- > | 456 | 456 > ! (1 row) > > SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL; > five | twice int4 > ! ------+------------ > | 246 > ! (1 row) > > SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL; > five | twice int4 > ! ------+------------ > | 246 > ! (1 row) > > -- TO_CHAR() > -- > *************** > *** 114,124 **** > 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; > --- 80,86 ---- > to_char_1 | to_char | to_char > -----------+------------------------+------------------------ > | 123 | 456 > ! (1 row) > > SELECT '' AS to_char_2, to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999') > FROM INT8_TBL; > *************** > *** 125,135 **** > 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; > --- 87,93 ---- > to_char_2 | to_char | to_char > -----------+--------------------------------+-------------------------------- > | 123.000,000 | 456.000,000 > ! (1 row) > > SELECT '' AS to_char_3, to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR') > FROM INT8_TBL; > *************** > *** 136,146 **** > 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; > --- 94,100 ---- > to_char_3 | to_char | to_char > -----------+--------------------+------------------------ > | <123> | <456.000> > ! (1 row) > > SELECT '' AS to_char_4, to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999') > FROM INT8_TBL; > *************** > *** 147,285 **** > 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) > > --- 101,183 ---- > to_char_4 | to_char | to_char > -----------+-------------------+------------------- > | 123- | -456 > ! (1 row) > > SELECT '' AS to_char_5, to_char(q2, 'MI9999999999999999') FROM INT8_TBL; > to_char_5 | to_char > -----------+-------------------- > | 456 > ! (1 row) > > SELECT '' AS to_char_6, to_char(q2, 'FMS9999999999999999') FROM INT8_TBL; > to_char_6 | to_char > ! -----------+--------- > | +456 > ! (1 row) > > SELECT '' AS to_char_7, to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL; > to_char_7 | to_char > ! -----------+--------- > | 456TH > ! (1 row) > > SELECT '' AS to_char_8, to_char(q2, 'SG9999999999999999th') FROM INT8_TBL; > to_char_8 | to_char > -----------+--------------------- > | + 456th > ! (1 row) > > SELECT '' AS to_char_9, to_char(q2, '0999999999999999') FROM INT8_TBL; > to_char_9 | to_char > -----------+------------------- > | 0000000000000456 > ! (1 row) > > SELECT '' AS to_char_10, to_char(q2, 'S0999999999999999') FROM INT8_TBL; > to_char_10 | to_char > ------------+------------------- > | +0000000000000456 > ! (1 row) > > SELECT '' AS to_char_11, to_char(q2, 'FM0999999999999999') FROM INT8_TBL; > to_char_11 | to_char > ! ------------+------------------ > | 0000000000000456 > ! (1 row) > > SELECT '' AS to_char_12, to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL; > to_char_12 | to_char > ! ------------+--------- > | 456.000 > ! (1 row) > > SELECT '' AS to_char_13, to_char(q2, 'L9999999999999999.000') FROM INT8_TBL; > to_char_13 | to_char > ------------+------------------------ > | 456.000 > ! (1 row) > > SELECT '' AS to_char_14, to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL; > to_char_14 | to_char > ! ------------+--------- > | 456 > ! (1 row) > > 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 > ! (1 row) > > 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 > ! (1 row) > > SELECT '' AS to_char_17, to_char(q2, '999999SG9999999999') FROM INT8_TBL; > to_char_17 | to_char > ------------+------------------- > | + 456 > ! (1 row) > > > ====================================================================== > > *** ./expected/subselect.out Thu Mar 23 08:42:13 2000 > --- ./results/subselect.out Wed Feb 28 16:35:21 2001 > *************** > *** 160,167 **** > select q1, float8(count(*)) / (select count(*) from int8_tbl) > from int8_tbl group by q1; > q1 | ?column? > ! ------------------+---------- > ! 123 | 0.4 > ! 4567890123456789 | 0.6 > ! (2 rows) > > --- 160,166 ---- > select q1, float8(count(*)) / (select count(*) from int8_tbl) > from int8_tbl group by q1; > q1 | ?column? > ! -----+---------- > ! 123 | 1 > ! (1 row) > > > ====================================================================== > > *** ./expected/union.out Thu Nov 9 03:47:49 2000 > --- ./results/union.out Wed Feb 28 16:35:22 2001 > *************** > *** 259,318 **** > -- > SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl; > q2 > ! ------------------ > ! 123 > ! 4567890123456789 > ! (2 rows) > > SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl; > q2 > ! ------------------ > ! 123 > ! 4567890123456789 > ! 4567890123456789 > ! (3 rows) > > SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; > q2 > ! ------------------- > ! -4567890123456789 > 456 > ! (2 rows) > > SELECT q2 FROM int8_tbl EXCEPT ALL SELECT q1 FROM int8_tbl; > q2 > ! ------------------- > ! -4567890123456789 > 456 > ! (2 rows) > > SELECT q2 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q1 FROM int8_tbl; > q2 > ! ------------------- > ! -4567890123456789 > 456 > ! 4567890123456789 > ! (3 rows) > > SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl; > q1 > ! ---- > ! (0 rows) > > SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl; > q1 > ! ------------------ > 123 > ! 4567890123456789 > ! (2 rows) > > SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl; > q1 > ! ------------------ > 123 > ! 4567890123456789 > ! 4567890123456789 > ! (3 rows) > > -- > -- Mixed types > --- 259,307 ---- > -- > SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl; > q2 > ! ---- > ! (0 rows) > > SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl; > q2 > ! ---- > ! (0 rows) > > SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; > q2 > ! ----- > 456 > ! (1 row) > > SELECT q2 FROM int8_tbl EXCEPT ALL SELECT q1 FROM int8_tbl; > q2 > ! ----- > 456 > ! (1 row) > > SELECT q2 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q1 FROM int8_tbl; > q2 > ! ----- > 456 > ! (1 row) > > SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl; > q1 > ! ----- > ! 123 > ! (1 row) > > SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl; > q1 > ! ----- > 123 > ! (1 row) > > SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl; > q1 > ! ----- > 123 > ! (1 row) > > -- > -- Mixed types > *************** > *** 337,396 **** > -- > SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl; > q1 > ! ------------------- > ! 123 > ! 4567890123456789 > 456 > ! 4567890123456789 > ! 123 > ! 4567890123456789 > ! -4567890123456789 > ! (7 rows) > > SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))); > q1 > ! ------------------ > ! 123 > ! 4567890123456789 > ! (2 rows) > > (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL SELECT q2 FROM int8_tbl; > q1 > ! ------------------- > ! 123 > ! 4567890123456789 > 456 > ! 4567890123456789 > ! 123 > ! 4567890123456789 > ! -4567890123456789 > ! (7 rows) > > SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; > q1 > ! ------------------- > ! -4567890123456789 > 456 > ! (2 rows) > > SELECT q1 FROM int8_tbl UNION ALL (((SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl))); > q1 > ! ------------------- > 123 > - 123 > - 4567890123456789 > - 4567890123456789 > - 4567890123456789 > - -4567890123456789 > 456 > ! (7 rows) > > (((SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))) EXCEPT SELECT q1 FROM int8_tbl; > q1 > ! ------------------- > ! -4567890123456789 > 456 > ! (2 rows) > > -- > -- Subqueries with ORDER BY & LIMIT clauses > --- 326,364 ---- > -- > SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl; > q1 > ! ----- > 456 > ! (1 row) > > SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))); > q1 > ! ---- > ! (0 rows) > > (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL SELECT q2 FROM int8_tbl; > q1 > ! ----- > 456 > ! (1 row) > > SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl; > q1 > ! ----- > 456 > ! (1 row) > > SELECT q1 FROM int8_tbl UNION ALL (((SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl))); > q1 > ! ----- > 123 > 456 > ! (2 rows) > > (((SELECT q1 FROM int8_tbl UNION ALL SELECT q2 FROM int8_tbl))) EXCEPT SELECT q1 FROM int8_tbl; > q1 > ! ----- > 456 > ! (1 row) > > -- > -- Subqueries with ORDER BY & LIMIT clauses > *************** > *** 399,408 **** > SELECT q1,q2 FROM int8_tbl EXCEPT SELECT q2,q1 FROM int8_tbl > ORDER BY q2,q1; > q1 | q2 > ! ------------------+------------------- > ! 4567890123456789 | -4567890123456789 > 123 | 456 > ! (2 rows) > > -- This should fail, because q2 isn't a name of an EXCEPT output column > SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1; > --- 367,375 ---- > SELECT q1,q2 FROM int8_tbl EXCEPT SELECT q2,q1 FROM int8_tbl > ORDER BY q2,q1; > q1 | q2 > ! -----+----- > 123 | 456 > ! (1 row) > > -- This should fail, because q2 isn't a name of an EXCEPT output column > SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1; > *************** > *** 410,419 **** > -- But this should work: > SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1))); > q1 > ! ------------------ > 123 > ! 4567890123456789 > ! (2 rows) > > -- > -- New syntaxes (7.1) permit new tests > --- 377,385 ---- > -- But this should work: > SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1))); > q1 > ! ----- > 123 > ! (1 row) > > -- > -- New syntaxes (7.1) permit new tests > *************** > *** 420,430 **** > -- > (((((select * from int8_tbl))))); > q1 | q2 > ! ------------------+------------------- > 123 | 456 > ! 123 | 4567890123456789 > ! 4567890123456789 | 123 > ! 4567890123456789 | 4567890123456789 > ! 4567890123456789 | -4567890123456789 > ! (5 rows) > > --- 386,392 ---- > -- > (((((select * from int8_tbl))))); > q1 | q2 > ! -----+----- > 123 | 456 > ! (1 row) > > > ====================================================================== > > > -- Olivier PRENANT Tel: +33-5-61-50-97-00 (Work) Quartier d'Harraud Turrou +33-5-61-50-97-01 (Fax) 31190 AUTERIVE +33-6-07-63-80-64 (GSM) FRANCE Email: ohp@pyrenet.fr ------------------------------------------------------------------------------ Make your life a dream, make your dream a reality. (St Exupery)
Olivier PRENANT <ohp@pyrenet.fr> writes: > Testing beta5 on unixware7 gives an error on int8 test while beta4 (I've > just retested it) works ok. That's odd. int8.c hasn't changed since beta3 (except in the float-to-int8 routine, which isn't involved here). Is there any difference in the src/include/config.h file generated by the two versions? regards, tom lane
Olivier PRENANT <ohp@pyrenet.fr> writes: > Sorry to follow-up on my own post; int8 test passes if open-ssl is not > used. That's difficult to believe, because int8.c doesn't include anything that even knows SSL exists. Larry, can you confirm this behavior? regards, tom lane
Working on it. Give me a couple of hours. LER -----Original Message----- From: Tom Lane [mailto:tgl@sss.pgh.pa.us] Sent: Wednesday, February 28, 2001 11:04 AM To: ohp@pyrenet.fr Cc: pgsql-hackers@postgresql.org; Larry Rosenman Subject: Re: [HACKERS] Re: int8 beta5 broken? Olivier PRENANT <ohp@pyrenet.fr> writes: > Sorry to follow-up on my own post; int8 test passes if open-ssl is not > used. That's difficult to believe, because int8.c doesn't include anything that even knows SSL exists. Larry, can you confirm this behavior? regards, tom lane
* Larry Rosenman <ler@lerctr.org> [010228 11:13]: > Working on it. > > Give me a couple of hours. > Olivier, How did you build OpenSSL? I get the following (I only have a static lib): cc -O -K inline -K PIC -I. -I../../../src/include -I/usr/local/include -I/usr/local/ssl/include -DFRONTEND -DSYSCONFDIR='"/usr/local/pgsql/etc"' -c -o wchar.o wchar.c ar crs libpq.a `lorder fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o pqexpbuffer.o dllist.o pqsignal.owchar.o | tsort` UX:tsort: WARNING: Cycle in data UX:tsort: INFO: fe-connect.o UX:tsort: INFO: fe-auth.o UX:tsort: WARNING: Cycle in data UX:tsort: INFO: fe-exec.o UX:tsort: INFO: fe-misc.o UX:tsort: INFO: fe-connect.o : libpq.a cc -G -Wl,-z,text -Wl,-h,libpq.so.2 fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o pqexpbuffer.o dllist.opqsignal.o wchar.o -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lresolv -lnsl -lsocket -Wl,-R/usr/local/pgsql/lib-o libpq.so.2.1 UX:ld: INFO: text relocations referenced from files: libssl.a(s23_meth.o) libssl.a(s23_srvr.o) libssl.a(s23_clnt.o) libssl.a(s23_lib.o) libssl.a(s23_pkt.o) libssl.a(t1_meth.o) libssl.a(t1_srvr.o) libssl.a(t1_clnt.o) libssl.a(t1_lib.o) libssl.a(t1_enc.o) libssl.a(ssl_lib.o) libssl.a(ssl_err2.o) libssl.a(ssl_cert.o) libssl.a(ssl_sess.o) libssl.a(ssl_ciph.o) libssl.a(ssl_algs.o) libssl.a(ssl_err.o) libssl.a(s2_srvr.o) libssl.a(s2_clnt.o) libssl.a(s2_lib.o) libssl.a(s2_enc.o) libssl.a(s2_pkt.o) libssl.a(s3_meth.o) libssl.a(s3_srvr.o) libssl.a(s3_clnt.o) libssl.a(s3_lib.o) libssl.a(s3_enc.o) libssl.a(s3_pkt.o) libssl.a(s3_both.o) libssl.a(ssl_rsa.o) libcrypto.a(cryptlib.o) libcrypto.a(mem.o) libcrypto.a(ex_data.o) libcrypto.a(md5_dgst.o) libcrypto.a(sha1dgst.o) libcrypto.a(hmac.o) libcrypto.a(fcrypt.o) libcrypto.a(bn_lib.o) libcrypto.a(rsa_lib.o) libcrypto.a(rsa_sign.o) libcrypto.a(dsa_vrf.o) libcrypto.a(dsa_sign.o) libcrypto.a(dh_key.o) libcrypto.a(dh_lib.o) libcrypto.a(buffer.o) libcrypto.a(bio_lib.o) libcrypto.a(bss_file.o) libcrypto.a(bss_sock.o) libcrypto.a(bf_buff.o) libcrypto.a(b_print.o) libcrypto.a(stack.o) libcrypto.a(lhash.o) libcrypto.a(rand_lib.o) libcrypto.a(err.o) libcrypto.a(err_all.o) libcrypto.a(o_names.o) libcrypto.a(obj_dat.o) libcrypto.a(obj_lib.o) libcrypto.a(obj_err.o) libcrypto.a(digest.o) libcrypto.a(evp_enc.o) libcrypto.a(e_des.o) libcrypto.a(e_idea.o) libcrypto.a(e_des3.o) libcrypto.a(e_rc4.o) libcrypto.a(names.o) libcrypto.a(e_rc2.o) libcrypto.a(m_md2.o) libcrypto.a(m_md5.o) libcrypto.a(m_sha1.o) libcrypto.a(m_dss1.o) libcrypto.a(p_sign.o) libcrypto.a(p_verify.o) libcrypto.a(p_lib.o) libcrypto.a(evp_err.o) libcrypto.a(e_null.o) libcrypto.a(evp_lib.o) libcrypto.a(evp_pbe.o) libcrypto.a(a_object.o) libcrypto.a(a_dup.o) libcrypto.a(x_sig.o) libcrypto.a(x_name.o) libcrypto.a(x_x509.o) libcrypto.a(x_x509a.o) libcrypto.a(d2i_r_pr.o) libcrypto.a(i2d_r_pr.o) libcrypto.a(d2i_pr.o) libcrypto.a(i2d_dhp.o) libcrypto.a(d2i_dhp.o) libcrypto.a(asn1_lib.o) libcrypto.a(asn1_err.o) libcrypto.a(evp_asn1.o) libcrypto.a(pem_all.o) libcrypto.a(pem_err.o) libcrypto.a(x509_d2.o) libcrypto.a(x509_cmp.o) libcrypto.a(x509_obj.o) libcrypto.a(x509_vfy.o) libcrypto.a(x509_err.o) libcrypto.a(x509_ext.o) libcrypto.a(x509type.o) libcrypto.a(x509_lu.o) libcrypto.a(x_all.o) libcrypto.a(x509_trs.o) libcrypto.a(by_file.o) libcrypto.a(by_dir.o) libcrypto.a(v3_lib.o) libcrypto.a(v3err.o) libcrypto.a(v3_alt.o) libcrypto.a(v3_skey.o) libcrypto.a(v3_akey.o) libcrypto.a(v3_pku.o) libcrypto.a(v3_enum.o) libcrypto.a(v3_sxnet.o) libcrypto.a(v3_cpols.o) libcrypto.a(v3_crld.o) libcrypto.a(v3_purp.o) libcrypto.a(v3_info.o) libcrypto.a(conf_err.o) libcrypto.a(pkcs7err.o) libcrypto.a(pk12err.o) libcrypto.a(comp_lib.o) libcrypto.a(mem_dbg.o) libcrypto.a(cpt_err.o) libcrypto.a(md2_dgst.o) libcrypto.a(md5_one.o) libcrypto.a(set_key.o) libcrypto.a(ecb_enc.o) libcrypto.a(ecb3_enc.o) libcrypto.a(cfb64enc.o) libcrypto.a(cfb64ede.o) libcrypto.a(ofb64ede.o) libcrypto.a(ofb64enc.o) libcrypto.a(des_enc.o) libcrypto.a(fcrypt_b.o) libcrypto.a(rc2_ecb.o) libcrypto.a(rc2_skey.o) libcrypto.a(rc2_cbc.o) libcrypto.a(rc2cfb64.o) libcrypto.a(rc2ofb64.o) libcrypto.a(rc4_skey.o) libcrypto.a(i_cbc.o) libcrypto.a(i_cfb64.o) libcrypto.a(i_ofb64.o) libcrypto.a(i_ecb.o) libcrypto.a(bn_exp.o) libcrypto.a(bn_ctx.o) libcrypto.a(bn_mul.o) libcrypto.a(bn_rand.o) libcrypto.a(bn_word.o) libcrypto.a(bn_blind.o) libcrypto.a(bn_gcd.o) libcrypto.a(bn_err.o) libcrypto.a(bn_sqr.o) libcrypto.a(bn_asm.o) libcrypto.a(bn_recp.o) libcrypto.a(bn_mont.o) libcrypto.a(rsa_eay.o) libcrypto.a(rsa_err.o) libcrypto.a(rsa_pk1.o) libcrypto.a(rsa_ssl.o) libcrypto.a(rsa_none.o) libcrypto.a(rsa_oaep.o) libcrypto.a(dsa_lib.o) libcrypto.a(dsa_asn1.o) libcrypto.a(dsa_err.o) libcrypto.a(dsa_ossl.o) libcrypto.a(dh_err.o) libcrypto.a(dso_err.o) libcrypto.a(buf_err.o) libcrypto.a(bio_err.o) libcrypto.a(md_rand.o) libcrypto.a(rand_err.o) libcrypto.a(rand_win.o) libcrypto.a(evp_pkey.o) libcrypto.a(a_bitstr.o) libcrypto.a(a_utctm.o) libcrypto.a(a_gentm.o) libcrypto.a(a_time.o) libcrypto.a(a_int.o) libcrypto.a(a_octet.o) libcrypto.a(a_print.o) libcrypto.a(a_type.o) libcrypto.a(a_set.o) libcrypto.a(a_d2i_fp.o) libcrypto.a(a_i2d_fp.o) libcrypto.a(a_enum.o) libcrypto.a(a_vis.o) libcrypto.a(a_utf8.o) libcrypto.a(a_sign.o) libcrypto.a(a_digest.o) libcrypto.a(a_verify.o) libcrypto.a(x_algor.o) libcrypto.a(x_pubkey.o) libcrypto.a(x_req.o) libcrypto.a(x_attrib.o) libcrypto.a(x_cinf.o) libcrypto.a(x_crl.o) libcrypto.a(x_info.o) libcrypto.a(x_spki.o) libcrypto.a(nsseq.o) libcrypto.a(d2i_r_pu.o) libcrypto.a(i2d_r_pu.o) libcrypto.a(d2i_s_pr.o) libcrypto.a(i2d_s_pr.o) libcrypto.a(d2i_pu.o) libcrypto.a(i2d_pu.o) libcrypto.a(i2d_pr.o) libcrypto.a(t_x509.o) libcrypto.a(t_x509a.o) libcrypto.a(t_pkey.o) libcrypto.a(p7_i_s.o) libcrypto.a(p7_lib.o) libcrypto.a(i2d_dsap.o) libcrypto.a(d2i_dsap.o) libcrypto.a(x_pkey.o) libcrypto.a(x_exten.o) libcrypto.a(a_bytes.o) libcrypto.a(asn_pack.o) libcrypto.a(p8_pkey.o) libcrypto.a(pem_info.o) libcrypto.a(pem_lib.o) libcrypto.a(x509_def.o) libcrypto.a(x509name.o) libcrypto.a(x509_v3.o) libcrypto.a(v3_bcons.o) libcrypto.a(v3_bitst.o) libcrypto.a(v3_conf.o) libcrypto.a(v3_extku.o) libcrypto.a(v3_ia5.o) libcrypto.a(v3_prn.o) libcrypto.a(v3_utl.o) libcrypto.a(v3_genn.o) libcrypto.a(conf_lib.o) libcrypto.a(conf_api.o) libcrypto.a(conf_def.o) libcrypto.a(p12_add.o) libcrypto.a(p12_bags.o) libcrypto.a(p12_decr.o) libcrypto.a(p12_sbag.o) libcrypto.a(sha1_one.o) libcrypto.a(bn_add.o) libcrypto.a(bn_div.o) libcrypto.a(bn_print.o) libcrypto.a(bn_shift.o) libcrypto.a(bn_exp2.o) libcrypto.a(err_prn.o) libcrypto.a(encode.o) libcrypto.a(evp_key.o) libcrypto.a(x_val.o) libcrypto.a(d2i_s_pu.o) libcrypto.a(i2d_s_pu.o) libcrypto.a(p7_signd.o) libcrypto.a(p7_evp.o) libcrypto.a(p7_dgst.o) libcrypto.a(p7_s_e.o) libcrypto.a(p7_enc.o) libcrypto.a(a_bool.o) libcrypto.a(a_strnid.o) libcrypto.a(p5_pbe.o) libcrypto.a(p5_pbev2.o) libcrypto.a(x509_req.o) libcrypto.a(x509rset.o) libcrypto.a(x509_att.o) libcrypto.a(pk7_lib.o) libcrypto.a(read_pwd.o) libcrypto.a(a_mbstr.o) libcrypto.a(p7_signi.o) libcrypto.a(p7_recip.o) libcrypto.a(p7_enc_c.o) UX:ld: ERROR: relocations remain against non-writeable, allocatable section .text gmake[3]: *** [libpq.so.2.1] Error 1 gmake[3]: Leaving directory `/home/ler/pg-dev/pgsql/src/interfaces/libpq' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/home/ler/pg-dev/pgsql/src/interfaces' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/home/ler/pg-dev/pgsql/src' gmake: *** [all] Error 2 > LER > > -----Original Message----- > From: Tom Lane [mailto:tgl@sss.pgh.pa.us] > Sent: Wednesday, February 28, 2001 11:04 AM > To: ohp@pyrenet.fr > Cc: pgsql-hackers@postgresql.org; Larry Rosenman > Subject: Re: [HACKERS] Re: int8 beta5 broken? > > > Olivier PRENANT <ohp@pyrenet.fr> writes: > > Sorry to follow-up on my own post; int8 test passes if open-ssl is not > > used. > > That's difficult to believe, because int8.c doesn't include anything > that even knows SSL exists. Larry, can you confirm this behavior? > > regards, tom lane -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 972-414-9812 E-Mail: ler@lerctr.org US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
Olivier PRENANT writes: > Testing beta5 on unixware7 gives an error on int8 test while beta4 (I've > just retested it) works ok regressions.diff follows: This doesn't happen to be caused by the compiler bug described in doc/FAQ_SCO? > Anyway, even after that, there are linking errors on libecpg.so and perl > because of a lack of -L/usr/local/ssl/lib Can you post some screen output, so we can see what the command was that caused the error? -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
On Wed, 28 Feb 2001, Tom Lane wrote: > Olivier PRENANT <ohp@pyrenet.fr> writes: > > Sorry to follow-up on my own post; int8 test passes if open-ssl is not > > used. > > That's difficult to believe, because int8.c doesn't include anything > that even knows SSL exists. Larry, can you confirm this behavior? Hi, I've been testing a little more further and found that (with-openssl) if initdb is done with LANG=C, int8 test succeeds if initdb is done with LANG=fr int8 test fails. I'll try nowwithout openssl and LANG=fr Regards > > regards, tom lane > -- Olivier PRENANT Tel: +33-5-61-50-97-00 (Work) Quartier d'Harraud Turrou +33-5-61-50-97-01 (Fax) 31190 AUTERIVE +33-6-07-63-80-64 (GSM) FRANCE Email: ohp@pyrenet.fr ------------------------------------------------------------------------------ Make your life a dream, make your dream a reality. (St Exupery)