Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 12cc956

Browse files
committed
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
1 parent ba356a3 commit 12cc956

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

src/backend/utils/adt/multirangetypes.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ multirange_in(PG_FUNCTION_ARGS)
146146
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
147147
errmsg("malformed multirange literal: \"%s\"",
148148
input_str),
149-
errdetail("Missing left bracket.")));
149+
errdetail("Missing left brace.")));
150150

151151
/* consume ranges */
152152
parse_state = MULTIRANGE_BEFORE_RANGE;
@@ -282,7 +282,7 @@ multirange_in(PG_FUNCTION_ARGS)
282282
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
283283
errmsg("malformed multirange literal: \"%s\"",
284284
input_str),
285-
errdetail("Junk after right bracket.")));
285+
errdetail("Junk after right brace.")));
286286

287287
ret = make_multirange(mltrngtypoid, rangetyp, range_count, ranges);
288288
PG_RETURN_MULTIRANGE_P(ret);

src/test/regress/expected/multirangetypes.out

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@ select ''::textmultirange;
77
ERROR: malformed multirange literal: ""
88
LINE 1: select ''::textmultirange;
99
^
10-
DETAIL: Missing left bracket.
10+
DETAIL: Missing left brace.
1111
select '{,}'::textmultirange;
1212
ERROR: malformed multirange literal: "{,}"
1313
LINE 1: select '{,}'::textmultirange;
1414
^
1515
DETAIL: Expected range start.
16+
select '{(,)}.'::textmultirange;
17+
ERROR: malformed multirange literal: "{(,)}."
18+
LINE 1: select '{(,)}.'::textmultirange;
19+
^
20+
DETAIL: Junk after right brace.
1621
select '{[a,c),}'::textmultirange;
1722
ERROR: malformed multirange literal: "{[a,c),}"
1823
LINE 1: select '{[a,c),}'::textmultirange;

src/test/regress/sql/multirangetypes.sql

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
-- negative tests; should fail
88
select ''::textmultirange;
99
select '{,}'::textmultirange;
10+
select '{(,)}.'::textmultirange;
1011
select '{[a,c),}'::textmultirange;
1112
select '{,[a,c)}'::textmultirange;
1213
select '{-[a,z)}'::textmultirange;

0 commit comments

Comments
 (0)