diff options
author | drh <drh@noemail.net> | 2013-12-14 18:24:46 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2013-12-14 18:24:46 +0000 |
commit | c8d985e09c2adc83a944889bd6e60e4e86864e3e (patch) | |
tree | 462d90e333961e2779b511e3ef74e0505699940a /src/vdbeapi.c | |
parent | 65106c77bb5436a3a4ab16193cc9b98b9c09e228 (diff) | |
parent | 4a8ee3dfe2afb5f0478b1bcdf94202cdf98a469d (diff) | |
download | sqlite-c8d985e09c2adc83a944889bd6e60e4e86864e3e.tar.gz sqlite-c8d985e09c2adc83a944889bd6e60e4e86864e3e.zip |
Merge in all recent preformance enhancements from trunk.
FossilOrigin-Name: 32477642d79615fb85680bdac812ad9655cf6902
Diffstat (limited to 'src/vdbeapi.c')
-rw-r--r-- | src/vdbeapi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vdbeapi.c b/src/vdbeapi.c index 976a4125e..080eee3fe 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -486,7 +486,7 @@ int sqlite3_step(sqlite3_stmt *pStmt){ v->doingRerun = 1; assert( v->expired==0 ); } - if( rc2!=SQLITE_OK && ALWAYS(v->isPrepareV2) && ALWAYS(db->pErr) ){ + if( rc2!=SQLITE_OK ){ /* This case occurs after failing to recompile an sql statement. ** The error message from the SQL compiler has already been loaded ** into the database handle. This block copies the error message @@ -496,6 +496,7 @@ int sqlite3_step(sqlite3_stmt *pStmt){ ** sqlite3_errmsg() and sqlite3_errcode(). */ const char *zErr = (const char *)sqlite3_value_text(db->pErr); + assert( zErr!=0 || db->mallocFailed ); sqlite3DbFree(db, v->zErrMsg); if( !db->mallocFailed ){ v->zErrMsg = sqlite3DbStrDup(db, zErr); @@ -1332,6 +1333,7 @@ static UnpackedRecord *vdbeUnpackRecord( pRet = sqlite3VdbeAllocUnpackedRecord(pKeyInfo, 0, 0, &dummy); if( pRet ){ + memset(pRet->aMem, 0, sizeof(Mem)*(pKeyInfo->nField+1)); sqlite3VdbeRecordUnpack(pKeyInfo, nKey, pKey, pRet); } return pRet; |