diff options
| author | Tom Lane | 2022-12-25 19:32:02 +0000 |
|---|---|---|
| committer | Tom Lane | 2022-12-25 19:32:30 +0000 |
| commit | 442e25d2485b1ecf3357725acee995a1c349163d (patch) | |
| tree | 74d5d9f38f4a7e242cc87bcad98a17804a320939 /src/test | |
| parent | 361ec4368b1da252e031e2ee8bce366bce5f72b2 (diff) | |
Convert enum_in() to report errors softly.
I missed this in my initial survey, probably because I examined
the contents of pg_type in the postgres database, which lacks
any enumerated types.
Discussion: https://postgr.es/m/CAAJ_b97KeDWUdpTKGOaFYPv0OicjOu6EW+QYWj-Ywrgj_aEy1g@mail.gmail.com
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/enum.out | 25 | ||||
| -rw-r--r-- | src/test/regress/sql/enum.sql | 6 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/test/regress/expected/enum.out b/src/test/regress/expected/enum.out index 908f67efffb..4b45fcf8f02 100644 --- a/src/test/regress/expected/enum.out +++ b/src/test/regress/expected/enum.out @@ -24,6 +24,31 @@ SELECT 'mauve'::rainbow; ERROR: invalid input value for enum rainbow: "mauve" LINE 1: SELECT 'mauve'::rainbow; ^ +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('red', 'rainbow'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('mauve', 'rainbow'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('mauve', 'rainbow'); + pg_input_error_message +----------------------------------------------- + invalid input value for enum rainbow: "mauve" +(1 row) + +SELECT pg_input_error_message(repeat('too_long', 32), 'rainbow'); + pg_input_error_message +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + invalid input value for enum rainbow: "too_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_longtoo_long" +(1 row) + -- -- adding new values -- diff --git a/src/test/regress/sql/enum.sql b/src/test/regress/sql/enum.sql index 6affd0d1ebe..c87656589b1 100644 --- a/src/test/regress/sql/enum.sql +++ b/src/test/regress/sql/enum.sql @@ -15,6 +15,12 @@ SELECT COUNT(*) FROM pg_enum WHERE enumtypid = 'rainbow'::regtype; SELECT 'red'::rainbow; SELECT 'mauve'::rainbow; +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('red', 'rainbow'); +SELECT pg_input_is_valid('mauve', 'rainbow'); +SELECT pg_input_error_message('mauve', 'rainbow'); +SELECT pg_input_error_message(repeat('too_long', 32), 'rainbow'); + -- -- adding new values -- |
