aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/select.c3
-rw-r--r--src/sqlite.h.in1
-rw-r--r--src/tclsqlite.c1
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);