]> granicus.if.org Git - postgresql/commitdiff
Add tests for varchar() and combinations of string types.
authorThomas G. Lockhart <lockhart@fourpalms.org>
Mon, 1 Dec 1997 02:48:47 +0000 (02:48 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Mon, 1 Dec 1997 02:48:47 +0000 (02:48 +0000)
src/test/regress/expected/strings.out [new file with mode: 0644]
src/test/regress/expected/varchar.out [new file with mode: 0644]
src/test/regress/sql/strings.sql [new file with mode: 0644]
src/test/regress/sql/varchar.sql [new file with mode: 0644]

diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out
new file mode 100644 (file)
index 0000000..0b08708
--- /dev/null
@@ -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 (file)
index 0000000..6bfa1a9
--- /dev/null
@@ -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 (file)
index 0000000..5045304
--- /dev/null
@@ -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 (file)
index 0000000..ead5da6
--- /dev/null
@@ -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.*;
+