diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/regress/sql/varchar.sql | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/test/regress/sql/varchar.sql b/src/test/regress/sql/varchar.sql new file mode 100644 index 0000000..c8aaf93 --- /dev/null +++ b/src/test/regress/sql/varchar.sql @@ -0,0 +1,73 @@ +-- +-- VARCHAR +-- + +-- +-- Build a table for testing +-- (This temporarily hides the table created in test_setup.sql) +-- + +CREATE TEMP 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'); +INSERT INTO VARCHAR_TBL (f1) VALUES ('c '); + + +SELECT * FROM VARCHAR_TBL; + +SELECT c.* + FROM VARCHAR_TBL c + WHERE c.f1 <> 'a'; + +SELECT c.* + FROM VARCHAR_TBL c + WHERE c.f1 = 'a'; + +SELECT c.* + FROM VARCHAR_TBL c + WHERE c.f1 < 'a'; + +SELECT c.* + FROM VARCHAR_TBL c + WHERE c.f1 <= 'a'; + +SELECT c.* + FROM VARCHAR_TBL c + WHERE c.f1 > 'a'; + +SELECT c.* + FROM VARCHAR_TBL c + WHERE c.f1 >= 'a'; + +DROP TABLE VARCHAR_TBL; + +-- +-- Now test longer arrays of char +-- +-- This varchar_tbl was already created and filled in test_setup.sql. +-- Here we just try to insert bad values. +-- + +INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde'); + +SELECT * FROM VARCHAR_TBL; + +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'varchar(4)'); +SELECT pg_input_is_valid('abcde', 'varchar(4)'); +SELECT * FROM pg_input_error_info('abcde', 'varchar(4)'); |