aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2021-06-30 11:53:21 +0000
committerdrh <>2021-06-30 11:53:21 +0000
commit14a1b1c132a0a2249e46980a55e3916a819066bd (patch)
treea71eccdf574049acc9255434570ac53907406374 /src/expr.c
parentcf1e25566b5d294593fa310eb9375cc1cb406e5d (diff)
downloadsqlite-14a1b1c132a0a2249e46980a55e3916a819066bd.tar.gz
sqlite-14a1b1c132a0a2249e46980a55e3916a819066bd.zip
Do not enforce the SQLITE_LIMIT_FUNCTION_ARG limit for internally generated
SQL. This prevents problems with statements like ALTER TABLE if the function argument limit is set too low. [forum:/forumpost/17735aa21f3ddab2|Forum post 17735aa21f3ddab2]. FossilOrigin-Name: 763fdec5b3151eeab001c50e78f654cd9b4b4c10e81e50a663046a70e64d5339
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c
index b751f51a6..06c3b87cd 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -986,7 +986,10 @@ Expr *sqlite3ExprFunction(
sqlite3ExprListDelete(db, pList); /* Avoid memory leak when malloc fails */
return 0;
}
- if( pList && pList->nExpr > pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){
+ if( pList
+ && pList->nExpr > pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG]
+ && !pParse->nested
+ ){
sqlite3ErrorMsg(pParse, "too many arguments on function %T", pToken);
}
pNew->x.pList = pList;