Add test for UNION.

Add additional tests in strings for conversions of the "name" data type.
Test SQL92 string functions such as SUBSTRING() and POSITION().
Fix geometry tests to reflect code fixed by Gautam.
Update error messages.
This commit is contained in:
Thomas G. Lockhart 1998-05-29 13:22:42 +00:00
parent f2764eea42
commit 3955d66803
4 changed files with 418 additions and 41 deletions

View File

@ -11,7 +11,7 @@ ERROR: attribute 'nonesuch' not found
QUERY: select distinct on foobar from pg_database;
ERROR: parser: parse error at or near "from"
QUERY: select distinct on foobar * from pg_database;
ERROR: The field specified in the UNIQUE ON clause is not in the targetlist
ERROR: All fields in the UNIQUE ON clause must appear in the target list
QUERY: delete from;
ERROR: parser: parse error at or near ";"
QUERY: delete from nonesuch;

View File

@ -87,43 +87,42 @@ one|f1
QUERY: SELECT '' AS count, p.f1, l.s, l.s # p.f1 AS intersection
FROM LSEG_TBL l, POINT_TBL p;
ERROR: There is no operator '#' for types 'lseg' and 'point'
You will either have to retype this query using an explicit cast,
or you will have to define the operator using CREATE OPERATOR
ERROR: There is more than one possible operator '#' for types 'lseg' and 'point'
You will have to retype this query using an explicit cast
QUERY: SELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest
FROM LSEG_TBL l, POINT_TBL p;
thirty|f1 |s |closest
------+----------+-----------------------------+------------------------------------
|(0,0) |[(1,2),(3,4)] |(1,2)
|(-10,0) |[(1,2),(3,4)] |(1,2)
|(-3,4) |[(1,2),(3,4)] |(1,2)
|(5.1,34.5)|[(1,2),(3,4)] |(3,4)
|(-5,-12) |[(1,2),(3,4)] |(1,2)
|(10,10) |[(1,2),(3,4)] |(3,4)
|(0,0) |[(0,0),(6,6)] |(-0,0)
|(-10,0) |[(0,0),(6,6)] |(0,0)
|(-3,4) |[(0,0),(6,6)] |(0,0)
|(5.1,34.5)|[(0,0),(6,6)] |(6,6)
|(-5,-12) |[(0,0),(6,6)] |(0,0)
|(10,10) |[(0,0),(6,6)] |(6,6)
|(0,0) |[(10,-10),(-3,-4)] |(-3,-4)
|(-10,0) |[(10,-10),(-3,-4)] |(-3,-4)
|(-3,4) |[(10,-10),(-3,-4)] |(-3,-4)
|(5.1,34.5)|[(10,-10),(-3,-4)] |(-3,-4)
|(-5,-12) |[(10,-10),(-3,-4)] |(-3,-4)
|(10,10) |[(10,-10),(-3,-4)] |(-3,-4)
|(0,0) |[(-1000000,200),(300000,-40)]|(0.0028402365895872,15.384614860264)
|(-10,0) |[(-1000000,200),(300000,-40)]|(-9.99715942258202,15.3864610140473)
|(-3,4) |[(-1000000,200),(300000,-40)]|(-2.99789812267519,15.3851688427303)
|(5.1,34.5)|[(-1000000,200),(300000,-40)]|(5.09647083221496,15.3836744976925)
|(-5,-12) |[(-1000000,200),(300000,-40)]|(-4.99494420845634,15.3855375281616)
|(10,10) |[(-1000000,200),(300000,-40)]|(10.000993741978,15.3827690473092)
|(0,0) |[(11,22),(33,44)] |(11,22)
|(-10,0) |[(11,22),(33,44)] |(11,22)
|(-3,4) |[(11,22),(33,44)] |(11,22)
|(5.1,34.5)|[(11,22),(33,44)] |(11,22)
|(-5,-12) |[(11,22),(33,44)] |(11,22)
|(10,10) |[(11,22),(33,44)] |(11,22)
thirty|f1 |s |closest
------+----------+-----------------------------+-------------------------------------
|(0,0) |[(1,2),(3,4)] |(1,2)
|(-10,0) |[(1,2),(3,4)] |(1,2)
|(-3,4) |[(1,2),(3,4)] |(1,2)
|(5.1,34.5)|[(1,2),(3,4)] |(3,4)
|(-5,-12) |[(1,2),(3,4)] |(1,2)
|(10,10) |[(1,2),(3,4)] |(3,4)
|(0,0) |[(0,0),(6,6)] |(-0,0)
|(-10,0) |[(0,0),(6,6)] |(0,0)
|(-3,4) |[(0,0),(6,6)] |(0.5,0.5)
|(5.1,34.5)|[(0,0),(6,6)] |(6,6)
|(-5,-12) |[(0,0),(6,6)] |(0,0)
|(10,10) |[(0,0),(6,6)] |(6,6)
|(0,0) |[(10,-10),(-3,-4)] |(-2.04878048780488,-4.4390243902439)
|(-10,0) |[(10,-10),(-3,-4)] |(-3,-4)
|(-3,4) |[(10,-10),(-3,-4)] |(-3,-4)
|(5.1,34.5)|[(10,-10),(-3,-4)] |(-3,-4)
|(-5,-12) |[(10,-10),(-3,-4)] |(-1.60487804878049,-4.64390243902439)
|(10,10) |[(10,-10),(-3,-4)] |(2.39024390243902,-6.48780487804878)
|(0,0) |[(-1000000,200),(300000,-40)]|(0.0028402365895872,15.384614860264)
|(-10,0) |[(-1000000,200),(300000,-40)]|(-9.99715942258202,15.3864610140473)
|(-3,4) |[(-1000000,200),(300000,-40)]|(-2.99789812267519,15.3851688427303)
|(5.1,34.5)|[(-1000000,200),(300000,-40)]|(5.09647083221496,15.3836744976925)
|(-5,-12) |[(-1000000,200),(300000,-40)]|(-4.99494420845634,15.3855375281616)
|(10,10) |[(-1000000,200),(300000,-40)]|(10.000993741978,15.3827690473092)
|(0,0) |[(11,22),(33,44)] |(11,22)
|(-10,0) |[(11,22),(33,44)] |(11,22)
|(-3,4) |[(11,22),(33,44)] |(11,22)
|(5.1,34.5)|[(11,22),(33,44)] |(14.3,25.3)
|(-5,-12) |[(11,22),(33,44)] |(11,22)
|(10,10) |[(11,22),(33,44)] |(11,22)
(30 rows)
QUERY: SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL;

View File

@ -9,9 +9,146 @@ first line - next line - third line
QUERY: SELECT 'first line'
' - next line' /* this comment is not allowed here */
' - third line';
' - third line'
AS "Illegal comment within continuation";
ERROR: parser: parse error at or near "'"
QUERY: SELECT text(f1) FROM CHAR_TBL;
ERROR: function text(bpchar) does not exist
QUERY: SELECT text(f1) FROM VARCHAR_TBL;
ERROR: function text(varchar) does not exist
QUERY: SELECT CAST(f1 AS text) AS "text(char)" FROM CHAR_TBL;
text(char)
----------
a
ab
abcd
abcd
(4 rows)
QUERY: SELECT CAST(f1 AS text) AS "text(varchar)" FROM VARCHAR_TBL;
text(varchar)
-------------
a
ab
abcd
abcd
(4 rows)
QUERY: SELECT CAST(name 'namefield' AS text) AS "text(name)";
text(name)
----------
namefield
(1 row)
QUERY: SELECT CAST(f1 AS char) AS "char(text)" FROM TEXT_TBL;
char(text)
-----------------
doh!
hi de ho neighbor
(2 rows)
QUERY: SELECT CAST(f1 AS char) AS "char(varchar)" FROM VARCHAR_TBL;
char(varchar)
-------------
a
ab
abcd
abcd
(4 rows)
QUERY: SELECT CAST(name 'namefield' AS char) AS "char(name)";
char(name)
----------
namefield
(1 row)
QUERY: SELECT CAST(f1 AS varchar) AS "varchar(text)" FROM TEXT_TBL;
varchar(text)
-----------------
doh!
hi de ho neighbor
(2 rows)
QUERY: SELECT CAST(f1 AS varchar) AS "varchar(char)" FROM CHAR_TBL;
varchar(char)
-------------
a
ab
abcd
abcd
(4 rows)
QUERY: SELECT CAST(name 'namefield' AS varchar) AS "varchar(name)";
varchar(name)
-------------
namefield
(1 row)
QUERY: SELECT TRIM(BOTH FROM ' bunch o blanks ') AS "bunch o blanks";
bunch o blanks
--------------
bunch o blanks
(1 row)
QUERY: SELECT TRIM(LEADING FROM ' bunch o blanks ') AS "bunch o blanks ";
bunch o blanks
----------------
bunch o blanks
(1 row)
QUERY: SELECT TRIM(TRAILING FROM ' bunch o blanks ') AS " bunch o blanks";
bunch o blanks
----------------
bunch o blanks
(1 row)
QUERY: SELECT TRIM(BOTH 'x' FROM 'xxxxxsome Xsxxxxx') AS "some Xs";
some Xs
-------
some Xs
(1 row)
QUERY: SELECT SUBSTRING('1234567890' FROM 3) AS "34567890";
34567890
--------
34567890
(1 row)
QUERY: SELECT SUBSTRING('1234567890' FROM 4 FOR 3) AS "456";
456
---
456
(1 row)
QUERY: SELECT POSITION('4' IN '1234567890') AS "4";
4
-
4
(1 row)
QUERY: SELECT POSITION(5 IN '1234567890') AS "5";
5
-
5
(1 row)
QUERY: SELECT 'unknown' || ' and unknown' AS "Concat unknown types";
Concat unknown types
--------------------
unknown and unknown
(1 row)
QUERY: SELECT text 'text' || ' and unknown' AS "Concat text to unknown type";
Concat text to unknown type
---------------------------
text and unknown
(1 row)
QUERY: SELECT text 'text' || char ' and char' AS "Concat text to char";
Concat text to char
-------------------
text and char
(1 row)
QUERY: SELECT text 'text' || varchar ' and varchar' AS "Concat text to varchar";
Concat text to varchar
----------------------
text and varchar
(1 row)

View File

@ -0,0 +1,241 @@
QUERY: SELECT 1 AS two UNION SELECT 2;
two
---
1
2
(2 rows)
QUERY: SELECT 1 AS one UNION SELECT 1;
one
---
1
(1 row)
QUERY: SELECT 1 AS two UNION ALL SELECT 2;
two
---
1
2
(2 rows)
QUERY: SELECT 1 AS two UNION ALL SELECT 1;
two
---
1
1
(2 rows)
QUERY: SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
three
-----
1
2
3
(3 rows)
QUERY: SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
two
---
1
2
(2 rows)
QUERY: SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
three
-----
1
2
2
(3 rows)
QUERY: SELECT 1.1 AS two UNION SELECT 2.2;
two
---
1.1
2.2
(2 rows)
QUERY: SELECT 1.1 AS two UNION SELECT 2;
two
---
1.1
2
(2 rows)
QUERY: SELECT 1 AS two UNION SELECT 2.2;
two
---
1
2
(2 rows)
QUERY: SELECT 1 AS one UNION SELECT 1.1;
one
---
1
(1 row)
QUERY: SELECT 1.1 AS two UNION ALL SELECT 2;
two
---
1.1
2
(2 rows)
QUERY: SELECT 1 AS two UNION ALL SELECT 1;
two
---
1
1
(2 rows)
QUERY: SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
three
-----
1
2
3
(3 rows)
QUERY: SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
two
---
1
2
(2 rows)
QUERY: SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
three
-----
1
2
2
(3 rows)
QUERY: SELECT f1 AS five FROM FLOAT8_TBL
UNION
SELECT f1 FROM FLOAT8_TBL;
five
---------------------
-1.2345678901234e+200
-1004.3
-34.84
-1.2345678901234e-200
0
(5 rows)
QUERY: SELECT f1 AS ten FROM FLOAT8_TBL
UNION ALL
SELECT f1 FROM FLOAT8_TBL;
ten
---------------------
0
-34.84
-1004.3
-1.2345678901234e+200
-1.2345678901234e-200
0
-34.84
-1004.3
-1.2345678901234e+200
-1.2345678901234e-200
(10 rows)
QUERY: SELECT f1 AS nine FROM FLOAT8_TBL
UNION
SELECT f1 FROM INT4_TBL;
nine
---------------------
-1.2345678901234e+200
-2147483647
-123456
-1004.3
-34.84
-1.2345678901234e-200
0
123456
2147483647
(9 rows)
QUERY: SELECT f1 AS ten FROM FLOAT8_TBL
UNION ALL
SELECT f1 FROM INT4_TBL;
ten
---------------------
0
-34.84
-1004.3
-1.2345678901234e+200
-1.2345678901234e-200
0
123456
-123456
2147483647
-2147483647
(10 rows)
QUERY: SELECT f1 AS five FROM FLOAT8_TBL
WHERE f1 BETWEEN -1e6 AND 1e6
UNION
SELECT f1 FROM INT4_TBL
WHERE f1 BETWEEN 0 AND 1000000;
five
---------------------
-1004.3
-34.84
-1.2345678901234e-200
0
123456
(5 rows)
QUERY: SELECT f1 AS five FROM VARCHAR_TBL
UNION
SELECT f1 FROM CHAR_TBL;
five
----
a
a
ab
ab
abcd
(5 rows)
QUERY: SELECT f1 AS three FROM VARCHAR_TBL
UNION
SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
three
-----
a
ab
abcd
(3 rows)
QUERY: SELECT f1 AS eight FROM VARCHAR_TBL
UNION ALL
SELECT f1 FROM CHAR_TBL;
eight
-----
a
ab
abcd
abcd
a
ab
abcd
abcd
(8 rows)
QUERY: SELECT f1 AS five FROM TEXT_TBL
UNION
SELECT f1 FROM VARCHAR_TBL
UNION
SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
five
-----------------
a
ab
abcd
doh!
hi de ho neighbor
(5 rows)