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

Skip to content

Commit 2da9673

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 c1da1f4 commit 2da9673

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

src/backend/executor/execQual.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate,
293293
ereport(ERROR,
294294
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
295295
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
296-
i, MAXDIM)));
296+
i + 1, MAXDIM)));
297297

298298
upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate,
299299
econtext,
@@ -321,7 +321,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate,
321321
ereport(ERROR,
322322
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
323323
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
324-
i, MAXDIM)));
324+
j + 1, MAXDIM)));
325325

326326
lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate,
327327
econtext,

src/backend/utils/adt/arrayfuncs.c

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

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

src/pl/plpgsql/src/pl_exec.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3750,7 +3750,7 @@ exec_assign_value(PLpgSQL_execstate *estate,
37503750
ereport(ERROR,
37513751
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
37523752
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
3753-
nsubscripts, MAXDIM)));
3753+
nsubscripts + 1, MAXDIM)));
37543754
subscripts[nsubscripts++] = arrayelem->subscript;
37553755
target = estate->datums[arrayelem->arrayparentno];
37563756
} while (target->dtype == PLPGSQL_DTYPE_ARRAYELEM);

0 commit comments

Comments
 (0)
0