aboutsummaryrefslogtreecommitdiff
path: root/src/pragma.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pragma.c')
-rw-r--r--src/pragma.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pragma.c b/src/pragma.c
index 7c8911b2c..576080e10 100644
--- a/src/pragma.c
+++ b/src/pragma.c
@@ -1124,7 +1124,11 @@ void sqlite3Pragma(
#endif
if( sqlite3GetBoolean(zRight, 0) ){
- db->flags |= mask;
+ if( (mask & SQLITE_WriteSchema)==0
+ || (db->flags & SQLITE_Defensive)==0
+ ){
+ db->flags |= mask;
+ }
}else{
db->flags &= ~mask;
if( mask==SQLITE_DeferFKs ) db->nDeferredImmCons = 0;
@@ -1762,6 +1766,7 @@ void sqlite3Pragma(
sqlite3_vtab *pVTab;
int a1;
if( !IsVirtual(pTab) ) continue;
+ sqlite3ViewGetColumnNames(pParse, pTab);
if( pTab->u.vtab.p==0 ) continue;
pVTab = pTab->u.vtab.p->pVtab;
if( NEVER(pVTab==0) ) continue;