int8 beta5 broken?

Started by Olivier PRENANTabout 25 years ago8 messageshackersbugs
Jump to latest
#1Olivier PRENANT
ohp@pyrenet.fr
hackersbugs

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)

#2Olivier PRENANT
ohp@pyrenet.fr
In reply to: Olivier PRENANT (#1)
hackersbugs
Re: int8 beta5 broken?

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)

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Olivier PRENANT (#1)
hackersbugs
Re: [HACKERS] int8 beta5 broken?

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Olivier PRENANT (#2)
hackersbugs
Re: 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

#5Larry Rosenman
ler@lerctr.org
In reply to: Tom Lane (#4)
hackersbugs
RE: Re: int8 beta5 broken?

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

#6Peter Eisentraut
peter_e@gmx.net
In reply to: Olivier PRENANT (#1)
hackersbugs
Re: [HACKERS] int8 beta5 broken?

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/

#7Larry Rosenman
ler@lerctr.org
In reply to: Larry Rosenman (#5)
hackersbugs
Re: Re: int8 beta5 broken?

* 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.o wchar.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.o pqsignal.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

#8Olivier PRENANT
ohp@pyrenet.fr
In reply to: Tom Lane (#4)
hackersbugs
Re: Re: int8 beta5 broken?

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)