Fix wrong error reports in 'number of array dimensions exceeds the
maximum allowed' messages, that have reported one-less dimensions. Alexey Klyukin
This commit is contained in:
parent
5370e1a001
commit
9f37a76a1c
@ -278,7 +278,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
||||||
i, MAXDIM)));
|
i + 1, MAXDIM)));
|
||||||
|
|
||||||
upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate,
|
upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate,
|
||||||
econtext,
|
econtext,
|
||||||
@ -306,7 +306,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate,
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
||||||
i, MAXDIM)));
|
j + 1, MAXDIM)));
|
||||||
|
|
||||||
lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate,
|
lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate,
|
||||||
econtext,
|
econtext,
|
||||||
|
@ -196,7 +196,7 @@ array_in(PG_FUNCTION_ARGS)
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
||||||
ndim, MAXDIM)));
|
ndim + 1, MAXDIM)));
|
||||||
|
|
||||||
for (q = p; isdigit((unsigned char) *q) || (*q == '-') || (*q == '+'); q++);
|
for (q = p; isdigit((unsigned char) *q) || (*q == '-') || (*q == '+'); q++);
|
||||||
if (q == p) /* no digits? */
|
if (q == p) /* no digits? */
|
||||||
@ -448,7 +448,7 @@ ArrayCount(const char *str, int *dim, char typdelim)
|
|||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)",
|
||||||
nest_level, MAXDIM)));
|
nest_level + 1, MAXDIM)));
|
||||||
temp[nest_level] = 0;
|
temp[nest_level] = 0;
|
||||||
nest_level++;
|
nest_level++;
|
||||||
if (ndim < nest_level)
|
if (ndim < nest_level)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user