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 7669.

    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*);
      /* The methods above are in versions 1 through 3 of the sqlite_module object.
      ** Those below are for version 4 and greater. */
      int (*xIntegrity)(sqlite3_vtab *pVTab, const char *zSchema,
                        const char *zTabName, int mFlags, char **pzErr);
    };

SEE ALSO
sqlite3(3), sqlite3_create_module(3)