diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out new file mode 100644 index 0000000000..0b08708507 --- /dev/null +++ b/src/test/regress/expected/strings.out @@ -0,0 +1,17 @@ +QUERY: SELECT 'first line' +' - next line' + ' - third line' + AS "Three lines to one"; +Three lines to one +----------------------------------- +first line - next line - third line +(1 row) + +QUERY: SELECT 'first line' +' - next line' /* this comment is not allowed here */ +' - third line'; +WARN:parser: parse error at or near "'" +QUERY: SELECT text(f1) FROM CHAR_TBL; +WARN:func_get_detail: function text(bpchar) does not exist +QUERY: SELECT text(f1) FROM VARCHAR_TBL; +WARN:func_get_detail: function text(varchar) does not exist diff --git a/src/test/regress/expected/varchar.out b/src/test/regress/expected/varchar.out new file mode 100644 index 0000000000..6bfa1a9317 --- /dev/null +++ b/src/test/regress/expected/varchar.out @@ -0,0 +1,98 @@ +QUERY: CREATE TABLE VARCHAR_TBL(f1 varchar(1)); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('a'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('A'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('1'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES (2); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('3'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES (''); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('cd'); +QUERY: SELECT '' AS seven, VARCHAR_TBL.*; +seven|f1 +-----+-- + |a + |A + |1 + |2 + |3 + | + |c +(7 rows) + +QUERY: SELECT '' AS six, c.* + FROM VARCHAR_TBL c + WHERE c.f1 <> 'a'; +six|f1 +---+-- + |A + |1 + |2 + |3 + | + |c +(6 rows) + +QUERY: SELECT '' AS one, c.* + FROM VARCHAR_TBL c + WHERE c.f1 = 'a'; +one|f1 +---+-- + |a +(1 row) + +QUERY: SELECT '' AS five, c.* + FROM VARCHAR_TBL c + WHERE c.f1 < 'a'; +five|f1 +----+-- + |A + |1 + |2 + |3 + | +(5 rows) + +QUERY: SELECT '' AS six, c.* + FROM VARCHAR_TBL c + WHERE c.f1 <= 'a'; +six|f1 +---+-- + |a + |A + |1 + |2 + |3 + | +(6 rows) + +QUERY: SELECT '' AS one, c.* + FROM VARCHAR_TBL c + WHERE c.f1 > 'a'; +one|f1 +---+-- + |c +(1 row) + +QUERY: SELECT '' AS two, c.* + FROM VARCHAR_TBL c + WHERE c.f1 >= 'a'; +two|f1 +---+-- + |a + |c +(2 rows) + +QUERY: DROP TABLE VARCHAR_TBL; +QUERY: CREATE TABLE VARCHAR_TBL(f1 varchar(4)); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('a'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('ab'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd'); +QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde'); +QUERY: SELECT '' AS four, VARCHAR_TBL.*; +four|f1 +----+---- + |a + |ab + |abcd + |abcd +(4 rows) + diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql new file mode 100644 index 0000000000..50453043b1 --- /dev/null +++ b/src/test/regress/sql/strings.sql @@ -0,0 +1,23 @@ +-- +-- Test various data entry syntaxes. +-- + +-- SQL92 string continuation syntax +SELECT 'first line' +' - next line' + ' - third line' + AS "Three lines to one"; + +-- illegal string continuation syntax +SELECT 'first line' +' - next line' /* this comment is not allowed here */ +' - third line'; + +-- +-- test conversions between various string types +-- + +SELECT text(f1) FROM CHAR_TBL; + +SELECT text(f1) FROM VARCHAR_TBL; + diff --git a/src/test/regress/sql/varchar.sql b/src/test/regress/sql/varchar.sql new file mode 100644 index 0000000000..ead5da6b26 --- /dev/null +++ b/src/test/regress/sql/varchar.sql @@ -0,0 +1,64 @@ +-- ****************** test built-in type varchar ************** +-- + +CREATE TABLE VARCHAR_TBL(f1 varchar(1)); + +INSERT INTO VARCHAR_TBL (f1) VALUES ('a'); + +INSERT INTO VARCHAR_TBL (f1) VALUES ('A'); + +-- any of the following three input formats are acceptable +INSERT INTO VARCHAR_TBL (f1) VALUES ('1'); + +INSERT INTO VARCHAR_TBL (f1) VALUES (2); + +INSERT INTO VARCHAR_TBL (f1) VALUES ('3'); + +-- zero-length char +INSERT INTO VARCHAR_TBL (f1) VALUES (''); + +-- try varchar's of greater than 1 length +INSERT INTO VARCHAR_TBL (f1) VALUES ('cd'); + + +SELECT '' AS seven, VARCHAR_TBL.*; + +SELECT '' AS six, c.* + FROM VARCHAR_TBL c + WHERE c.f1 <> 'a'; + +SELECT '' AS one, c.* + FROM VARCHAR_TBL c + WHERE c.f1 = 'a'; + +SELECT '' AS five, c.* + FROM VARCHAR_TBL c + WHERE c.f1 < 'a'; + +SELECT '' AS six, c.* + FROM VARCHAR_TBL c + WHERE c.f1 <= 'a'; + +SELECT '' AS one, c.* + FROM VARCHAR_TBL c + WHERE c.f1 > 'a'; + +SELECT '' AS two, c.* + FROM VARCHAR_TBL c + WHERE c.f1 >= 'a'; + +DROP TABLE VARCHAR_TBL; + +-- +-- Now test longer arrays of char +-- + +CREATE TABLE VARCHAR_TBL(f1 varchar(4)); + +INSERT INTO VARCHAR_TBL (f1) VALUES ('a'); +INSERT INTO VARCHAR_TBL (f1) VALUES ('ab'); +INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd'); +INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde'); + +SELECT '' AS four, VARCHAR_TBL.*; +