diff options
author | Itagaki Takahiro <itagaki.takahiro@gmail.com> | 2011-02-01 15:48:08 +0900 |
---|---|---|
committer | Itagaki Takahiro <itagaki.takahiro@gmail.com> | 2011-02-01 15:48:42 +0900 |
commit | 13a9a7b55b4ced1ac017a3ca5a10f600d242a27a (patch) | |
tree | a19c2e4f0fff9f18e11b864ad2143a3ec8b9a725 /src | |
parent | f62f223b8e7519d741203d71f5bd8fc7693c0b41 (diff) | |
download | postgresql-13a9a7b55b4ced1ac017a3ca5a10f600d242a27a.tar.gz postgresql-13a9a7b55b4ced1ac017a3ca5a10f600d242a27a.zip |
Fix wrong error reports in 'number of array dimensions exceeds the
maximum allowed' messages, that have reported one-less dimensions.
Alexey Klyukin
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/executor/execQual.c | 4 | ||||
-rw-r--r-- | src/backend/utils/adt/arrayfuncs.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index 4b177d25329..9cbc7e8f3ee 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -266,7 +266,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate, ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)", - i, MAXDIM))); + i + 1, MAXDIM))); upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate, econtext, @@ -294,7 +294,7 @@ ExecEvalArrayRef(ArrayRefExprState *astate, ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)", - i, MAXDIM))); + j + 1, MAXDIM))); lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate, econtext, diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 536c4a7ea4a..21335ce5665 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -200,7 +200,7 @@ array_in(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), 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++); if (q == p) /* no digits? */ @@ -452,7 +452,7 @@ ArrayCount(const char *str, int *dim, char typdelim) ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)", - nest_level, MAXDIM))); + nest_level + 1, MAXDIM))); temp[nest_level] = 0; nest_level++; if (ndim < nest_level) |