aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build.c6
-rw-r--r--src/pragma.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/src/build.c b/src/build.c
index 3021ad4e5..803c33461 100644
--- a/src/build.c
+++ b/src/build.c
@@ -142,9 +142,11 @@ void sqlite3FinishCoding(Parse *pParse){
assert( pParse->pToplevel==0 );
db = pParse->db;
- if( db->mallocFailed ) return;
if( pParse->nested ) return;
- if( pParse->nErr ) return;
+ if( db->mallocFailed || pParse->nErr ){
+ if( pParse->rc==SQLITE_OK ) pParse->rc = SQLITE_ERROR;
+ return;
+ }
/* Begin by generating some termination code at the end of the
** vdbe program
diff --git a/src/pragma.c b/src/pragma.c
index 3cecd8dda..614daa54d 100644
--- a/src/pragma.c
+++ b/src/pragma.c
@@ -946,9 +946,9 @@ void sqlite3Pragma(
sqlite3ErrorMsg(pParse,
"Safety level may not be changed inside a transaction");
}else{
- testcase( (getSafetyLevel(zRight,0,1)+1) & ~PAGER_SYNCHRONOUS_MASK );
- pDb->safety_level = (getSafetyLevel(zRight,0,1)+1)
- & PAGER_SYNCHRONOUS_MASK;
+ int iLevel = (getSafetyLevel(zRight,0,1)+1) & PAGER_SYNCHRONOUS_MASK;
+ if( iLevel==0 ) iLevel = 1;
+ pDb->safety_level = iLevel;
setAllPagerFlags(db);
}
}