Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


SQLITE3_MODULE(3)          Library Functions Manual          SQLITE3_MODULE(3)

NAME
     sqlite3_module - virtual table object

SYNOPSIS
     #include <sqlite3.h>

     struct sqlite3_module;

DESCRIPTION
     This structure, sometimes called a "virtual table module", defines the
     implementation of a virtual table.  This structure consists mostly of
     methods for the module.

     A virtual table module is created by filling in a persistent instance of
     this structure and passing a pointer to that instance to
     sqlite3_create_module() or sqlite3_create_module_v2().  The registration
     remains valid until it is replaced by a different module or until the
     database connection closes.  The content of this structure must not
     change while it is registered with any database connection.

IMPLEMENTATION NOTES
     These declarations were extracted from the interface documentation at
     line 7169.

     struct sqlite3_module {
       int iVersion;
       int (*xCreate)(sqlite3*, void *pAux,
                    int argc, const char *const*argv,
                    sqlite3_vtab **ppVTab, char**);
       int (*xConnect)(sqlite3*, void *pAux,
                    int argc, const char *const*argv,
                    sqlite3_vtab **ppVTab, char**);
       int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*);
       int (*xDisconnect)(sqlite3_vtab *pVTab);
       int (*xDestroy)(sqlite3_vtab *pVTab);
       int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor);
       int (*xClose)(sqlite3_vtab_cursor*);
       int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr,
                     int argc, sqlite3_value **argv);
       int (*xNext)(sqlite3_vtab_cursor*);
       int (*xEof)(sqlite3_vtab_cursor*);
       int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int);
       int (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid);
       int (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *);
       int (*xBegin)(sqlite3_vtab *pVTab);
       int (*xSync)(sqlite3_vtab *pVTab);
       int (*xCommit)(sqlite3_vtab *pVTab);
       int (*xRollback)(sqlite3_vtab *pVTab);
       int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName,
                            void (**pxFunc)(sqlite3_context*,int,sqlite3_value**),
                            void **ppArg);
       int (*xRename)(sqlite3_vtab *pVtab, const char *zNew);
       /* The methods above are in version 1 of the sqlite_module object. Those
       ** below are for version 2 and greater. */
       int (*xSavepoint)(sqlite3_vtab *pVTab, int);
       int (*xRelease)(sqlite3_vtab *pVTab, int);
       int (*xRollbackTo)(sqlite3_vtab *pVTab, int);
       /* 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*);
     };

SEE ALSO
     sqlite3(3), sqlite3_create_module(3)

NetBSD 10.99                    August 24, 2023                   NetBSD 10.99