aboutsummaryrefslogtreecommitdiff
path: root/src/build.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/build.c')
-rw-r--r--src/build.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/build.c b/src/build.c
index 25f61e815..d59282779 100644
--- a/src/build.c
+++ b/src/build.c
@@ -143,11 +143,15 @@ void sqlite3FinishCoding(Parse *pParse){
/* Begin by generating some termination code at the end of the
** vdbe program
*/
- if( pParse->pVdbe==0 && db->init.busy ){
- pParse->rc = SQLITE_DONE;
- return;
+ v = pParse->pVdbe;
+ if( v==0 ){
+ if( db->init.busy ){
+ pParse->rc = SQLITE_DONE;
+ return;
+ }
+ v = sqlite3GetVdbe(pParse);
+ if( v==0 ) pParse->rc = SQLITE_ERROR;
}
- v = sqlite3GetVdbe(pParse);
assert( !pParse->isMultiWrite
|| sqlite3VdbeAssertMayAbort(v, pParse->mayAbort));
if( v ){
@@ -233,7 +237,6 @@ void sqlite3FinishCoding(Parse *pParse){
}
}
-
/* Get the VDBE program ready for execution
*/
if( v && pParse->nErr==0 && !db->mallocFailed ){