Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 5812d51

Browse files
author
Thomas G. Lockhart
committed
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().
1 parent 3955d66 commit 5812d51

File tree

3 files changed

+135
-3
lines changed

3 files changed

+135
-3
lines changed

src/test/regress/sql/strings.sql

+50-3
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,60 @@ SELECT 'first line'
1111
-- illegal string continuation syntax
1212
SELECT 'first line'
1313
' - next line' /* this comment is not allowed here */
14-
' - third line';
14+
' - third line'
15+
AS "Illegal comment within continuation";
1516

1617
--
1718
-- test conversions between various string types
1819
--
1920

20-
SELECT text(f1) FROM CHAR_TBL;
21+
SELECT CAST(f1 AS text) AS "text(char)" FROM CHAR_TBL;
2122

22-
SELECT text(f1) FROM VARCHAR_TBL;
23+
SELECT CAST(f1 AS text) AS "text(varchar)" FROM VARCHAR_TBL;
24+
25+
SELECT CAST(name 'namefield' AS text) AS "text(name)";
26+
27+
SELECT CAST(f1 AS char) AS "char(text)" FROM TEXT_TBL;
28+
29+
SELECT CAST(f1 AS char) AS "char(varchar)" FROM VARCHAR_TBL;
30+
31+
SELECT CAST(name 'namefield' AS char) AS "char(name)";
32+
33+
SELECT CAST(f1 AS varchar) AS "varchar(text)" FROM TEXT_TBL;
34+
35+
SELECT CAST(f1 AS varchar) AS "varchar(char)" FROM CHAR_TBL;
36+
37+
SELECT CAST(name 'namefield' AS varchar) AS "varchar(name)";
38+
39+
--
40+
-- test SQL92 string functions
41+
--
42+
43+
SELECT TRIM(BOTH FROM ' bunch o blanks ') AS "bunch o blanks";
44+
45+
SELECT TRIM(LEADING FROM ' bunch o blanks ') AS "bunch o blanks ";
46+
47+
SELECT TRIM(TRAILING FROM ' bunch o blanks ') AS " bunch o blanks";
48+
49+
SELECT TRIM(BOTH 'x' FROM 'xxxxxsome Xsxxxxx') AS "some Xs";
50+
51+
SELECT SUBSTRING('1234567890' FROM 3) AS "34567890";
52+
53+
SELECT SUBSTRING('1234567890' FROM 4 FOR 3) AS "456";
54+
55+
SELECT POSITION('4' IN '1234567890') AS "4";
56+
57+
SELECT POSITION(5 IN '1234567890') AS "5";
58+
59+
--
60+
-- test implicit type conversion
61+
--
62+
63+
SELECT 'unknown' || ' and unknown' AS "Concat unknown types";
64+
65+
SELECT text 'text' || ' and unknown' AS "Concat text to unknown type";
66+
67+
SELECT text 'text' || char ' and char' AS "Concat text to char";
68+
69+
SELECT text 'text' || varchar ' and varchar' AS "Concat text to varchar";
2370

src/test/regress/sql/tests

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ select_into
4646
select_distinct
4747
select_distinct_on
4848
subselect
49+
union
4950
aggregates
5051
transactions
5152
random

src/test/regress/sql/union.sql

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
--
2+
-- union.sql
3+
--
4+
5+
-- Simple UNION constructs
6+
7+
SELECT 1 AS two UNION SELECT 2;
8+
9+
SELECT 1 AS one UNION SELECT 1;
10+
11+
SELECT 1 AS two UNION ALL SELECT 2;
12+
13+
SELECT 1 AS two UNION ALL SELECT 1;
14+
15+
SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
16+
17+
SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
18+
19+
SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
20+
21+
SELECT 1.1 AS two UNION SELECT 2.2;
22+
23+
-- Mixed types
24+
25+
SELECT 1.1 AS two UNION SELECT 2;
26+
27+
SELECT 1 AS two UNION SELECT 2.2;
28+
29+
SELECT 1 AS one UNION SELECT 1.1;
30+
31+
SELECT 1.1 AS two UNION ALL SELECT 2;
32+
33+
SELECT 1 AS two UNION ALL SELECT 1;
34+
35+
SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
36+
37+
SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
38+
39+
SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
40+
41+
--
42+
-- Try testing from tables...
43+
--
44+
45+
SELECT f1 AS five FROM FLOAT8_TBL
46+
UNION
47+
SELECT f1 FROM FLOAT8_TBL;
48+
49+
SELECT f1 AS ten FROM FLOAT8_TBL
50+
UNION ALL
51+
SELECT f1 FROM FLOAT8_TBL;
52+
53+
SELECT f1 AS nine FROM FLOAT8_TBL
54+
UNION
55+
SELECT f1 FROM INT4_TBL;
56+
57+
SELECT f1 AS ten FROM FLOAT8_TBL
58+
UNION ALL
59+
SELECT f1 FROM INT4_TBL;
60+
61+
SELECT f1 AS five FROM FLOAT8_TBL
62+
WHERE f1 BETWEEN -1e6 AND 1e6
63+
UNION
64+
SELECT f1 FROM INT4_TBL
65+
WHERE f1 BETWEEN 0 AND 1000000;
66+
67+
SELECT f1 AS five FROM VARCHAR_TBL
68+
UNION
69+
SELECT f1 FROM CHAR_TBL;
70+
71+
SELECT f1 AS three FROM VARCHAR_TBL
72+
UNION
73+
SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
74+
75+
SELECT f1 AS eight FROM VARCHAR_TBL
76+
UNION ALL
77+
SELECT f1 FROM CHAR_TBL;
78+
79+
SELECT f1 AS five FROM TEXT_TBL
80+
UNION
81+
SELECT f1 FROM VARCHAR_TBL
82+
UNION
83+
SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
84+

0 commit comments

Comments
 (0)