diff options
author | Michael Paquier <michael@paquier.xyz> | 2021-05-31 11:35:00 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2021-05-31 11:35:00 +0900 |
commit | 12cc956664f159e97be71e33f15ec5f42e46b24e (patch) | |
tree | fcb5e6b382c6c1f967f1cdb6ec5b3949bf260afc | |
parent | ba356a397de565c014384aa01a945aab7d50928c (diff) | |
download | postgresql-12cc956664f159e97be71e33f15ec5f42e46b24e.tar.gz postgresql-12cc956664f159e97be71e33f15ec5f42e46b24e.zip |
Improve some error wording with multirange type parsing
Braces were referred in some error messages as only brackets (not curly
brackets or curly braces), which can be confusing as other types of
brackets could be used.
While on it, add one test to check after the case of junk characters
detected after a right brace.
Author: Kyotaro Horiguchi
Discussion: https://postgr.es/m/20210514.153153.1814935914483287479.horikyota.ntt@gmail.com
-rw-r--r-- | src/backend/utils/adt/multirangetypes.c | 4 | ||||
-rw-r--r-- | src/test/regress/expected/multirangetypes.out | 7 | ||||
-rw-r--r-- | src/test/regress/sql/multirangetypes.sql | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/backend/utils/adt/multirangetypes.c b/src/backend/utils/adt/multirangetypes.c index 0b81649779a..fbcc27d0726 100644 --- a/src/backend/utils/adt/multirangetypes.c +++ b/src/backend/utils/adt/multirangetypes.c @@ -146,7 +146,7 @@ multirange_in(PG_FUNCTION_ARGS) (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("malformed multirange literal: \"%s\"", input_str), - errdetail("Missing left bracket."))); + errdetail("Missing left brace."))); /* consume ranges */ parse_state = MULTIRANGE_BEFORE_RANGE; @@ -282,7 +282,7 @@ multirange_in(PG_FUNCTION_ARGS) (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("malformed multirange literal: \"%s\"", input_str), - errdetail("Junk after right bracket."))); + errdetail("Junk after right brace."))); ret = make_multirange(mltrngtypoid, rangetyp, range_count, ranges); PG_RETURN_MULTIRANGE_P(ret); diff --git a/src/test/regress/expected/multirangetypes.out b/src/test/regress/expected/multirangetypes.out index 04953a59903..98ac592127b 100644 --- a/src/test/regress/expected/multirangetypes.out +++ b/src/test/regress/expected/multirangetypes.out @@ -7,12 +7,17 @@ select ''::textmultirange; ERROR: malformed multirange literal: "" LINE 1: select ''::textmultirange; ^ -DETAIL: Missing left bracket. +DETAIL: Missing left brace. select '{,}'::textmultirange; ERROR: malformed multirange literal: "{,}" LINE 1: select '{,}'::textmultirange; ^ DETAIL: Expected range start. +select '{(,)}.'::textmultirange; +ERROR: malformed multirange literal: "{(,)}." +LINE 1: select '{(,)}.'::textmultirange; + ^ +DETAIL: Junk after right brace. select '{[a,c),}'::textmultirange; ERROR: malformed multirange literal: "{[a,c),}" LINE 1: select '{[a,c),}'::textmultirange; diff --git a/src/test/regress/sql/multirangetypes.sql b/src/test/regress/sql/multirangetypes.sql index 692f2416d9b..3cbebedcd4a 100644 --- a/src/test/regress/sql/multirangetypes.sql +++ b/src/test/regress/sql/multirangetypes.sql @@ -7,6 +7,7 @@ -- negative tests; should fail select ''::textmultirange; select '{,}'::textmultirange; +select '{(,)}.'::textmultirange; select '{[a,c),}'::textmultirange; select '{,[a,c)}'::textmultirange; select '{-[a,z)}'::textmultirange; |