diff options
author | drh <drh@noemail.net> | 2019-08-17 00:53:29 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-08-17 00:53:29 +0000 |
commit | 217ca657d82f2324d6c5a97598bf4f77ebbb1fe7 (patch) | |
tree | 2d6db295d13828d0624f70b99e6d476e93569f1b /src/main.c | |
parent | cc5979dbd384049c1efef847e5cc22082191024b (diff) | |
parent | 42d2fce7f5b5e5776f3e881b4685deae2e0266ff (diff) | |
download | sqlite-217ca657d82f2324d6c5a97598bf4f77ebbb1fe7.tar.gz sqlite-217ca657d82f2324d6c5a97598bf4f77ebbb1fe7.zip |
The SQLITE_DIRECTONLY flag, when added to sqlite3_create_function() prevents
the function from being used inside a trigger or view.
FossilOrigin-Name: de767376987f7668b0770c4920f1532e341b5a27f797d69c0f5e92b87d036170
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index 79a17e5a5..a8c1d4dc6 100644 --- a/src/main.c +++ b/src/main.c @@ -1718,7 +1718,8 @@ int sqlite3CreateFunc( } assert( SQLITE_FUNC_CONSTANT==SQLITE_DETERMINISTIC ); - extraFlags = enc & SQLITE_DETERMINISTIC; + assert( SQLITE_FUNC_DIRECT==SQLITE_DIRECTONLY ); + extraFlags = enc & (SQLITE_DETERMINISTIC|SQLITE_DIRECTONLY); enc &= (SQLITE_FUNC_ENCMASK|SQLITE_ANY); #ifndef SQLITE_OMIT_UTF16 @@ -1781,6 +1782,7 @@ int sqlite3CreateFunc( p->u.pDestructor = pDestructor; p->funcFlags = (p->funcFlags & SQLITE_FUNC_ENCMASK) | extraFlags; testcase( p->funcFlags & SQLITE_DETERMINISTIC ); + testcase( p->funcFlags & SQLITE_DIRECTONLY ); p->xSFunc = xSFunc ? xSFunc : xStep; p->xFinalize = xFinal; p->xValue = xValue; |