/* ** This routine is called when the extension is loaded. The new ** CSV virtual table module is registered with the calling database ** connection. */ int sqlite3_csv_init( sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi ){ int rc; SQLITE_EXTENSION_INIT2(pApi); rc = sqlite3_create_module(db, "csv", &CsvModule, 0); #ifdef SQLITE_TEST if( rc==SQLITE_OK ){ rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0); } #endif return rc; }
int sqlite3MemstatVtabInit(sqlite3 *db){ int rc = SQLITE_OK; #ifndef SQLITE_OMIT_VIRTUALTABLE rc = sqlite3_create_module(db, "sqlite_memstat", &memstatModule, 0); #endif return rc; }
/* ** Invoke this routine to register the "dbpage" virtual table module */ int sqlite3DbpageRegister(sqlite3 *db){ static sqlite3_module dbpage_module = { 0, /* iVersion */ dbpageConnect, /* xCreate */ dbpageConnect, /* xConnect */ dbpageBestIndex, /* xBestIndex */ dbpageDisconnect, /* xDisconnect */ dbpageDisconnect, /* xDestroy */ dbpageOpen, /* xOpen - open a cursor */ dbpageClose, /* xClose - close a cursor */ dbpageFilter, /* xFilter - configure scan constraints */ dbpageNext, /* xNext - advance a cursor */ dbpageEof, /* xEof - check for end of scan */ dbpageColumn, /* xColumn - read data */ dbpageRowid, /* xRowid - read data */ dbpageUpdate, /* xUpdate */ 0, /* xBegin */ 0, /* xSync */ 0, /* xCommit */ 0, /* xRollback */ 0, /* xFindMethod */ 0, /* xRename */ 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ }; return sqlite3_create_module(db, "sqlite_dbpage", &dbpage_module, 0); }
/* ** Invoke this routine to register the "dbstat" virtual table module */ int sqlite3DbstatRegister(sqlite3 *db){ static sqlite3_module dbstat_module = { 0, /* iVersion */ statConnect, /* xCreate */ statConnect, /* xConnect */ statBestIndex, /* xBestIndex */ statDisconnect, /* xDisconnect */ statDisconnect, /* xDestroy */ statOpen, /* xOpen - open a cursor */ statClose, /* xClose - close a cursor */ statFilter, /* xFilter - configure scan constraints */ statNext, /* xNext - advance a cursor */ statEof, /* xEof - check for end of scan */ statColumn, /* xColumn - read data */ statRowid, /* xRowid - read data */ 0, /* xUpdate */ 0, /* xBegin */ 0, /* xSync */ 0, /* xCommit */ 0, /* xRollback */ 0, /* xFindMethod */ 0, /* xRename */ }; return sqlite3_create_module(db, "dbstat", &dbstat_module, 0); }
int RegisterFileSystemModule(sqlite3* aDB, const char* aName) { static sqlite3_module module = { 1, Connect, Connect, BestIndex, Disconnect, Disconnect, Open, Close, Filter, Next, Eof, Column, RowId, nsnull, nsnull, nsnull, nsnull, nsnull, nsnull, nsnull }; return sqlite3_create_module(aDB, aName, &module, nsnull); }
int sqlite3ExplainVtabInit(sqlite3 *db){ int rc = SQLITE_OK; #ifndef SQLITE_OMIT_VIRTUALTABLE rc = sqlite3_create_module(db, "explain", &explainModule, 0); #endif return rc; }
/* ** Register the fts3aux module with database connection db. Return SQLITE_OK ** if successful or an error code if sqlite3_create_module() fails. */ int sqlite3Fts3InitAux(sqlite3 *db){ static const sqlite3_module fts3aux_module = { 0, /* iVersion */ fts3auxConnectMethod, /* xCreate */ fts3auxConnectMethod, /* xConnect */ fts3auxBestIndexMethod, /* xBestIndex */ fts3auxDisconnectMethod, /* xDisconnect */ fts3auxDisconnectMethod, /* xDestroy */ fts3auxOpenMethod, /* xOpen */ fts3auxCloseMethod, /* xClose */ fts3auxFilterMethod, /* xFilter */ fts3auxNextMethod, /* xNext */ fts3auxEofMethod, /* xEof */ fts3auxColumnMethod, /* xColumn */ fts3auxRowidMethod, /* xRowid */ 0, /* xUpdate */ 0, /* xBegin */ 0, /* xSync */ 0, /* xCommit */ 0, /* xRollback */ 0, /* xFindFunction */ 0, /* xRename */ 0, /* xSavepoint */ 0, /* xRelease */ 0 /* xRollbackTo */ }; int rc; /* Return code */ rc = sqlite3_create_module(db, "fts4aux", &fts3aux_module, 0); return rc; }
/* ** Register the fts3tok module with database connection db. Return SQLITE_OK ** if successful or an error code if sqlite3_create_module() fails. */ int sqlite3Fts3InitTok(sqlite3 *db, Fts3Hash *pHash){ static const sqlite3_module fts3tok_module = { 0, /* iVersion */ fts3tokConnectMethod, /* xCreate */ fts3tokConnectMethod, /* xConnect */ fts3tokBestIndexMethod, /* xBestIndex */ fts3tokDisconnectMethod, /* xDisconnect */ fts3tokDisconnectMethod, /* xDestroy */ fts3tokOpenMethod, /* xOpen */ fts3tokCloseMethod, /* xClose */ fts3tokFilterMethod, /* xFilter */ fts3tokNextMethod, /* xNext */ fts3tokEofMethod, /* xEof */ fts3tokColumnMethod, /* xColumn */ fts3tokRowidMethod, /* xRowid */ 0, /* xUpdate */ 0, /* xBegin */ 0, /* xSync */ 0, /* xCommit */ 0, /* xRollback */ 0, /* xFindFunction */ 0, /* xRename */ 0, /* xSavepoint */ 0, /* xRelease */ 0 /* xRollbackTo */ }; int rc; /* Return code */ rc = sqlite3_create_module(db, "fts3tokenize", &fts3tok_module, (void*)pHash); return rc; }
int sqlite3_vtablog_init( sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi ){ int rc; SQLITE_EXTENSION_INIT2(pApi); rc = sqlite3_create_module(db, "vtablog", &vtablogModule, 0); return rc; }
int sqlite3_templatevtab_init( sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi ){ int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); rc = sqlite3_create_module(db, "templatevtab", &templatevtabModule, 0); return rc; }
int sqlite3_amatch_init( sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi ){ int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); (void)pzErrMsg; /* Not used */ #ifndef SQLITE_OMIT_VIRTUALTABLE rc = sqlite3_create_module(db, "approximate_match", &amatchModule, 0); #endif /* SQLITE_OMIT_VIRTUALTABLE */ return rc; }
/* Used to register virtual table module. */ int fs_register( sqlite3* db, char **pzErrMsg, const sqlite3_api_routines* pApi ) { SQLITE_EXTENSION_INIT2(pApi); /* Initliaze the Apache Portable Runtime. */ apr_initialize(); /* Arrange to have it cleaned up at exit. */ atexit(apr_terminate); return sqlite3_create_module(db, "filesystem", &fs_module, NULL); }
int fulltext_init(sqlite3 *db){ return sqlite3_create_module(db, "fulltext", &fulltextModule, 0); }
int weblog_init( sqlite3 *db, char **error, const sqlite3_api_routines *api ) { SQLITE_EXTENSION_INIT2(api); return sqlite3_create_module( db, "weblog", &weblog_mod, NULL ); }
/* Executes the SQL CREATE queries, opens the sqlite * database connection and calls swill or pico_ql_test * depending on the compile flag TEST. */ int register_table(int argc, int view_index, const char **q, const char **sqlite_names, int port_number) { /* This definition implicitly constraints a table name * to 140 characters. It should be more than enough. */ char sqlite_query[200]; int re, i=0; sqlite3 *db; /* Virtual table schema will be in-memory and will not persist. Views can be included in the DSL */ re = sqlite3_open(":memory:", &db); if (re) { printf("can't open database\n"); sqlite3_close(db); return re; } #ifdef PICO_QL_DEBUG for (i = 0; i < argc; i++) { printf("\nquery to be executed: %s.\n", q[i]); } #endif sqlite3_module *mod; mod = (sqlite3_module *)sqlite3_malloc(sizeof(sqlite3_module)); fill_module(mod); int output = sqlite3_create_module(db, "PicoQL", mod, NULL); if (output == 1) printf("Error while registering module\n"); #ifdef PICO_QL_DEBUG else if (output == 0) printf("Module registered successfully\n"); #endif // sqlite3_create_function() calls for (i = 0; i < argc; i++) { char sqlite_type[10]; if (i < view_index) strcpy(sqlite_type, "table"); else strcpy(sqlite_type, "view"); sprintf(sqlite_query, "SELECT * FROM sqlite_master WHERE type='%s' AND name='%s';", sqlite_type, sqlite_names[i]); if (prep_exec(NULL, db, (const char *)sqlite_query, NULL) != SQLITE_ROW) { re = prep_exec(NULL, db, (const char *)q[i], NULL); #ifdef PICO_QL_DEBUG printf("Query %s returned %i\n", q[i], re); #endif if (re != 101) { printf("Extended error code: %i.\n", sqlite3_extended_errcode(db)); printf("Extended error message:\n%s.\n", sqlite3_errmsg(db)); return re; } } } start_serving(); #ifndef PICO_QL_TEST printf("Please visit http://localhost:%i to be served\n", port_number); call_swill(db, port_number); #else re = call_test(db); #endif sqlite3_free(mod); return re; }
int sqlite3_extension_init( sqlite3 *db, char **error, const sqlite3_api_routines *api ) { SQLITE_EXTENSION_INIT2(api); return sqlite3_create_module( db, "access_log", &access_log_mod, NULL ); }