0, /* xRelease */
0, /* xRollbackTo */
0, /* xShadowName */
+ 0 /* xShadowName2 */
};
return sqlite3_create_module(p->dbv, "expert", &expertModule, (void*)p);
return 0;
}
+static int fts3ShadowName2(sqlite3_vtab *pVtab, const char *zName){
+ UNUSED_PARAMETER(pVtab);
+ return fts3ShadowName(zName);
+}
+
static const sqlite3_module fts3Module = {
- /* iVersion */ 3,
+ /* iVersion */ 4,
/* xCreate */ fts3CreateMethod,
/* xConnect */ fts3ConnectMethod,
/* xBestIndex */ fts3BestIndexMethod,
/* xCommit */ fts3CommitMethod,
/* xRollback */ fts3RollbackMethod,
/* xFindFunction */ fts3FindFunctionMethod,
- /* xRename */ fts3RenameMethod,
+ /* xRename */ fts3RenameMethod,
/* xSavepoint */ fts3SavepointMethod,
/* xRelease */ fts3ReleaseMethod,
/* xRollbackTo */ fts3RollbackToMethod,
/* xShadowName */ fts3ShadowName,
+ /* xShadowName2 */ fts3ShadowName2
};
/*
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc; /* Return code */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc; /* Return code */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc; /* Return code */
return 0;
}
+static int fts5ShadowName2(sqlite3_vtab *pVtab, const char *zName){
+ UNUSED_PARAMETER(pVtab);
+ return fts5ShadowName(zName);
+}
+
static int fts5Init(sqlite3 *db){
static const sqlite3_module fts5Mod = {
- /* iVersion */ 3,
+ /* iVersion */ 4,
/* xCreate */ fts5CreateMethod,
/* xConnect */ fts5ConnectMethod,
/* xBestIndex */ fts5BestIndexMethod,
/* xSavepoint */ fts5SavepointMethod,
/* xRelease */ fts5ReleaseMethod,
/* xRollbackTo */ fts5RollbackToMethod,
- /* xShadowName */ fts5ShadowName
+ /* xShadowName */ fts5ShadowName,
+ /* xShadowName2 */ fts5ShadowName2
};
int rc;
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc; /* Return code */
/* xSavepoint */ 0,
/* xRelease */ 0,
/* xRollbackTo */ 0,
- /* xShadowName */ 0
+ /* xShadowName */ 0,
+ /* xShadowName2 */ 0
};
void *p = (void*)pGlobal;
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
return sqlite3_create_module(db, "sqlite_btreeinfo", &binfo_module, 0);
}
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc = sqlite3_create_module(db, "sqlite_dbdata", &dbdata_module, 0);
0, /* xRelease */
0, /* xRollbackTo */
0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
0, /* xRelease */
0, /* xRollbackTo */
0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc = sqlite3_create_module(db, "fsdir", &fsdirModule, 0);
** virtual table.
*/
static sqlite3_module deltaparsevtabModule = {
- /* iVersion */ 0,
- /* xCreate */ 0,
- /* xConnect */ deltaparsevtabConnect,
- /* xBestIndex */ deltaparsevtabBestIndex,
- /* xDisconnect */ deltaparsevtabDisconnect,
- /* xDestroy */ 0,
- /* xOpen */ deltaparsevtabOpen,
- /* xClose */ deltaparsevtabClose,
- /* xFilter */ deltaparsevtabFilter,
- /* xNext */ deltaparsevtabNext,
- /* xEof */ deltaparsevtabEof,
- /* xColumn */ deltaparsevtabColumn,
- /* xRowid */ deltaparsevtabRowid,
- /* xUpdate */ 0,
- /* xBegin */ 0,
- /* xSync */ 0,
- /* xCommit */ 0,
- /* xRollback */ 0,
- /* xFindMethod */ 0,
- /* xRename */ 0,
- /* xSavepoint */ 0,
- /* xRelease */ 0,
- /* xRollbackTo */ 0,
- /* xShadowName */ 0
+ /* iVersion */ 0,
+ /* xCreate */ 0,
+ /* xConnect */ deltaparsevtabConnect,
+ /* xBestIndex */ deltaparsevtabBestIndex,
+ /* xDisconnect */ deltaparsevtabDisconnect,
+ /* xDestroy */ 0,
+ /* xOpen */ deltaparsevtabOpen,
+ /* xClose */ deltaparsevtabClose,
+ /* xFilter */ deltaparsevtabFilter,
+ /* xNext */ deltaparsevtabNext,
+ /* xEof */ deltaparsevtabEof,
+ /* xColumn */ deltaparsevtabColumn,
+ /* xRowid */ deltaparsevtabRowid,
+ /* xUpdate */ 0,
+ /* xBegin */ 0,
+ /* xSync */ 0,
+ /* xCommit */ 0,
+ /* xRollback */ 0,
+ /* xFindMethod */ 0,
+ /* xRename */ 0,
+ /* xSavepoint */ 0,
+ /* xRelease */ 0,
+ /* xRollbackTo */ 0,
+ /* xShadowName */ 0,
+ /* xShadowName2 */ 0
};
0, /* xRelease */
0, /* xRollbackTo */
0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
** virtual table.
*/
static sqlite3_module prefixesModule = {
- /* iVersion */ 0,
- /* xCreate */ 0,
- /* xConnect */ prefixesConnect,
- /* xBestIndex */ prefixesBestIndex,
- /* xDisconnect */ prefixesDisconnect,
- /* xDestroy */ 0,
- /* xOpen */ prefixesOpen,
- /* xClose */ prefixesClose,
- /* xFilter */ prefixesFilter,
- /* xNext */ prefixesNext,
- /* xEof */ prefixesEof,
- /* xColumn */ prefixesColumn,
- /* xRowid */ prefixesRowid,
- /* xUpdate */ 0,
- /* xBegin */ 0,
- /* xSync */ 0,
- /* xCommit */ 0,
- /* xRollback */ 0,
- /* xFindMethod */ 0,
- /* xRename */ 0,
- /* xSavepoint */ 0,
- /* xRelease */ 0,
- /* xRollbackTo */ 0,
- /* xShadowName */ 0
+ /* iVersion */ 0,
+ /* xCreate */ 0,
+ /* xConnect */ prefixesConnect,
+ /* xBestIndex */ prefixesBestIndex,
+ /* xDisconnect */ prefixesDisconnect,
+ /* xDestroy */ 0,
+ /* xOpen */ prefixesOpen,
+ /* xClose */ prefixesClose,
+ /* xFilter */ prefixesFilter,
+ /* xNext */ prefixesNext,
+ /* xEof */ prefixesEof,
+ /* xColumn */ prefixesColumn,
+ /* xRowid */ prefixesRowid,
+ /* xUpdate */ 0,
+ /* xBegin */ 0,
+ /* xSync */ 0,
+ /* xCommit */ 0,
+ /* xRollback */ 0,
+ /* xFindMethod */ 0,
+ /* xRename */ 0,
+ /* xSavepoint */ 0,
+ /* xRelease */ 0,
+ /* xRollbackTo */ 0,
+ /* xShadowName */ 0,
+ /* xShadowName2 */ 0
};
/*
** virtual table.
*/
static sqlite3_module qpvtabModule = {
- /* iVersion */ 0,
- /* xCreate */ 0,
- /* xConnect */ qpvtabConnect,
- /* xBestIndex */ qpvtabBestIndex,
- /* xDisconnect */ qpvtabDisconnect,
- /* xDestroy */ 0,
- /* xOpen */ qpvtabOpen,
- /* xClose */ qpvtabClose,
- /* xFilter */ qpvtabFilter,
- /* xNext */ qpvtabNext,
- /* xEof */ qpvtabEof,
- /* xColumn */ qpvtabColumn,
- /* xRowid */ qpvtabRowid,
- /* xUpdate */ 0,
- /* xBegin */ 0,
- /* xSync */ 0,
- /* xCommit */ 0,
- /* xRollback */ 0,
- /* xFindMethod */ 0,
- /* xRename */ 0,
- /* xSavepoint */ 0,
- /* xRelease */ 0,
- /* xRollbackTo */ 0,
- /* xShadowName */ 0
+ /* iVersion */ 0,
+ /* xCreate */ 0,
+ /* xConnect */ qpvtabConnect,
+ /* xBestIndex */ qpvtabBestIndex,
+ /* xDisconnect */ qpvtabDisconnect,
+ /* xDestroy */ 0,
+ /* xOpen */ qpvtabOpen,
+ /* xClose */ qpvtabClose,
+ /* xFilter */ qpvtabFilter,
+ /* xNext */ qpvtabNext,
+ /* xEof */ qpvtabEof,
+ /* xColumn */ qpvtabColumn,
+ /* xRowid */ qpvtabRowid,
+ /* xUpdate */ 0,
+ /* xBegin */ 0,
+ /* xSync */ 0,
+ /* xCommit */ 0,
+ /* xRollback */ 0,
+ /* xFindMethod */ 0,
+ /* xRename */ 0,
+ /* xSavepoint */ 0,
+ /* xRelease */ 0,
+ /* xRollbackTo */ 0,
+ /* xShadowName */ 0,
+ /* xShadowName2 */ 0
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
0, /* xRelease */
0, /* xRollbackTo */
0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
** virtual table.
*/
static sqlite3_module templatevtabModule = {
- /* iVersion */ 0,
- /* xCreate */ 0,
- /* xConnect */ templatevtabConnect,
- /* xBestIndex */ templatevtabBestIndex,
- /* xDisconnect */ templatevtabDisconnect,
- /* xDestroy */ 0,
- /* xOpen */ templatevtabOpen,
- /* xClose */ templatevtabClose,
- /* xFilter */ templatevtabFilter,
- /* xNext */ templatevtabNext,
- /* xEof */ templatevtabEof,
- /* xColumn */ templatevtabColumn,
- /* xRowid */ templatevtabRowid,
- /* xUpdate */ 0,
- /* xBegin */ 0,
- /* xSync */ 0,
- /* xCommit */ 0,
- /* xRollback */ 0,
- /* xFindMethod */ 0,
- /* xRename */ 0,
- /* xSavepoint */ 0,
- /* xRelease */ 0,
- /* xRollbackTo */ 0,
- /* xShadowName */ 0
+ /* iVersion */ 0,
+ /* xCreate */ 0,
+ /* xConnect */ templatevtabConnect,
+ /* xBestIndex */ templatevtabBestIndex,
+ /* xDisconnect */ templatevtabDisconnect,
+ /* xDestroy */ 0,
+ /* xOpen */ templatevtabOpen,
+ /* xClose */ templatevtabClose,
+ /* xFilter */ templatevtabFilter,
+ /* xNext */ templatevtabNext,
+ /* xEof */ templatevtabEof,
+ /* xColumn */ templatevtabColumn,
+ /* xRowid */ templatevtabRowid,
+ /* xUpdate */ 0,
+ /* xBegin */ 0,
+ /* xSync */ 0,
+ /* xCommit */ 0,
+ /* xRollback */ 0,
+ /* xFindMethod */ 0,
+ /* xRename */ 0,
+ /* xSavepoint */ 0,
+ /* xRelease */ 0,
+ /* xRollbackTo */ 0,
+ /* xShadowName */ 0,
+ /* xShadowName2 */ 0
};
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc;
0, /* xRelease */
0, /* xRollbackTo */
0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#ifdef _WIN32
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollback */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
int rc = sqlite3_create_module(db, "zipfile" , &zipfileModule, 0);
static sqlite3_module geopolyModule = {
- 3, /* iVersion */
+ 4, /* iVersion */
geopolyCreate, /* xCreate - create a table */
geopolyConnect, /* xConnect - connect to an existing table */
geopolyBestIndex, /* xBestIndex - Determine search strategy */
rtreeSavepoint, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- rtreeShadowName /* xShadowName */
+ rtreeShadowName, /* xShadowName */
+ rtreeShadowName2 /* xShadowName2 */
};
static int sqlite3_geopoly_init(sqlite3 *db){
return 0;
}
+static int rtreeShadowName2(sqlite3_vtab *pVtab, const char *zName){
+ UNUSED_PARAMETER(pVtab);
+ return rtreeShadowName(zName);
+}
+
static sqlite3_module rtreeModule = {
- 3, /* iVersion */
+ 4, /* iVersion */
rtreeCreate, /* xCreate - create a table */
rtreeConnect, /* xConnect - connect to an existing table */
rtreeBestIndex, /* xBestIndex - Determine search strategy */
rtreeSavepoint, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- rtreeShadowName /* xShadowName */
+ rtreeShadowName, /* xShadowName */
+ rtreeShadowName2 /* xShadowName2 */
};
static int rtreeSqlInit(
-C Omit\sthe\sEP_MemToken\sflag\sthat\swas\smade\sobsolete\sby\s[e1f1cfe7f4387b60],\sfor\na\ssize\sreduction\sand\sperformance\sincrease.
-D 2022-07-22T19:28:04.965
+C Add\sexperimental\s'xShadowName2'\smethod\sfor\svirtual\stable\smodules.
+D 2022-07-22T20:24:38.815
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/expert/README.md b321c2762bb93c18ea102d5a5f7753a4b8bac646cb392b3b437f633caf2020c3
F ext/expert/expert.c d548d603a4cc9e61f446cc179c120c6713511c413f82a4a32b1e1e69d3f086a4
F ext/expert/expert1.test 3c642a4e7bbb14f21ddab595436fb465a4733f47a0fe5b2855e1d5ff900ef08e
-F ext/expert/sqlite3expert.c 6ca30d73b9ed75bd56d6e0d7f2c962d2affaa72c505458619d0ff5d9cdfac204
+F ext/expert/sqlite3expert.c 48fc9a04cd9240b849a847c8944c949bce2df7dd2b77ec4b4fe36f0da80d482c
F ext/expert/sqlite3expert.h ca81efc2679a92373a13a3e76a6138d0310e32be53d6c3bfaedabd158ea8969b
F ext/expert/test_expert.c d56c194b769bdc90cf829a14c9ecbc1edca9c850b837a4d0b13be14095c32a72
F ext/fiddle/EXPORTED_FUNCTIONS.fiddle 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3
F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
F ext/fts3/README.tokenizers b92bdeb8b46503f0dd301d364efc5ef59ef9fa8e2758b8e742f39fa93a2e422d
F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
-F ext/fts3/fts3.c 8cd361bd8612de3e5ec451d33ced8575cbc5af6744e7efc05d54bde4d2df3cd0
+F ext/fts3/fts3.c 4aa9e9e8ba723e99507c003d99b362b29b03ebd5d0d370f519433ede7a50fc21
F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
F ext/fts3/fts3Int.h dafdc371f9fbab175744b06cfe019d5f040cdfdbd11fea752f5dc28d45b04c05
-F ext/fts3/fts3_aux.c f0dc9bd98582615b7750218899bd0c729879b6bbf94d1be57ca1833ff49afc6f
+F ext/fts3/fts3_aux.c 14065aaaa350e81b210bc4e4b787a91615afe0ab9759bd28473ad984e327cedc
F ext/fts3/fts3_expr.c 903bfb9433109fffb10e910d7066c49cbf8eeae316adc93f0499c4da7dfc932a
F ext/fts3/fts3_hash.c 8b6e31bfb0844c27dc6092c2620bdb1fca17ed613072db057d96952c6bdb48b7
F ext/fts3/fts3_hash.h 39cf6874dc239d6b4e30479b1975fe5b22a3caaf
F ext/fts3/fts3_icu.c 305ce7fb6036484085b5556a9c8e62acdc7763f0f4cdf5fd538212a9f3720116
F ext/fts3/fts3_porter.c 3565faf04b626cddf85f03825e86056a4562c009
F ext/fts3/fts3_snippet.c f9a8149173553113f3c495a503843e30028b5dc3723d0ca798c5ad6142e130e6
-F ext/fts3/fts3_term.c f45a1e7c6ef464abb1231245d123dae12266b69e05cc56e14045b76591ae92d1
+F ext/fts3/fts3_term.c 9358b719287237fc41271448f5586049d21ba4fcc6c2c01d190793d3fd41ea69
F ext/fts3/fts3_test.c d8d7b2734f894e8a489987447658e374cdd3a3bc8575c401decf1911cb7c6454
-F ext/fts3/fts3_tokenize_vtab.c a95feda3590f3c3e17672fe35b67ea6112471aeea4c07ef7744a6606b66549aa
+F ext/fts3/fts3_tokenize_vtab.c f49552c108486b10d7f3ce3172dfa73ba2741e9adc40ff68415f18fa9eae70d6
F ext/fts3/fts3_tokenizer.c 6d8fc150c48238955d5182bf661498db0dd473c8a2a80e00c16994a646fa96e7
F ext/fts3/fts3_tokenizer.h 64c6ef6c5272c51ebe60fc607a896e84288fcbc3
F ext/fts3/fts3_tokenizer1.c 5c98225a53705e5ee34824087478cf477bdb7004
F ext/fts5/fts5_expr.c 40174a64829d30cc86e8266306ad24980f6911edd5ca0b8c1ce7821ea1341b88
F ext/fts5/fts5_hash.c d4fb70940359f2120ccd1de7ffe64cc3efe65de9e8995b822cd536ff64c96982
F ext/fts5/fts5_index.c 3e47d9c56e4e9a6dee78bc32e006d6a28a3b5ec9ff84f3b8c381c78323201720
-F ext/fts5/fts5_main.c 6078ae86d3b813753a4f1201054550aff21a3f660e97b30f200d2b1472874151
+F ext/fts5/fts5_main.c 9db1c09e6938920b96f7bdf35f0a77ccb6bcc134ad8ee7c465e4f75c7e131156
F ext/fts5/fts5_storage.c 76c6085239eb44424004c022e9da17a5ecd5aaec859fba90ad47d3b08f4c8082
F ext/fts5/fts5_tcl.c b1445cbe69908c411df8084a10b2485500ac70a9c747cdc8cda175a3da59d8ae
F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee
-F ext/fts5/fts5_test_tok.c a2bed8edb25f6432e8cdb62aad5916935c19dba8dac2b8324950cfff397e25ff
+F ext/fts5/fts5_test_tok.c 1611181ea39e9f7bd8d1fba4d785658cbfe190e98302fccc38b0c0b0b2074d8d
F ext/fts5/fts5_tokenize.c 5e251efb0f1af99a25ed50010ba6b1ad1250aca5921af1988fdcabe5ebc3cb43
F ext/fts5/fts5_unicode2.c eca63dbc797f8ff0572e97caf4631389c0ab900d6364861b915bdd4735973f00
F ext/fts5/fts5_varint.c e64d2113f6e1bfee0032972cffc1207b77af63319746951bf1d09885d1dadf80
-F ext/fts5/fts5_vocab.c 12138e84616b56218532e3e8feb1d3e0e7ae845e33408dbe911df520424dc9d6
+F ext/fts5/fts5_vocab.c d66013a4d47f7b4fd9145264e859358c91c38dd19290be9124668a4f38e78dd0
F ext/fts5/fts5parse.y eb526940f892ade5693f22ffd6c4f2702543a9059942772526eac1fde256bb05
F ext/fts5/mkportersteps.tcl 5acf962d2e0074f701620bb5308155fa1e4a63ba
F ext/fts5/test/fts5_common.tcl b01c584144b5064f30e6c648145a2dd6bc440841
F ext/lsm1/test/lsm1_simple.test a04d08e8661ae6fc53786c67f0bd102c6692f003e859dde03ed9ac3f12e066e5
F ext/lsm1/tool/mklsm1c.tcl f31561bbee5349f0a554d1ad7236ac1991fc09176626f529f6078e07335398b0
F ext/misc/README.md d6dd0fe1d8af77040216798a6a2b0c46c73054d2f0ea544fbbcdccf6f238c240
-F ext/misc/amatch.c e3ad5532799cee9a97647f483f67f43b38796b84b5a8c60594fe782a4338f358
+F ext/misc/amatch.c a2621d220d663ce4121d9d69017a3e337a5e7d926df717d4a9d2a740425d576c
F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb
F ext/misc/appendvfs.c 9642c7a194a2a25dca7ad3e36af24a0a46d7702168c4ad7e59c9f9b0e16a3824
F ext/misc/blobio.c a867c4c4617f6ec223a307ebfe0eabb45e0992f74dd47722b96f3e631c0edb2a
-F ext/misc/btreeinfo.c d28ce349b40054eaa9473e835837bad7a71deec33ba13e39f963d50933bfa0f9
+F ext/misc/btreeinfo.c 89f34855e26feee3907a15da534cfb5a723e214c0f2bc14b0445804f484f9430
F ext/misc/carray.c b752f46411e4e47e34dce6f0c88bc8e51bb821ba9e49bfcd882506451c928f69
F ext/misc/carray.h d2b1b12486d531367c37832d3d0dad34eea4bdd83ed839d445521ef01f0bc4e3
F ext/misc/cksumvfs.c b42ef52eaaa510d54ec320c87bea149e934a3b06cd232be2093562bf669bd572
-F ext/misc/closure.c dbfd8543b2a017ae6b1a5843986b22ddf99ff126ec9634a2f4047cd14c85c243
-F ext/misc/completion.c 6dafd7f4348eecc7be9e920d4b419d1fb2af75d938cd9c59a20cfe8beb2f22b9
+F ext/misc/closure.c 0ef3169a738e02e903bb9a6a8667d486edda7c2bb6bdd61239c750102f7529f9
+F ext/misc/completion.c 638c2106f5f3089c30602e3f14e8bd26c6c8f8a0c71719b72277a392d00f8401
F ext/misc/compress.c 3354c77a7c8e86e07d849916000cdac451ed96500bfb5bd83b20eb61eee012c9
F ext/misc/csv.c ca8d6dafc5469639de81937cb66ae2e6b358542aba94c4f791910d355a8e7f73
-F ext/misc/dbdata.c e316fba936571584e55abd5b974a32a191727a6b746053a0c9d439bd2cf93940
+F ext/misc/dbdata.c 66195779c30941ba5562c0ef562f58c6f365ae5a944435e9b67ef434e61f17be
F ext/misc/dbdump.c b8592f6f2da292c62991a13864a60d6c573c47a9cc58362131b9e6a64f823e01
F ext/misc/decimal.c 09f967dcf4a1ee35a76309829308ec278d3648168733f4a1147820e11ebefd12
F ext/misc/eval.c 04bc9aada78c888394204b4ed996ab834b99726fb59603b0ee3ed6e049755dc1
-F ext/misc/explain.c 0086fab288d4352ea638cf40ac382aad3b0dc5e845a1ea829a694c015fd970fe
-F ext/misc/fileio.c 4e7f7cd30de8df4820c552f14af3c9ca451c5ffe1f2e7bef34d598a12ebfb720
-F ext/misc/fossildelta.c 1240b2d3e52eab1d50c160c7fe1902a9bd210e052dc209200a750bbf885402d5
+F ext/misc/explain.c b750dc64eb61a2eb6d43ac2950c211581bfd5f8fe742319e25e53940f9f6e423
+F ext/misc/fileio.c a96bd8bb760543e6737e78edfdb133d528f04d00d7b8f150c4b10517c8ba2eed
+F ext/misc/fossildelta.c 9d11a0e032e32f8e77d47b2e37930a1f3655668f2f0b8fc7c9ef5e31258e50ea
F ext/misc/fuzzer.c eae560134f66333e9e1ca4c8ffea75df42056e2ce8456734565dbe1c2a92bf3d
F ext/misc/ieee754.c 984d51fe23e956484ec1049df6f5257002e3ab338cabceb39761c2e80ad10bf4
-F ext/misc/memstat.c 3017a0832c645c0f8c773435620d663855f04690172316bd127270d1a7523d4d
+F ext/misc/memstat.c 509083ef7a45431ed02a1694879462310fcac524af8db320ecd0ec2e28caf50b
F ext/misc/memtrace.c 7c0d115d2ef716ad0ba632c91e05bd119cb16c1aedf3bec9f06196ead2d5537b
F ext/misc/memvfs.c 7dffa8cc89c7f2d73da4bd4ccea1bcbd2bd283e3bb4cea398df7c372a197291b
F ext/misc/mmapwarm.c 347caa99915fb254e8949ec131667b7fae99e2a9ce91bd468efb6dc372d9b7a9
F ext/misc/noop.c 81efe4cad9ec740e64388b14281cb983e6e2c223fed43eb77ab3e34946e0c1ab
F ext/misc/normalize.c bd84355c118e297522aba74de34a4fd286fc775524e0499b14473918d09ea61f
F ext/misc/percentile.c b9086e223d583bdaf8cb73c98a6539d501a2fc4282654adbfea576453d82e691
-F ext/misc/prefixes.c 0f4f8cff5aebc00a7e3ac4021fd59cfe1a8e17c800ceaf592859ecb9cbc38196
-F ext/misc/qpvtab.c 09738419e25f603a35c0ac8bd0a04daab794f48d08a9bc07a6085b9057b99009
+F ext/misc/prefixes.c f96de6685559abb661bcc96861dcd37a685364c71a3becacf8a809012750c7af
+F ext/misc/qpvtab.c fe47ff3d42e6734b33aa7505523953f74eaea97f122f569a47c65d19ab8100b2
F ext/misc/regexp.c 5abed0ace2d9340b42b9ab1dbe64db9c276e4e8eba38a903232b6253e05ccdaf
F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c
F ext/misc/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c
F ext/misc/scrub.c 2a44b0d44c69584c0580ad2553f6290a307a49df4668941d2812135bfb96a946
-F ext/misc/series.c 8d79354f2c3d46b95ee21272a07cf0bcabb58d1f2b06d9e7b8a31dca1dacb3e5
+F ext/misc/series.c fba5f7221bd4e255492bc29e2b386a9b63eb91b86a86c11e98b5996274970ffe
F ext/misc/sha1.c 4011aef176616872b2a0d5bccf0ecfb1f7ce3fe5c3d107f3a8e949d8e1e3f08d
F ext/misc/shathree.c 7b17615869a495659f1569ada1d8d3d21b4a24614f2746d93cc87ef7c0b6b36d
F ext/misc/showauth.c 732578f0fe4ce42d577e1c86dc89dd14a006ab52
F ext/misc/spellfix.c 94df9bbfa514a563c1484f684a2df3d128a2f7209a84ca3ca100c68a0163e29f
F ext/misc/sqlar.c 0ace5d3c10fe736dc584bf1159a36b8e2e60fab309d310cd8a0eecd9036621b6
-F ext/misc/stmt.c ed05ad78013edccd43f4fc33d8244001f6f886eb2dfd2106ba33616ac514c6fb
-F ext/misc/templatevtab.c 8a16a91a5ceaccfcbd6aaaa56d46828806e460dd194965b3f77bf38f14b942c4
+F ext/misc/stmt.c 83f73c3ba77487637281b1b92089bffa5bcaeafadae50ed64a94afbab9a00481
+F ext/misc/templatevtab.c 6f90d41cc09a9cf8948aeb9bb5d38c79b35322438d0c58569d153ed703bcd8eb
F ext/misc/totype.c fa4aedeb07f66169005dffa8de3b0a2b621779fd44f85c103228a42afa71853b
F ext/misc/uint.c 053fed3bce2e89583afcd4bf804d75d659879bbcedac74d0fa9ed548839a030b
-F ext/misc/unionvtab.c 36237f0607ca954ac13a4a0e2d2ac40c33bc6e032a5f55f431713061ef1625f9
+F ext/misc/unionvtab.c a03e6fdc9e50328b17b5d327677ccd1d6ca2e955e2ae9c5cb4affb171b7d4dfe
F ext/misc/urifuncs.c f71360d14fa9e7626b563f1f781c6148109462741c5235ac63ae0f8917b9c751
F ext/misc/uuid.c 5bb2264c1b64d163efa46509544fd7500cb8769cb7c16dd52052da8d961505cf
F ext/misc/vfslog.c 3932ab932eeb2601dbc4447cb14d445aaa9fbe43b863ef5f014401c3420afd20
F ext/misc/vfsstat.c 474d08efc697b8eba300082cb1eb74a5f0f3df31ed257db1cb07e72ab0e53dfb
-F ext/misc/vtablog.c 5538acd0c8ddaae372331bee11608d76973436b77d6a91e8635cfc9432fba5ae
+F ext/misc/vtablog.c 9d55383743afc57e420fb9e43071f76d6c4f242af84c949297695820f683727a
F ext/misc/vtshim.c 1976e6dd68dd0d64508c91a6dfab8e75f8aaf6cd
F ext/misc/wholenumber.c a838d1bea913c514ff316c69695efbb49ea3b8cb37d22afc57f73b6b010b4546
-F ext/misc/zipfile.c 22afe121d1a5e318453b7cdbc0f5492161d2fd4fce548ff3605da05e89be7140
+F ext/misc/zipfile.c b7bd56f9033c5b7c45dd5ca1fce5572b4313f8532ee2495558a70c0c07e7ca8f
F ext/misc/zorder.c b0ff58fa643afa1d846786d51ea8d5c4b6b35aa0254ab5a82617db92f3adda64
F ext/rbu/rbu.c 801450b24eaf14440d8fd20385aacc751d5c9d6123398df41b1b5aa804bf4ce8
F ext/rbu/rbu1.test c62904bd9526dcdc3496a21199aaf14ae191bbadbf67f076bf16be6b3f2115c2
F ext/repair/test/checkindex01.test b530f141413b587c9eb78ff734de6bb79bc3515c335096108c12c01bddbadcec
F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
-F ext/rtree/geopoly.c cc3f89c11abcf114fa60d74709ae8b5bc1eae5a261b30bc1bb7085089c03bfab
-F ext/rtree/rtree.c d7b4b8b81d8d54376a7f81de5be85ec58b37c11604bcf42984a8418b34158d93
+F ext/rtree/geopoly.c e3cddfeb55a02f603f4c3f0cd6fdef343dee394434f5686d16b21b249c124293
+F ext/rtree/rtree.c 64be894f80bd408651b33b2d90e6c48b15c1306998b2776b2cccb8e4bbb08271
F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412
F ext/rtree/rtree1.test d47f58832145fcfed9067bc457ca8664962196c4566c17a1ebd679367db55d11
F ext/rtree/rtree2.test 9d9deddbb16fd0c30c36e6b4fdc3ee3132d765567f0f9432ee71e1303d32603d
F src/btree.c 1307d57f65023c9f37c2b6c62253343fca63877f161f694a593b14c0883cedda
F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
F src/btreeInt.h 8ce1332edd89dfd2461d561ac10a0ab5601c8e06200cb5230596c3caaf54482e
-F src/build.c 29fcc97af5197511788a571ed35a001eea472cbe3bcdbae88178e17fcafd4341
+F src/build.c acc401cea564a15cf61c8dbb0f5e286cedba890fdf94004017e42ca86297c5c1
F src/callback.c 4c19af69835787bfe790ac560f3071a824eb629f34e41f97b52ce5235c77de1c
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F src/ctime.c 026dbdcdbd8c3cde98a88483ee88310ff43150ab164ad768f12cc700a11495ad
F src/date.c 272162554168e7af4976213850e1c4c5f33b964d299ceb0983f3d5cceba01d05
-F src/dbpage.c 5808e91bc27fa3981b028000f8fadfdc10ce9e59a34ce7dc4e035a69be3906ec
-F src/dbstat.c 861e08690fcb0f2ee1165eff0060ea8d4f3e2ea10f80dab7d32ad70443a6ff2d
+F src/dbpage.c 7ffeea65d78cf92ba576bf1b95713fc82676b8b7ecf3f3962e0f4f0fc48c2c0c
+F src/dbstat.c 6a78b43639235b608c0f340815216cb4fae185efb398cc2f3fbb12a0deba72e4
F src/delete.c a8e844af211a48b13b5b358be77a12c860c6a557c21990ad51a548e2536500ce
F src/expr.c 44f6b019a581f7c5a6599464d76d19111427edfa2710b4f007968fc64aaed0d1
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
F src/insert.c 173845e5a6bac96ae937409e4f876b631f26b31dabb9df8fd0eb3b130b2bb3a7
-F src/json.c 7749b98c62f691697c7ee536b570c744c0583cab4a89200fdd0fc2aa8cc8cbd6
+F src/json.c a39f1702dc37d9d86c34f684b4d6425c9de27d26c8229891578d379ed67fd3a4
F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
F src/loadext.c 853385cc7a604157e137585097949252d5d0c731768e16b044608e5c95c3614b
F src/main.c b91c7e71af6f33640c35b8239a285040aad8dfcfdaaf979152e743c0f8017ea8
F src/pcache.c 084e638432c610f95aea72b8509f0845d2791293f39d1b82f0c0a7e089c3bb6b
F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
F src/pcache1.c 54881292a9a5db202b2c0ac541c5e3ef9a5e8c4f1c1383adb2601d5499a60e65
-F src/pragma.c d1aead03e8418ff586c7cfca344c50a914b8eb06abd841e8e91a982d823671da
+F src/pragma.c d2612488c115f78dc5152fa3f1e8fb8e3443eec463707e072e0707d59c98eb5f
F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7
F src/prepare.c c62820c15dcb63013519c8e41d9f928d7478672cc902cfd0581c733c271dbf45
F src/printf.c e99ee9741e79ae3873458146f59644276657340385ade4e76a5f5d1c25793764
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
F src/select.c 45b93eee3c349f46240ddc14344365bbf34579ec332bd4c7bc061945e38172e2
F src/shell.c.in 29749b34bbd19d0004fdb6f61f62659096e1c0b4dfb1ad2314e7fafbe9dd8d37
-F src/sqlite.h.in be265991edca9aea69986758b58ba81cbf5ae403fe0c4ea1d0c9df0cdc8f25ed
+F src/sqlite.h.in 2a2e89caa6826eb6ade6623c853b67b7f3992f8c1c9d41fded3cf6f41c0fd84c
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h a988810c9b21c0dc36dc7a62735012339dc76fc7ab448fb0792721d30eacb69d
F src/sqliteInt.h c97b6351dba36b7bacd231610cd7173e7a7ef8469c2d9b849037415e0b1d8c79
F src/vdbemem.c 5ebf05c0182addedb1607ade848e1c83cef40981df94d1abfab0c59288c6064f
F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35
F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823
-F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
+F src/vdbevtab.c b2530a32d1978070e0dc6761cc58ec8db5f40bf6cfaf1c9989c8287340bc2cf4
F src/vtab.c 3d72c780d1ea08906a198e4f033921a658a54590e3ed72c544995d84f3f9464a
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
F src/wal.c b9df133a705093da8977da5eb202eaadb844839f1c7297c08d33471f5491843d
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c538d075350927222ab0a6598b844f7b15153c5dc008d71b921a2b73c4f4a7a4
-R 0a28921b7e90ddf823369af11249c300
-U drh
-Z 8e5ad3553ebf08b44289f99a5ac2ab7d
+P 28934a9d92d5e5ac862a0dc7169f071f39047f98dc79441db697cf353a4b9433
+R a4161f0056fd022904f14dd60f6489c3
+T *branch * xShadowName2
+T *sym-xShadowName2 *
+T -sym-trunk *
+U mistachkin
+Z e83a6f5786fc037d59d154d976bd34e1
# Remove this line to create a well-formed Fossil manifest.
-28934a9d92d5e5ac862a0dc7169f071f39047f98dc79441db697cf353a4b9433
\ No newline at end of file
+57beb700c081b20758d52ad4d395be34ef53f71a231f3dd27613030ac232bca8
\ No newline at end of file
#ifndef SQLITE_OMIT_VIRTUALTABLE
+/*
+** Returns non-zero if the module supports at least one of the xShadowName
+** or xShadowName2 methods.
+*/
+static int doesSupportShadowNames(
+ const sqlite3_module *pModule, /* The definition of the module */
+ VTable *pVTab /* The virtual table being asked */
+){
+ int iVersion;
+ assert( pModule!=0 );
+ iVersion = pModule->iVersion;
+ if( pVTab!=0 && iVersion>=4 && pModule->xShadowName2!=0 ) return 1;
+ if( iVersion>=3 && pModule->xShadowName!=0 ) return 1;
+ return 0;
+}
+
+/*
+** Attempts to calls one of the module xShadowName methods and returns its
+** result. The xShadowName2 method will be preferred when supported (i.e.
+** the module is version 4 or later and has an xShadowName2 method).
+*/
+static int isShadowTableOf(
+ sqlite3 *db, /* Database connection */
+ Table *pTab, /* The Table that refers to the virtual table */
+ Module *pMod, /* Definition of the module */
+ VTable *pVTab, /* The virtual table being asked */
+ const char *zName /* Table name that may refer to a shadow table */
+){
+ int iVersion;
+ assert( pMod!=0 );
+ assert( pMod->pModule!=0 );
+ iVersion = pMod->pModule->iVersion;
+ assert( iVersion>=3 );
+ assert( zName!=0 );
+ assert( sqlite3Strlen30(zName)>0 );
+ if( pVTab!=0 && iVersion>=4 && pMod->pModule->xShadowName2!=0 ){
+ assert( pVTab->pVtab!=0 );
+ return pMod->pModule->xShadowName2(pVTab->pVtab, zName);
+ }
+ if( pMod->pModule->xShadowName!=0 ){
+ return pMod->pModule->xShadowName(zName);
+ }
+ return 0;
+}
+
/*
** Return true if pTab is a virtual table and zName is a shadow table name
** for that virtual table.
int sqlite3IsShadowTableOf(sqlite3 *db, Table *pTab, const char *zName){
int nName; /* Length of zName */
Module *pMod; /* Module for the virtual table */
+ VTable *pVTab; /* The virtual table being asked */
if( !IsVirtual(pTab) ) return 0;
nName = sqlite3Strlen30(pTab->zName);
if( zName[nName]!='_' ) return 0;
pMod = (Module*)sqlite3HashFind(&db->aModule, pTab->u.vtab.azArg[0]);
if( pMod==0 ) return 0;
- if( pMod->pModule->iVersion<3 ) return 0;
- if( pMod->pModule->xShadowName==0 ) return 0;
- return pMod->pModule->xShadowName(zName+nName+1);
+ if( NEVER(pMod->pModule==0) ) return 0;
+ pVTab = sqlite3GetVTable(db, pTab);
+ if( !doesSupportShadowNames(pMod->pModule, pVTab) ) return 0;
+ return isShadowTableOf(db, pTab, pMod, pVTab, zName+nName+1);
}
#endif /* ifndef SQLITE_OMIT_VIRTUALTABLE */
void sqlite3MarkAllShadowTablesOf(sqlite3 *db, Table *pTab){
int nName; /* Length of pTab->zName */
Module *pMod; /* Module for the virtual table */
+ VTable *pVTab; /* Virtual table instance */
HashElem *k; /* For looping through the symbol table */
assert( IsVirtual(pTab) );
pMod = (Module*)sqlite3HashFind(&db->aModule, pTab->u.vtab.azArg[0]);
if( pMod==0 ) return;
if( NEVER(pMod->pModule==0) ) return;
- if( pMod->pModule->iVersion<3 ) return;
- if( pMod->pModule->xShadowName==0 ) return;
+ pVTab = sqlite3GetVTable(db, pTab);
+ if( !doesSupportShadowNames(pMod->pModule, pVTab) ) return;
assert( pTab->zName!=0 );
nName = sqlite3Strlen30(pTab->zName);
for(k=sqliteHashFirst(&pTab->pSchema->tblHash); k; k=sqliteHashNext(k)){
if( pOther->tabFlags & TF_Shadow ) continue;
if( sqlite3StrNICmp(pOther->zName, pTab->zName, nName)==0
&& pOther->zName[nName]=='_'
- && pMod->pModule->xShadowName(pOther->zName+nName+1)
+ && isShadowTableOf(db, pTab, pMod, pVTab, pOther->zName+nName+1)
){
pOther->tabFlags |= TF_Shadow;
}
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
return sqlite3_create_module(db, "sqlite_dbpage", &dbpage_module, 0);
}
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
return sqlite3_create_module(db, "dbstat", &dbstat_module, 0);
}
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
/* The methods of the json_tree virtual table. */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
#endif /* SQLITE_OMIT_VIRTUALTABLE */
#endif /* !defined(SQLITE_OMIT_JSON) */
0, /* xSavepoint */
0, /* xRelease */
0, /* xRollbackTo */
- 0 /* xShadowName */
+ 0, /* xShadowName */
+ 0 /* xShadowName2 */
};
/*
/* The methods above are in versions 1 and 2 of the sqlite_module object.
** Those below are for version 3 and greater. */
int (*xShadowName)(const char*);
+ /* The methods above are in versions 1, 2, or 3 of the sqlite_module object.
+ ** Those below are for version 4 and greater. */
+ int (*xShadowName2)(sqlite3_vtab *pVTab, const char*);
};
/*
** virtual table.
*/
static sqlite3_module bytecodevtabModule = {
- /* iVersion */ 0,
- /* xCreate */ 0,
- /* xConnect */ bytecodevtabConnect,
- /* xBestIndex */ bytecodevtabBestIndex,
- /* xDisconnect */ bytecodevtabDisconnect,
- /* xDestroy */ 0,
- /* xOpen */ bytecodevtabOpen,
- /* xClose */ bytecodevtabClose,
- /* xFilter */ bytecodevtabFilter,
- /* xNext */ bytecodevtabNext,
- /* xEof */ bytecodevtabEof,
- /* xColumn */ bytecodevtabColumn,
- /* xRowid */ bytecodevtabRowid,
- /* xUpdate */ 0,
- /* xBegin */ 0,
- /* xSync */ 0,
- /* xCommit */ 0,
- /* xRollback */ 0,
- /* xFindMethod */ 0,
- /* xRename */ 0,
- /* xSavepoint */ 0,
- /* xRelease */ 0,
- /* xRollbackTo */ 0,
- /* xShadowName */ 0
+ /* iVersion */ 0,
+ /* xCreate */ 0,
+ /* xConnect */ bytecodevtabConnect,
+ /* xBestIndex */ bytecodevtabBestIndex,
+ /* xDisconnect */ bytecodevtabDisconnect,
+ /* xDestroy */ 0,
+ /* xOpen */ bytecodevtabOpen,
+ /* xClose */ bytecodevtabClose,
+ /* xFilter */ bytecodevtabFilter,
+ /* xNext */ bytecodevtabNext,
+ /* xEof */ bytecodevtabEof,
+ /* xColumn */ bytecodevtabColumn,
+ /* xRowid */ bytecodevtabRowid,
+ /* xUpdate */ 0,
+ /* xBegin */ 0,
+ /* xSync */ 0,
+ /* xCommit */ 0,
+ /* xRollback */ 0,
+ /* xFindMethod */ 0,
+ /* xRename */ 0,
+ /* xSavepoint */ 0,
+ /* xRelease */ 0,
+ /* xRollbackTo */ 0,
+ /* xShadowName */ 0,
+ /* xShadowName2 */ 0
};