Thread

  1. Union test case broken in make check?

    Emmanuel Cecchet <manu@asterdata.com> — 2009-11-19T21:21:43Z

    Hi,
    
    Is it just me or the union test case fails in CVS head?
    
    manu
    
    -- 
    Emmanuel Cecchet
    Aster Data
    Web: http://www.asterdata.com
    
    
    
  2. Re: Union test case broken in make check?

    Andrew Dunstan <andrew@dunslane.net> — 2009-11-19T21:47:36Z

    
    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
    
    
  3. Re: Union test case broken in make check?

    Tom Lane <tgl@sss.pgh.pa.us> — 2009-11-19T23:39:14Z

    Andrew Dunstan <andrew@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
    
    
  4. Re: Union test case broken in make check?

    Emmanuel Cecchet <manu@asterdata.com> — 2009-11-20T00:54:30Z

    Tom Lane wrote:
    > Andrew Dunstan <andrew@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
    
  5. Re: Union test case broken in make check?

    ktm@rice.edu <ktm@rice.edu> — 2009-11-20T02:27:45Z

    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 <andrew@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.000000000 -0500
    > --- /home/manu/workspace/PG-HEAD/src/test/regress/results/union.out	2009-11-19 19:37:32.000000000 -0500
    > ***************
    > *** 198,208 ****
    >     WHERE f1 BETWEEN 0 AND 1000000;
    >            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 1000000;
    >            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)));
    >           q1        
    >   ------------------
    >                 123
    > +  4567890123456789
    >   (2 rows)
    >   
    >   --
    > 
    > ======================================================================
    > 
    
    > 
    > -- 
    > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
    > To make changes to your subscription:
    > http://www.postgresql.org/mailpref/pgsql-hackers
    
    
    
  6. Re: Union test case broken in make check?

    Emmanuel Cecchet <manu@asterdata.com> — 2009-11-20T02:52:55Z

    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 <andrew@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.000000000 -0500
    >> --- /home/manu/workspace/PG-HEAD/src/test/regress/results/union.out	2009-11-19 19:37:32.000000000 -0500
    >> ***************
    >> *** 198,208 ****
    >>     WHERE f1 BETWEEN 0 AND 1000000;
    >>            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 1000000;
    >>            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)));
    >>           q1        
    >>   ------------------
    >>                 123
    >> +  4567890123456789
    >>   (2 rows)
    >>   
    >>   --
    >>
    >> ======================================================================
    >>
    >>     
    >
    >   
    
    
    -- 
    Emmanuel Cecchet
    Aster Data
    Web: http://www.asterdata.com
    
    
    
  7. Re: Union test case broken in make check?

    Tom Lane <tgl@sss.pgh.pa.us> — 2009-11-20T05:49:20Z

    Kenneth Marshall <ktm@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
    
    
  8. Re: Union test case broken in make check?

    Emmanuel Cecchet <manu@asterdata.com> — 2009-11-20T14:47:39Z

    Tom Lane wrote:
    > Kenneth Marshall <ktm@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