aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2021-05-31 11:35:00 +0900
committerMichael Paquier <michael@paquier.xyz>2021-05-31 11:35:00 +0900
commit12cc956664f159e97be71e33f15ec5f42e46b24e (patch)
treefcb5e6b382c6c1f967f1cdb6ec5b3949bf260afc
parentba356a397de565c014384aa01a945aab7d50928c (diff)
downloadpostgresql-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.c4
-rw-r--r--src/test/regress/expected/multirangetypes.out7
-rw-r--r--src/test/regress/sql/multirangetypes.sql1
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;