Обсуждение: Regression Failure: CURRENT SOURCES/union&join

Поиск
Список
Период
Сортировка

Regression Failure: CURRENT SOURCES/union&join

От
Larry Rosenman
Дата:
Here ya go:
test union                ... FAILED
test case                 ... ok
test join                 ... FAILED


*** ./expected/union.out    Thu Oct  9 20:49:31 2003
--- ./results/union.out    Fri Oct 31 15:15:50 2003
***************
*** 106,112 ****  two -----  1.1
!    2 (2 rows)
 SELECT 1.1 AS three UNION SELECT 2 UNION ALL SELECT 2;
--- 106,112 ----  two -----  1.1
!  2.0 (2 rows)
 SELECT 1.1 AS three UNION SELECT 2 UNION ALL SELECT 2;

======================================================================

*** ./expected/join.out    Thu Oct  9 20:49:31 2003
--- ./results/join.out    Fri Oct 31 15:15:51 2003
***************
*** 1732,1739 ****      | 6 | 6 | six   |      | 7 | 7 | seven |      | 8 | 8 | eight |
-      |   |   | null  |      |   | 0 | zero  | (13 rows)
 SELECT '' AS "xxx", *
--- 1732,1739 ----      | 6 | 6 | six   |      | 7 | 7 | seven |      | 8 | 8 | eight |      |   | 0 | zero  |
+      |   |   | null  | (13 rows)
 SELECT '' AS "xxx", *
***************
*** 1752,1759 ****      | 6 | 6 | six   |      | 7 | 7 | seven |      | 8 | 8 | eight |
-      |   |   | null  |      |   | 0 | zero  | (13 rows)
 SELECT '' AS "xxx", *
--- 1752,1759 ----      | 6 | 6 | six   |      | 7 | 7 | seven |      | 8 | 8 | eight |      |   | 0 | zero  |
+      |   |   | null  | (13 rows)
 SELECT '' AS "xxx", *
***************
*** 1793,1800 **** -----+---+---+-------+----      | 0 |   | zero  |      | 1 | 4 | one   | -1
-      | 2 | 3 | two   |  2      | 2 | 3 | two   |  4      | 3 | 2 | three | -3      | 4 | 1 | four  |      | 5 | 0 |
five | -5 
--- 1793,1800 ---- -----+---+---+-------+----      | 0 |   | zero  |      | 1 | 4 | one   | -1      | 2 | 3 | two   |
4
+      | 2 | 3 | two   |  2      | 3 | 2 | three | -3      | 4 | 1 | four  |      | 5 | 0 | five  | -5
***************
*** 1815,1822 **** -----+---+---+-------+----      | 0 |   | zero  |      | 1 | 4 | one   | -1
-      | 2 | 3 | two   |  2      | 2 | 3 | two   |  4      | 3 | 2 | three | -3      | 4 | 1 | four  |      | 5 | 0 |
five | -5 
--- 1815,1822 ---- -----+---+---+-------+----      | 0 |   | zero  |      | 1 | 4 | one   | -1      | 2 | 3 | two   |
4
+      | 2 | 3 | two   |  2      | 3 | 2 | three | -3      | 4 | 1 | four  |      | 5 | 0 | five  | -5

======================================================================



--
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

Re: Regression Failure: CURRENT SOURCES/union&join

От
Tom Lane
Дата:
Larry Rosenman <ler@lerctr.org> writes:
> *** ./expected/union.out    Thu Oct  9 20:49:31 2003
> --- ./results/union.out    Fri Oct 31 15:15:50 2003
> ***************
> *** 106,112 ****
>    two
>   -----
>    1.1
> !    2
>   (2 rows)

>   SELECT 1.1 AS three UNION SELECT 2 UNION ALL SELECT 2;
> --- 106,112 ----
>    two
>   -----
>    1.1
> !  2.0
>   (2 rows)

I think this is just a platform-specific difference in the behavior of
qsort().  Numeric "2" and "2.0" print differently, but they are equal
according to the comparison operators, so it's mostly luck of the draw
which one is selected for output.

The original coding of this regression test expected that these values
would be interpreted as float8, wherein there is no difference between
"2" and "2.0".  I'm kind of inclined to change the test back to using
float8 so we don't see more of these reports.

> *** ./expected/join.out    Thu Oct  9 20:49:31 2003
> --- ./results/join.out    Fri Oct 31 15:15:51 2003
> [ row ordering differences ]

This also looks like platform-specific behavior --- the differences are
in the sort ordering of rows with equal keys.
        regards, tom lane


Re: Regression Failure: CURRENT SOURCES/union&join

От
Larry Rosenman
Дата:

--On Friday, October 31, 2003 16:49:17 -0500 Tom Lane <tgl@sss.pgh.pa.us>
wrote:

> Larry Rosenman <ler@lerctr.org> writes:
>> *** ./expected/union.out    Thu Oct  9 20:49:31 2003
>> --- ./results/union.out    Fri Oct 31 15:15:50 2003
>> ***************
>> *** 106,112 ****
>>    two
>>   -----
>>    1.1
>> !    2
>>   (2 rows)
>
>>   SELECT 1.1 AS three UNION SELECT 2 UNION ALL SELECT 2;
>> --- 106,112 ----
>>    two
>>   -----
>>    1.1
>> !  2.0
>>   (2 rows)
>
> I think this is just a platform-specific difference in the behavior of
> qsort().  Numeric "2" and "2.0" print differently, but they are equal
> according to the comparison operators, so it's mostly luck of the draw
> which one is selected for output.
>
> The original coding of this regression test expected that these values
> would be interpreted as float8, wherein there is no difference between
> "2" and "2.0".  I'm kind of inclined to change the test back to using
> float8 so we don't see more of these reports.
>
>> *** ./expected/join.out    Thu Oct  9 20:49:31 2003
>> --- ./results/join.out    Fri Oct 31 15:15:51 2003
>> [ row ordering differences ]
>
> This also looks like platform-specific behavior --- the differences are
> in the sort ordering of rows with equal keys.
OK.  This makes sense.  SCO made improvements in the qsort() routine in
an update I applied Wednesday.  (And, it had to do with equal key
processing).

137. The qsort() routine was reworked to increase performance, especially    when presented with lots of "equal" data
items.   fz527984 fz528071 

Modulo these diffs, we now pass all tests on UnixWare.

Any chance of the patch I posted to -patches being applied for 7.4?

LER

>
>             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