Commit ca5eefb6 authored by Marc G. Fournier's avatar Marc G. Fournier

Make changes so that when the diff is done between 'expected' and 'results',

if an operating specific expected file exists, use that for the comparison.
This allows for "legit" differences between results, like the "Result too
large" message vs "Math result not representable" ...

Also, have the failed diffs get output to regression.diffs so that its easy to
view those tests that failed
parent 9fd18a67
QUERY: CREATE TABLE INT2_TBL(f1 int2);
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('0');
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('1234');
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('-1234');
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('34.5');
ERROR: pg_atoi: error in "34.5": can't parse ".5"
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('32767');
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('-32767');
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('100000');
ERROR: pg_atoi: error reading "100000": Result too large
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('asdf');
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
QUERY: SELECT '' AS five, INT2_TBL.*;
five| f1
----+------
| 0
| 1234
| -1234
| 32767
|-32767
(5 rows)
QUERY: SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> '0'::int2;
four| f1
----+------
| 1234
| -1234
| 32767
|-32767
(4 rows)
QUERY: SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> '0'::int4;
four| f1
----+------
| 1234
| -1234
| 32767
|-32767
(4 rows)
QUERY: SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = '0'::int2;
one|f1
---+--
| 0
(1 row)
QUERY: SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = '0'::int4;
one|f1
---+--
| 0
(1 row)
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < '0'::int2;
two| f1
---+------
| -1234
|-32767
(2 rows)
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < '0'::int4;
two| f1
---+------
| -1234
|-32767
(2 rows)
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= '0'::int2;
three| f1
-----+------
| 0
| -1234
|-32767
(3 rows)
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= '0'::int4;
three| f1
-----+------
| 0
| -1234
|-32767
(3 rows)
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > '0'::int2;
two| f1
---+-----
| 1234
|32767
(2 rows)
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > '0'::int4;
two| f1
---+-----
| 1234
|32767
(2 rows)
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= '0'::int2;
three| f1
-----+-----
| 0
| 1234
|32767
(3 rows)
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= '0'::int4;
three| f1
-----+-----
| 0
| 1234
|32767
(3 rows)
QUERY: SELECT '' AS one, i.* FROM INT2_TBL i WHERE (i.f1 % '2'::int2) = '1'::int2;
one| f1
---+-----
|32767
(1 row)
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE (i.f1 % '2'::int4) = '0'::int2;
three| f1
-----+-----
| 0
| 1234
|-1234
(3 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int2 AS x FROM INT2_TBL i;
five| f1| x
----+------+-----
| 0| 0
| 1234| 2468
| -1234|-2468
| 32767| -2
|-32767| 2
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int4 AS x FROM INT2_TBL i;
five| f1| x
----+------+------
| 0| 0
| 1234| 2468
| -1234| -2468
| 32767| 65534
|-32767|-65534
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int2 AS x FROM INT2_TBL i;
five| f1| x
----+------+------
| 0| 2
| 1234| 1236
| -1234| -1232
| 32767|-32767
|-32767|-32765
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int4 AS x FROM INT2_TBL i;
five| f1| x
----+------+------
| 0| 2
| 1234| 1236
| -1234| -1232
| 32767| 32769
|-32767|-32765
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int2 AS x FROM INT2_TBL i;
five| f1| x
----+------+-----
| 0| -2
| 1234| 1232
| -1234|-1236
| 32767|32765
|-32767|32767
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int4 AS x FROM INT2_TBL i;
five| f1| x
----+------+------
| 0| -2
| 1234| 1232
| -1234| -1236
| 32767| 32765
|-32767|-32769
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int2 AS x FROM INT2_TBL i;
five| f1| x
----+------+------
| 0| 0
| 1234| 617
| -1234| -617
| 32767| 16383
|-32767|-16383
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int4 AS x FROM INT2_TBL i;
five| f1| x
----+------+------
| 0| 0
| 1234| 617
| -1234| -617
| 32767| 16383
|-32767|-16383
(5 rows)
QUERY: CREATE TABLE INT4_TBL(f1 int4);
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('0');
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('123456');
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('-123456');
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('34.5');
ERROR: pg_atoi: error in "34.5": can't parse ".5"
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
ERROR: pg_atoi: error reading "1000000000000": Result too large
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('asdf');
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
QUERY: SELECT '' AS five, INT4_TBL.*;
five| f1
----+-----------
| 0
| 123456
| -123456
| 2147483647
|-2147483647
(5 rows)
QUERY: SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> '0'::int2;
four| f1
----+-----------
| 123456
| -123456
| 2147483647
|-2147483647
(4 rows)
QUERY: SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> '0'::int4;
four| f1
----+-----------
| 123456
| -123456
| 2147483647
|-2147483647
(4 rows)
QUERY: SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = '0'::int2;
one|f1
---+--
| 0
(1 row)
QUERY: SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = '0'::int4;
one|f1
---+--
| 0
(1 row)
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < '0'::int2;
two| f1
---+-----------
| -123456
|-2147483647
(2 rows)
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < '0'::int4;
two| f1
---+-----------
| -123456
|-2147483647
(2 rows)
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= '0'::int2;
three| f1
-----+-----------
| 0
| -123456
|-2147483647
(3 rows)
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= '0'::int4;
three| f1
-----+-----------
| 0
| -123456
|-2147483647
(3 rows)
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > '0'::int2;
two| f1
---+----------
| 123456
|2147483647
(2 rows)
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > '0'::int4;
two| f1
---+----------
| 123456
|2147483647
(2 rows)
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= '0'::int2;
three| f1
-----+----------
| 0
| 123456
|2147483647
(3 rows)
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= '0'::int4;
three| f1
-----+----------
| 0
| 123456
|2147483647
(3 rows)
QUERY: SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % '2'::int2) = '1'::int2;
one| f1
---+----------
|2147483647
(1 row)
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % '2'::int4) = '0'::int2;
three| f1
-----+-------
| 0
| 123456
|-123456
(3 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int2 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+-------
| 0| 0
| 123456| 246912
| -123456|-246912
| 2147483647| -2
|-2147483647| 2
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int4 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+-------
| 0| 0
| 123456| 246912
| -123456|-246912
| 2147483647| -2
|-2147483647| 2
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int2 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+-----------
| 0| 2
| 123456| 123458
| -123456| -123454
| 2147483647|-2147483647
|-2147483647|-2147483645
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int4 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+-----------
| 0| 2
| 123456| 123458
| -123456| -123454
| 2147483647|-2147483647
|-2147483647|-2147483645
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int2 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+----------
| 0| -2
| 123456| 123454
| -123456| -123458
| 2147483647|2147483645
|-2147483647|2147483647
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int4 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+----------
| 0| -2
| 123456| 123454
| -123456| -123458
| 2147483647|2147483645
|-2147483647|2147483647
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int2 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+-----------
| 0| 0
| 123456| 61728
| -123456| -61728
| 2147483647| 1073741823
|-2147483647|-1073741823
(5 rows)
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int4 AS x FROM INT4_TBL i;
five| f1| x
----+-----------+-----------
| 0| 0
| 123456| 61728
| -123456| -61728
| 2147483647| 1073741823
|-2147483647|-1073741823
(5 rows)
QUERY: SELECT -2+3 AS one;
one
---
1
(1 row)
QUERY: SELECT 4-2 AS two;
two
---
2
(1 row)
QUERY: SELECT 2- -1 AS three;
three
-----
3
(1 row)
QUERY: SELECT 2 - -2 AS four;
four
----
4
(1 row)
QUERY: SELECT '2'::int2 * '2'::int2 = '16'::int2 / '4'::int2 AS true;
true
----
t
(1 row)
QUERY: SELECT '2'::int4 * '2'::int2 = '16'::int2 / '4'::int4 AS true;
true
----
t
(1 row)
QUERY: SELECT '2'::int2 * '2'::int4 = '16'::int4 / '4'::int2 AS true;
true
----
t
(1 row)
QUERY: SELECT '1000'::int4 < '999'::int4 AS false;
false
-----
f
(1 row)
QUERY: SELECT 4! AS twenty_four;
twenty_four
-----------
24
(1 row)
QUERY: SELECT !!3 AS six;
six
---
6
(1 row)
QUERY: SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
ten
---
10
(1 row)
QUERY: SELECT 2 + 2 / 2 AS three;
three
-----
3
(1 row)
QUERY: SELECT (2 + 2) / 2 AS two;
two
---
2
(1 row)
QUERY: SELECT dsqrt('64'::float8) AS eight;
eight
-----
8
(1 row)
QUERY: SELECT |/'64'::float8 AS eight;
eight
-----
8
(1 row)
QUERY: SELECT ||/'27'::float8 AS three;
three
-----
3
(1 row)
QUERY: CREATE TABLE OIDINT2_TBL(f1 oidint2);
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('1234/9873');
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('1235/9873');
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('987/-1234');
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('123456');
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('123456/123456');
ERROR: pg_atoi: error reading "123456": Result too large
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('');
QUERY: INSERT INTO OIDINT2_TBL(f1) VALUES ('asdfasd');
ERROR: pg_atoi: error in "asdfasd": can't parse "asdfasd"
QUERY: SELECT '' AS five, OIDINT2_TBL.*;
five|f1
----+---------
|1234/9873
|1235/9873
|987/-1234
|123456/0
|0/0
(5 rows)
QUERY: SELECT '' AS one, o.* FROM OIDINT2_TBL o WHERE o.f1 = '1235/9873';
one|f1
---+---------
|1235/9873
(1 row)
QUERY: SELECT '' AS four, o.* FROM OIDINT2_TBL o WHERE o.f1 <> '1235/9873';
four|f1
----+---------
|1234/9873
|987/-1234
|123456/0
|0/0
(4 rows)
QUERY: SELECT '' AS four, o.* FROM OIDINT2_TBL o WHERE o.f1 <= '1235/9873';
four|f1
----+---------
|1234/9873
|1235/9873
|987/-1234
|0/0
(4 rows)
QUERY: SELECT '' AS three, o.* FROM OIDINT2_TBL o WHERE o.f1 < '1235/9873';
three|f1
-----+---------
|1234/9873
|987/-1234
|0/0
(3 rows)
QUERY: SELECT '' AS two, o.* FROM OIDINT2_TBL o WHERE o.f1 >= '1235/9873';
two|f1
---+---------
|1235/9873
|123456/0
(2 rows)
QUERY: SELECT '' AS one, o.* FROM OIDINT2_TBL o WHERE o.f1 > '1235/9873';
one|f1
---+--------
|123456/0
(1 row)
QUERY: DROP TABLE OIDINT2_TBL;
QUERY: CREATE TABLE OIDINT4_TBL(f1 oidint4);
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('1234/9873');
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('1235/9873');
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('987/-1234');
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('123456');
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('123456/1234568901234567890');
ERROR: pg_atoi: error reading "1234568901234567890": Result too large
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('');
QUERY: INSERT INTO OIDINT4_TBL(f1) VALUES ('asdfasd');
ERROR: pg_atoi: error in "asdfasd": can't parse "asdfasd"
QUERY: SELECT '' AS five, OIDINT4_TBL.*;
five|f1
----+---------
|1234/9873
|1235/9873
|987/-1234
|123456/0
|0/0
(5 rows)
QUERY: SELECT '' AS one, o.* FROM OIDINT4_TBL o WHERE o.f1 = '1235/9873';
one|f1
---+---------
|1235/9873
(1 row)
QUERY: SELECT '' AS four, o.* FROM OIDINT4_TBL o WHERE o.f1 <> '1235/9873';
four|f1
----+---------
|1234/9873
|987/-1234
|123456/0
|0/0
(4 rows)
QUERY: SELECT '' AS four, o.* FROM OIDINT4_TBL o WHERE o.f1 <= '1235/9873';
four|f1
----+---------
|1234/9873
|1235/9873
|987/-1234
|0/0
(4 rows)
QUERY: SELECT '' AS three, o.* FROM OIDINT4_TBL o WHERE o.f1 < '1235/9873';
three|f1
-----+---------
|1234/9873
|987/-1234
|0/0
(3 rows)
QUERY: SELECT '' AS two, o.* FROM OIDINT4_TBL o WHERE o.f1 >= '1235/9873';
two|f1
---+---------
|1235/9873
|123456/0
(2 rows)
QUERY: SELECT '' AS one, o.* FROM OIDINT4_TBL o WHERE o.f1 > '1235/9873';
one|f1
---+--------
|123456/0
(1 row)
QUERY: DROP TABLE OIDINT4_TBL;
#!/bin/sh
# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.13 1997/12/16 16:01:05 thomas Exp $
# $Header: /cvsroot/pgsql/src/test/regress/Attic/regress.sh,v 1.14 1998/02/01 11:42:47 scrappy Exp $
#
if echo '\c' | grep -s c >/dev/null 2>&1
then
......@@ -20,6 +20,8 @@ PGDATESTYLE="Postgres,US"; export PGDATESTYLE
#FRONTEND=monitor
FRONTEND="psql -n -e -q"
SYSTEM=`uname -s`
echo "=============== Notes... ================="
echo "postmaster must already be running for the regression tests to succeed."
echo "The time zone is now set to PST8PDT explicitly by this regression test"
......@@ -39,12 +41,24 @@ if [ $? -ne 0 ]; then
fi
echo "=============== running regression queries... ================="
echo "" > regression.${SYSTEM}
for i in `cat sql/tests`
do
$ECHO_N "${i} .. " $ECHO_C
$FRONTEND regression < sql/${i}.sql > results/${i}.out 2>&1
if [ `diff expected/${i}.out results/${i}.out | wc -l` -ne 0 ]
if [ -f expected/${i}-${SYSTEM}.out ]
then
EXPECTED="expected/${i}-${SYSTEM}.out"
else
EXPECTED="expected/${i}.out"
fi
if [ `diff ${EXPECTED} results/${i}.out | wc -l` -ne 0 ]
then
( diff -c ${EXPECTED} results/${i}.out; \
echo ""; \
echo "----------------------"; \
echo "" ) >> regression.${SYSTEM}
echo failed
else
echo ok
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment