aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2018-11-26 18:09:15 +0000
committerdrh <drh@noemail.net>2018-11-26 18:09:15 +0000
commiteea8eb6d04f5eb2528f21d0585d603e4c1abe2ae (patch)
tree6504b0e99e092c6285f77292ec7796b0ce100f1a /src/resolve.c
parent49b269e0955b86db3205c11153928e093197fa38 (diff)
downloadsqlite-eea8eb6d04f5eb2528f21d0585d603e4c1abe2ae.tar.gz
sqlite-eea8eb6d04f5eb2528f21d0585d603e4c1abe2ae.zip
Do not allow direct access to internal-use SQL functions such as
sqlite_rename_column() and sqlite3_rename_table() except when the new SQLITE_TESTCTRL_INTERNAL_FUNCTIONS flag is set. FossilOrigin-Name: 6e1330545e7b74fe5f1f20751a3425e2788441485fc07fcb7626e448c72027ce
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 34a051583..0c7dfc0b2 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -771,6 +771,15 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
notValid(pParse, pNC, "non-deterministic functions",
NC_IdxExpr|NC_PartIdx);
}
+ if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0
+ && pParse->nested==0
+ && sqlite3Config.bInternalFunctions==0
+ ){
+ /* Internal-use-only functions are disallowed unless the
+ ** SQL is being compiled using sqlite3NestedParse() */
+ no_such_func = 1;
+ pDef = 0;
+ }
}
if( 0==IN_RENAME_OBJECT ){