diff options
author | drh <> | 2021-12-31 19:20:42 +0000 |
---|---|---|
committer | drh <> | 2021-12-31 19:20:42 +0000 |
commit | 54bc63815a14bc0c47d3d3f1bbecdf9eddd4feff (patch) | |
tree | 93b86abb615803b19188d7ce88f8c0269876694a /src/vtab.c | |
parent | c158c07a22566cdd67670c14687d708b25126cb6 (diff) | |
download | sqlite-54bc63815a14bc0c47d3d3f1bbecdf9eddd4feff.tar.gz sqlite-54bc63815a14bc0c47d3d3f1bbecdf9eddd4feff.zip |
Simplify the sqlite3RunParser() routine by omitting the third parameter.
Results in a binary that is about 100 bytes smaller and 1.4M cycles faster.
FossilOrigin-Name: 6fb2a1bb0280d6e31291e3fd06bbcbbb28ef5fb27d3898e2327a50ac738ae1f3
Diffstat (limited to 'src/vtab.c')
-rw-r--r-- | src/vtab.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vtab.c b/src/vtab.c index 81d39a676..ef86dd6bd 100644 --- a/src/vtab.c +++ b/src/vtab.c @@ -807,7 +807,6 @@ int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ VtabCtx *pCtx; int rc = SQLITE_OK; Table *pTab; - char *zErr = 0; Parse sParse; int initBusy; @@ -836,11 +835,12 @@ int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ initBusy = db->init.busy; db->init.busy = 0; sParse.nQueryLoop = 1; - if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable, &zErr) + if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable) && ALWAYS(sParse.pNewTable!=0) && ALWAYS(!db->mallocFailed) && IsOrdinaryTable(sParse.pNewTable) ){ + assert( sParse.zErrMsg==0 ); if( !pTab->aCol ){ Table *pNew = sParse.pNewTable; Index *pIdx; @@ -870,8 +870,9 @@ int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ } pCtx->bDeclared = 1; }else{ - sqlite3ErrorWithMsg(db, SQLITE_ERROR, (zErr ? "%s" : 0), zErr); - sqlite3DbFree(db, zErr); + sqlite3ErrorWithMsg(db, SQLITE_ERROR, + (sParse.zErrMsg ? "%s" : 0), sParse.zErrMsg); + sqlite3DbFree(db, sParse.zErrMsg); rc = SQLITE_ERROR; } sParse.eParseMode = PARSE_MODE_NORMAL; |