diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/select.c | 3 | ||||
-rw-r--r-- | src/sqlite.h.in | 1 | ||||
-rw-r--r-- | src/tclsqlite.c | 1 |
3 files changed, 5 insertions, 0 deletions
diff --git a/src/select.c b/src/select.c index ae2e0ce65..66eb4b336 100644 --- a/src/select.c +++ b/src/select.c @@ -1814,6 +1814,9 @@ static int multiSelect( SelectDest tmp2dest; int i; + if( sqlite3AuthCheck(pParse, SQLITE_RECURSIVE, 0, 0, 0) ){ + goto multi_select_end; + } iBreak = sqlite3VdbeMakeLabel(v); iCont = sqlite3VdbeMakeLabel(v); diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 5012f864a..51c864c5e 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -2561,6 +2561,7 @@ int sqlite3_set_authorizer( #define SQLITE_FUNCTION 31 /* NULL Function Name */ #define SQLITE_SAVEPOINT 32 /* Operation Savepoint Name */ #define SQLITE_COPY 0 /* No longer used */ +#define SQLITE_RECURSIVE 33 /* NULL NULL */ /* ** CAPI3REF: Tracing And Profiling Functions diff --git a/src/tclsqlite.c b/src/tclsqlite.c index e3e5628b1..1e8191252 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@ -914,6 +914,7 @@ static int auth_callback( case SQLITE_DROP_VTABLE : zCode="SQLITE_DROP_VTABLE"; break; case SQLITE_FUNCTION : zCode="SQLITE_FUNCTION"; break; case SQLITE_SAVEPOINT : zCode="SQLITE_SAVEPOINT"; break; + case SQLITE_RECURSIVE : zCode="SQLITE_RECURSIVE"; break; default : zCode="????"; break; } Tcl_DStringInit(&str); |