Re: [HACKERS] Union test case broken in make check?

2009-11-20 Thread Emmanuel Cecchet

Tom Lane wrote:

Kenneth Marshall k...@rice.edu writes:
  

Without an order by, the order is not defined.



Yeah, but with the same data and the same software it should generally
give the same result; as evidenced by the fact that these same
regression tests have worked for most people for years.  There's
something odd happening on Emmanuel's machine.  Maybe he's changed
the hashing algorithms or some planner cost parameters?
  
I did not change anything to Postgres and I can reproduce the problem 
with a vanilla checkout of HEAD. However, I think I started to see the 
problem since my last VMWare and OS upgrade (unfortunately I did both 
simultaneously).


For info, I am using VMWare Workstation v6.5.3 build-185404 on Vista 
6.0.60002 SP2. The VM is an Ubuntu 9.04 (Jaunty) with a 2.6.28-16 SMP 
kernel on x86_64 (2 cores available for the VM, 4 cores total). gcc is 
4.3.3 (Ubuntu 4.3.3-5ubuntu4).


Let me know if you need additional info about my setup.

Emmanuel

--
Emmanuel Cecchet
Aster Data
Web: http://www.asterdata.com


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] Union test case broken in make check?

2009-11-19 Thread Emmanuel Cecchet

Hi,

Is it just me or the union test case fails in CVS head?

manu

--
Emmanuel Cecchet
Aster Data
Web: http://www.asterdata.com


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Union test case broken in make check?

2009-11-19 Thread Andrew Dunstan



Emmanuel Cecchet wrote:

Hi,

Is it just me or the union test case fails in CVS head?



The buildfarm is pretty much all green: 
http://www.pgbuildfarm.org/cgi-bin/show_status.pl


So it looks like it's you :-)

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Union test case broken in make check?

2009-11-19 Thread Tom Lane
Andrew Dunstan and...@dunslane.net writes:
 Emmanuel Cecchet wrote:
 Is it just me or the union test case fails in CVS head?

 The buildfarm is pretty much all green: 
 http://www.pgbuildfarm.org/cgi-bin/show_status.pl
 So it looks like it's you :-)

When in doubt, try make distclean and a full rebuild before assuming
you've got a problem worth tracking down ...

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Union test case broken in make check?

2009-11-19 Thread Emmanuel Cecchet

Tom Lane wrote:

Andrew Dunstan and...@dunslane.net writes:
  

Emmanuel Cecchet wrote:


Is it just me or the union test case fails in CVS head?
  


  
The buildfarm is pretty much all green: 
http://www.pgbuildfarm.org/cgi-bin/show_status.pl

So it looks like it's you :-)



When in doubt, try make distclean and a full rebuild before assuming
you've got a problem worth tracking down ...
  

Well, I did:
1. make distclean
2. configure with CFLAGS=-O0 --enable-cassert --enable-debug 
--without-perl --without-python --without-tcl --without-openssl

3. make (everything normal)
4. make check
And it still fails for me. I am attaching my regression.diffs if someone 
thinks it is worth tracking down ...


Emmanuel
*** /home/manu/workspace/PG-HEAD/src/test/regress/expected/union.out
2009-02-09 16:18:28.0 -0500
--- /home/manu/workspace/PG-HEAD/src/test/regress/results/union.out 
2009-11-19 19:37:32.0 -0500
***
*** 198,208 
WHERE f1 BETWEEN 0 AND 100;
   five  
  ---
--1004.3
- -34.84
-  -1.2345678901234e-200
   0
  123456
  (5 rows)
  
  SELECT CAST(f1 AS char(4)) AS three FROM VARCHAR_TBL
--- 198,208 
WHERE f1 BETWEEN 0 AND 100;
   five  
  ---
   0
  123456
+ -34.84
+  -1.2345678901234e-200
+-1004.3
  (5 rows)
  
  SELECT CAST(f1 AS char(4)) AS three FROM VARCHAR_TBL
***
*** 263,278 
  SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl;
  q2
  --
-  4567890123456789
123
  (2 rows)
  
  SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl;
  q2
  --
   4567890123456789
   4567890123456789
-   123
  (3 rows)
  
  SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl ORDER BY 1;
--- 263,278 
  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 ORDER BY 1;
***
*** 305,320 
  SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl;
  q1
  --
-  4567890123456789
123
  (2 rows)
  
  SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl;
  q1
  --
   4567890123456789
   4567890123456789
-   123
  (3 rows)
  
  --
--- 305,320 
  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)
  
  --
***
*** 341,348 
  SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 
FROM int8_tbl;
  q1 
  ---
-   4567890123456789
 123
 456
4567890123456789
 123
--- 341,348 
  SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 
FROM int8_tbl;
  q1 
  ---
 123
+   4567890123456789
 456
4567890123456789
 123
***
*** 353,367 
  SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL SELECT 
q2 FROM int8_tbl)));
  q1
  --
-  4567890123456789
123
  (2 rows)
  
  (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL 
SELECT q2 FROM int8_tbl;
  q1 
  ---
-   4567890123456789
 123
 456
4567890123456789
 123
--- 353,367 
  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
***
*** 416,423 
  SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 
1)));
  q1
  --
-  4567890123456789
123
  (2 rows)
  
  --
--- 416,423 
  SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 
1)));
  

Re: [HACKERS] Union test case broken in make check?

2009-11-19 Thread Kenneth Marshall
Without an order by, the order is not defined. The answers are the
same but the test gives a false failure because of the lack of
ordering.

Regards,
Ken

On Thu, Nov 19, 2009 at 07:54:30PM -0500, Emmanuel Cecchet wrote:
 Tom Lane wrote:
 Andrew Dunstan and...@dunslane.net writes:
   
 Emmanuel Cecchet wrote:
 
 Is it just me or the union test case fails in CVS head?
   

   
 The buildfarm is pretty much all green: 
 http://www.pgbuildfarm.org/cgi-bin/show_status.pl
 So it looks like it's you :-)
 

 When in doubt, try make distclean and a full rebuild before assuming
 you've got a problem worth tracking down ...
   
 Well, I did:
 1. make distclean
 2. configure with CFLAGS=-O0 --enable-cassert --enable-debug --without-perl 
 --without-python --without-tcl --without-openssl
 3. make (everything normal)
 4. make check
 And it still fails for me. I am attaching my regression.diffs if someone 
 thinks it is worth tracking down ...

 Emmanuel

 *** /home/manu/workspace/PG-HEAD/src/test/regress/expected/union.out  
 2009-02-09 16:18:28.0 -0500
 --- /home/manu/workspace/PG-HEAD/src/test/regress/results/union.out   
 2009-11-19 19:37:32.0 -0500
 ***
 *** 198,208 
 WHERE f1 BETWEEN 0 AND 100;
five  
   ---
 --1004.3
 - -34.84
 -  -1.2345678901234e-200
0
   123456
   (5 rows)
   
   SELECT CAST(f1 AS char(4)) AS three FROM VARCHAR_TBL
 --- 198,208 
 WHERE f1 BETWEEN 0 AND 100;
five  
   ---
0
   123456
 + -34.84
 +  -1.2345678901234e-200
 +-1004.3
   (5 rows)
   
   SELECT CAST(f1 AS char(4)) AS three FROM VARCHAR_TBL
 ***
 *** 263,278 
   SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl;
   q2
   --
 -  4567890123456789
 123
   (2 rows)
   
   SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl;
   q2
   --
4567890123456789
4567890123456789
 -   123
   (3 rows)
   
   SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl ORDER BY 1;
 --- 263,278 
   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 ORDER BY 1;
 ***
 *** 305,320 
   SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl;
   q1
   --
 -  4567890123456789
 123
   (2 rows)
   
   SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl;
   q1
   --
4567890123456789
4567890123456789
 -   123
   (3 rows)
   
   --
 --- 305,320 
   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)
   
   --
 ***
 *** 341,348 
   SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT 
 q2 FROM int8_tbl;
   q1 
   ---
 -   4567890123456789
  123
  456
 4567890123456789
  123
 --- 341,348 
   SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT 
 q2 FROM int8_tbl;
   q1 
   ---
  123
 +   4567890123456789
  456
 4567890123456789
  123
 ***
 *** 353,367 
   SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL 
 SELECT q2 FROM int8_tbl)));
   q1
   --
 -  4567890123456789
 123
   (2 rows)
   
   (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL 
 SELECT q2 FROM int8_tbl;
   q1 
   ---
 -   4567890123456789
  123
  456
 4567890123456789
  123
 --- 353,367 
   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
  

Re: [HACKERS] Union test case broken in make check?

2009-11-19 Thread Emmanuel Cecchet

Then I guess that we need to fix the test.

Emmanuel

Kenneth Marshall wrote:

Without an order by, the order is not defined. The answers are the
same but the test gives a false failure because of the lack of
ordering.

Regards,
Ken

On Thu, Nov 19, 2009 at 07:54:30PM -0500, Emmanuel Cecchet wrote:
  

Tom Lane wrote:


Andrew Dunstan and...@dunslane.net writes:
  
  

Emmanuel Cecchet wrote:



Is it just me or the union test case fails in CVS head?
  
  
  
  
The buildfarm is pretty much all green: 
http://www.pgbuildfarm.org/cgi-bin/show_status.pl

So it looks like it's you :-)



When in doubt, try make distclean and a full rebuild before assuming
you've got a problem worth tracking down ...
  
  

Well, I did:
1. make distclean
2. configure with CFLAGS=-O0 --enable-cassert --enable-debug --without-perl 
--without-python --without-tcl --without-openssl

3. make (everything normal)
4. make check
And it still fails for me. I am attaching my regression.diffs if someone 
thinks it is worth tracking down ...


Emmanuel



  

*** /home/manu/workspace/PG-HEAD/src/test/regress/expected/union.out
2009-02-09 16:18:28.0 -0500
--- /home/manu/workspace/PG-HEAD/src/test/regress/results/union.out 
2009-11-19 19:37:32.0 -0500
***
*** 198,208 
WHERE f1 BETWEEN 0 AND 100;
   five  
  ---

--1004.3
- -34.84
-  -1.2345678901234e-200
   0
  123456
  (5 rows)
  
  SELECT CAST(f1 AS char(4)) AS three FROM VARCHAR_TBL

--- 198,208 
WHERE f1 BETWEEN 0 AND 100;
   five  
  ---

   0
  123456
+ -34.84
+  -1.2345678901234e-200
+-1004.3
  (5 rows)
  
  SELECT CAST(f1 AS char(4)) AS three FROM VARCHAR_TBL

***
*** 263,278 
  SELECT q2 FROM int8_tbl INTERSECT SELECT q1 FROM int8_tbl;
  q2
  --

-  4567890123456789
123
  (2 rows)
  
  SELECT q2 FROM int8_tbl INTERSECT ALL SELECT q1 FROM int8_tbl;
  q2
  --

   4567890123456789
   4567890123456789
-   123
  (3 rows)
  
  SELECT q2 FROM int8_tbl EXCEPT SELECT q1 FROM int8_tbl ORDER BY 1;

--- 263,278 
  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 ORDER BY 1;

***
*** 305,320 
  SELECT q1 FROM int8_tbl EXCEPT ALL SELECT q2 FROM int8_tbl;
  q1
  --

-  4567890123456789
123
  (2 rows)
  
  SELECT q1 FROM int8_tbl EXCEPT ALL SELECT DISTINCT q2 FROM int8_tbl;
  q1
  --

   4567890123456789
   4567890123456789
-   123
  (3 rows)
  
  --

--- 305,320 
  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)
  
  --

***
*** 341,348 
  SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 
FROM int8_tbl;
  q1 
  ---

-   4567890123456789
 123
 456
4567890123456789
 123
--- 341,348 
  SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl UNION ALL SELECT q2 
FROM int8_tbl;
  q1 
  ---

 123
+   4567890123456789
 456
4567890123456789
 123
***
*** 353,367 
  SELECT q1 FROM int8_tbl INTERSECT (((SELECT q2 FROM int8_tbl UNION ALL SELECT 
q2 FROM int8_tbl)));
  q1
  --

-  4567890123456789
123
  (2 rows)
  
  (((SELECT q1 FROM int8_tbl INTERSECT SELECT q2 FROM int8_tbl))) UNION ALL SELECT q2 FROM int8_tbl;
  q1 
  ---

-   4567890123456789
 123
 456
4567890123456789
 123
--- 353,367 
  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
 

Re: [HACKERS] Union test case broken in make check?

2009-11-19 Thread Tom Lane
Kenneth Marshall k...@rice.edu writes:
 Without an order by, the order is not defined.

Yeah, but with the same data and the same software it should generally
give the same result; as evidenced by the fact that these same
regression tests have worked for most people for years.  There's
something odd happening on Emmanuel's machine.  Maybe he's changed
the hashing algorithms or some planner cost parameters?

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers