diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/char.out | 19 | ||||
-rw-r--r-- | src/test/regress/expected/char_1.out | 19 | ||||
-rw-r--r-- | src/test/regress/expected/char_2.out | 19 | ||||
-rw-r--r-- | src/test/regress/expected/strings.out | 25 | ||||
-rw-r--r-- | src/test/regress/expected/varchar.out | 19 | ||||
-rw-r--r-- | src/test/regress/expected/varchar_1.out | 19 | ||||
-rw-r--r-- | src/test/regress/expected/varchar_2.out | 19 | ||||
-rw-r--r-- | src/test/regress/sql/char.sql | 5 | ||||
-rw-r--r-- | src/test/regress/sql/strings.sql | 6 | ||||
-rw-r--r-- | src/test/regress/sql/varchar.sql | 5 |
10 files changed, 155 insertions, 0 deletions
diff --git a/src/test/regress/expected/char.out b/src/test/regress/expected/char.out index ea9b0b8eeb3..199001b2fed 100644 --- a/src/test/regress/expected/char.out +++ b/src/test/regress/expected/char.out @@ -119,6 +119,25 @@ SELECT * FROM CHAR_TBL; abcd (4 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'char(4)'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('abcde', 'char(4)'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('abcde', 'char(4)'); + pg_input_error_message +-------------------------------------- + value too long for type character(4) +(1 row) + -- -- Also test "char", which is an ad-hoc one-byte type. It can only -- really store ASCII characters, but we allow high-bit-set characters diff --git a/src/test/regress/expected/char_1.out b/src/test/regress/expected/char_1.out index ffd31551de5..3dcb0daa0d6 100644 --- a/src/test/regress/expected/char_1.out +++ b/src/test/regress/expected/char_1.out @@ -119,6 +119,25 @@ SELECT * FROM CHAR_TBL; abcd (4 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'char(4)'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('abcde', 'char(4)'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('abcde', 'char(4)'); + pg_input_error_message +-------------------------------------- + value too long for type character(4) +(1 row) + -- -- Also test "char", which is an ad-hoc one-byte type. It can only -- really store ASCII characters, but we allow high-bit-set characters diff --git a/src/test/regress/expected/char_2.out b/src/test/regress/expected/char_2.out index 56818f824b5..dd5d34fe8da 100644 --- a/src/test/regress/expected/char_2.out +++ b/src/test/regress/expected/char_2.out @@ -119,6 +119,25 @@ SELECT * FROM CHAR_TBL; abcd (4 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'char(4)'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('abcde', 'char(4)'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('abcde', 'char(4)'); + pg_input_error_message +-------------------------------------- + value too long for type character(4) +(1 row) + -- -- Also test "char", which is an ad-hoc one-byte type. It can only -- really store ASCII characters, but we allow high-bit-set characters diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out index 69d7ed4ef1c..f028c1f10f2 100644 --- a/src/test/regress/expected/strings.out +++ b/src/test/regress/expected/strings.out @@ -273,6 +273,31 @@ SELECT E'De\\123dBeEf'::bytea; DeSdBeEf (1 row) +-- Test non-error-throwing API too +SELECT pg_input_is_valid(E'\\xDeAdBeE', 'bytea'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message(E'\\xDeAdBeE', 'bytea'); + pg_input_error_message +------------------------------------------------ + invalid hexadecimal data: odd number of digits +(1 row) + +SELECT pg_input_error_message(E'\\xDeAdBeEx', 'bytea'); + pg_input_error_message +-------------------------------- + invalid hexadecimal digit: "x" +(1 row) + +SELECT pg_input_error_message(E'foo\\99bar', 'bytea'); + pg_input_error_message +------------------------------------- + invalid input syntax for type bytea +(1 row) + -- -- test conversions between various string types -- E021-10 implicit casting among the character data types diff --git a/src/test/regress/expected/varchar.out b/src/test/regress/expected/varchar.out index f1a8202d9f9..62b683d86ff 100644 --- a/src/test/regress/expected/varchar.out +++ b/src/test/regress/expected/varchar.out @@ -111,3 +111,22 @@ SELECT * FROM VARCHAR_TBL; abcd (4 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'varchar(4)'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('abcde', 'varchar(4)'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('abcde', 'varchar(4)'); + pg_input_error_message +---------------------------------------------- + value too long for type character varying(4) +(1 row) + diff --git a/src/test/regress/expected/varchar_1.out b/src/test/regress/expected/varchar_1.out index 6f01ef969ec..6690f81c0b8 100644 --- a/src/test/regress/expected/varchar_1.out +++ b/src/test/regress/expected/varchar_1.out @@ -111,3 +111,22 @@ SELECT * FROM VARCHAR_TBL; abcd (4 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'varchar(4)'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('abcde', 'varchar(4)'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('abcde', 'varchar(4)'); + pg_input_error_message +---------------------------------------------- + value too long for type character varying(4) +(1 row) + diff --git a/src/test/regress/expected/varchar_2.out b/src/test/regress/expected/varchar_2.out index 72e57050ea4..ad8aa7c6933 100644 --- a/src/test/regress/expected/varchar_2.out +++ b/src/test/regress/expected/varchar_2.out @@ -111,3 +111,22 @@ SELECT * FROM VARCHAR_TBL; abcd (4 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'varchar(4)'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('abcde', 'varchar(4)'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('abcde', 'varchar(4)'); + pg_input_error_message +---------------------------------------------- + value too long for type character varying(4) +(1 row) + diff --git a/src/test/regress/sql/char.sql b/src/test/regress/sql/char.sql index 120fed53e5c..8aa43b0fb8e 100644 --- a/src/test/regress/sql/char.sql +++ b/src/test/regress/sql/char.sql @@ -72,6 +72,11 @@ INSERT INTO CHAR_TBL (f1) VALUES ('abcde'); SELECT * FROM CHAR_TBL; +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('abcd ', 'char(4)'); +SELECT pg_input_is_valid('abcde', 'char(4)'); +SELECT pg_input_error_message('abcde', 'char(4)'); + -- -- Also test "char", which is an ad-hoc one-byte type. It can only -- really store ASCII characters, but we allow high-bit-set characters diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql index 04109f599dd..932f71cbca4 100644 --- a/src/test/regress/sql/strings.sql +++ b/src/test/regress/sql/strings.sql @@ -85,6 +85,12 @@ SELECT E'DeAdBeEf'::bytea; SELECT E'De\\000dBeEf'::bytea; SELECT E'De\\123dBeEf'::bytea; +-- Test non-error-throwing API too +SELECT pg_input_is_valid(E'\\xDeAdBeE', 'bytea'); +SELECT pg_input_error_message(E'\\xDeAdBeE', 'bytea'); +SELECT pg_input_error_message(E'\\xDeAdBeEx', 'bytea'); +SELECT pg_input_error_message(E'foo\\99bar', 'bytea'); + -- -- test conversions between various string types -- E021-10 implicit casting among the character data types diff --git a/src/test/regress/sql/varchar.sql b/src/test/regress/sql/varchar.sql index a9708214262..df16da37a73 100644 --- a/src/test/regress/sql/varchar.sql +++ b/src/test/regress/sql/varchar.sql @@ -66,3 +66,8 @@ DROP TABLE VARCHAR_TBL; 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 pg_input_error_message('abcde', 'varchar(4)'); |