diff options
author | drh <drh@noemail.net> | 2019-08-15 20:04:09 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-08-15 20:04:09 +0000 |
commit | 42d2fce7f5b5e5776f3e881b4685deae2e0266ff (patch) | |
tree | a4f50bf4bc48899b6c53de834a91112d4a164e3e /src/resolve.c | |
parent | 725dd72400872da94dcfb6af48128905b93d57fe (diff) | |
download | sqlite-42d2fce7f5b5e5776f3e881b4685deae2e0266ff.tar.gz sqlite-42d2fce7f5b5e5776f3e881b4685deae2e0266ff.zip |
Provide the SQLITE_DIRECTONLY flag for app-defined functions that prohibits
the use of those functions within triggers or views.
FossilOrigin-Name: fc745845d8d76adc165575e2192f4176e3c28e614c72571d56f4011560499fe1
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/resolve.c b/src/resolve.c index 31600382f..ab2266409 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -823,6 +823,15 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ ** SQL is being compiled using sqlite3NestedParse() */ no_such_func = 1; pDef = 0; + }else + if( (pDef->funcFlags & SQLITE_FUNC_DIRECT)!=0 + && ExprHasProperty(pExpr, EP_Indirect) + && !IN_RENAME_OBJECT + ){ + /* Functions tagged with SQLITE_DIRECTONLY may not be used + ** inside of triggers and views */ + sqlite3ErrorMsg(pParse, "%s() prohibited in triggers and views", + pDef->zName); } } |