8000 Fix wrong error reports in 'number of array dimensions exceeds the · machack666/postgres@13a9a7b · GitHub
[go: up one dir, main page]

8000 Skip to content

Commit 13a9a7b

Browse files
committed
Fix wrong error reports in 'number of array dimensions exceeds the
maximum allowed' messages, that have reported one-less dimensions. Alexey Klyukin
1 parent f62f223 commit 13a9a7b

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/backend/executor/execQual.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate,
266266
ereport(ERROR,
267267
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
268268
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
269-
i, MAXDIM)));
269+
i + 1, MAXDIM)));
270270

271271
upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate,
272272
econtext,
@@ -294,7 +294,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate,
294294
ereport(ERROR,
295295
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
296296
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
297-
i, MAXDIM)));
297+
j + 1, MAXDIM)));
298298

299299
lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate,
300300
econtext,

src/backend/utils/adt/arrayfuncs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ array_in(PG_FUNCTION_ARGS)
200200
ereport(ERROR,
201201
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
202202
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
203-
ndim, MAXDIM)));
203+
ndim + 1, MAXDIM)));
204204

205205
for (q = p; isdigit((unsigned char) *q) || (*q == '-') || (*q == '+'); q++);
206206
if (q == p) /* no digits? */
@@ -452,7 +452,7 @@ ArrayCount(const char *str, int *dim, char typdelim)
452452
ereport(ERROR,
453453
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
454454
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
455-
nest_level, MAXDIM)));
455+
nest_level + 1, MAXDIM)));
456456
temp[nest_level] = 0;
457457
nest_level++;
458458
if (ndim < nest_level)

0 commit comments

Comments
 (0)
0