aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/char.out19
-rw-r--r--src/test/regress/expected/char_1.out19
-rw-r--r--src/test/regress/expected/char_2.out19
-rw-r--r--src/test/regress/expected/strings.out25
-rw-r--r--src/test/regress/expected/varchar.out19
-rw-r--r--src/test/regress/expected/varchar_1.out19
-rw-r--r--src/test/regress/expected/varchar_2.out19
-rw-r--r--src/test/regress/sql/char.sql5
-rw-r--r--src/test/regress/sql/strings.sql6
-rw-r--r--src/test/regress/sql/varchar.sql5
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)');