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().
This commit is contained in:
Thomas G. Lockhart 1998-05-29 13:23:02 +00:00
parent 3955d66803
commit 5812d51270
3 changed files with 135 additions and 3 deletions

View File

@ -11,13 +11,60 @@ SELECT 'first line'
-- illegal string continuation syntax
SELECT 'first line'
' - next line' /* this comment is not allowed here */
' - third line';
' - third line'
AS "Illegal comment within continuation";
--
-- test conversions between various string types
--
SELECT text(f1) FROM CHAR_TBL;
SELECT CAST(f1 AS text) AS "text(char)" FROM CHAR_TBL;
SELECT text(f1) FROM VARCHAR_TBL;
SELECT CAST(f1 AS text) AS "text(varchar)" FROM VARCHAR_TBL;
SELECT CAST(name 'namefield' AS text) AS "text(name)";
SELECT CAST(f1 AS char) AS "char(text)" FROM TEXT_TBL;
SELECT CAST(f1 AS char) AS "char(varchar)" FROM VARCHAR_TBL;
SELECT CAST(name 'namefield' AS char) AS "char(name)";
SELECT CAST(f1 AS varchar) AS "varchar(text)" FROM TEXT_TBL;
SELECT CAST(f1 AS varchar) AS "varchar(char)" FROM CHAR_TBL;
SELECT CAST(name 'namefield' AS varchar) AS "varchar(name)";
--
-- test SQL92 string functions
--
SELECT TRIM(BOTH FROM ' bunch o blanks ') AS "bunch o blanks";
SELECT TRIM(LEADING FROM ' bunch o blanks ') AS "bunch o blanks ";
SELECT TRIM(TRAILING FROM ' bunch o blanks ') AS " bunch o blanks";
SELECT TRIM(BOTH 'x' FROM 'xxxxxsome Xsxxxxx') AS "some Xs";
SELECT SUBSTRING('1234567890' FROM 3) AS "34567890";
SELECT SUBSTRING('1234567890' FROM 4 FOR 3) AS "456";
SELECT POSITION('4' IN '1234567890') AS "4";
SELECT POSITION(5 IN '1234567890') AS "5";
--
-- test implicit type conversion
--
SELECT 'unknown' || ' and unknown' AS "Concat unknown types";
SELECT text 'text' || ' and unknown' AS "Concat text to unknown type";
SELECT text 'text' || char ' and char' AS "Concat text to char";
SELECT text 'text' || varchar ' and varchar' AS "Concat text to varchar";

View File

@ -46,6 +46,7 @@ select_into
select_distinct
select_distinct_on
subselect
union
aggregates
transactions
random

View File

@ -0,0 +1,84 @@
--
-- union.sql
--
-- Simple UNION constructs
SELECT 1 AS two UNION SELECT 2;
SELECT 1 AS one UNION SELECT 1;
SELECT 1 AS two UNION ALL SELECT 2;
SELECT 1 AS two UNION ALL SELECT 1;
SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
SELECT 1.1 AS two UNION SELECT 2.2;
-- Mixed types
SELECT 1.1 AS two UNION SELECT 2;
SELECT 1 AS two UNION SELECT 2.2;
SELECT 1 AS one UNION SELECT 1.1;
SELECT 1.1 AS two UNION ALL SELECT 2;
SELECT 1 AS two UNION ALL SELECT 1;
SELECT 1 AS three UNION SELECT 2 UNION SELECT 3;
SELECT 1 AS two UNION SELECT 2 UNION SELECT 2;
SELECT 1 AS three UNION SELECT 2 UNION ALL SELECT 2;
--
-- Try testing from tables...
--
SELECT f1 AS five FROM FLOAT8_TBL
UNION
SELECT f1 FROM FLOAT8_TBL;
SELECT f1 AS ten FROM FLOAT8_TBL
UNION ALL
SELECT f1 FROM FLOAT8_TBL;
SELECT f1 AS nine FROM FLOAT8_TBL
UNION
SELECT f1 FROM INT4_TBL;
SELECT f1 AS ten FROM FLOAT8_TBL
UNION ALL
SELECT f1 FROM INT4_TBL;
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;
SELECT f1 AS five FROM VARCHAR_TBL
UNION
SELECT f1 FROM CHAR_TBL;
SELECT f1 AS three FROM VARCHAR_TBL
UNION
SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;
SELECT f1 AS eight FROM VARCHAR_TBL
UNION ALL
SELECT f1 FROM CHAR_TBL;
SELECT f1 AS five FROM TEXT_TBL
UNION
SELECT f1 FROM VARCHAR_TBL
UNION
SELECT TRIM(TRAILING FROM f1) FROM CHAR_TBL;