Updated: 2025/Nov/16
Please read Privacy Policy. It's for your privacy.
SQLITE3_CREATE_MODULE(3) Library Functions Manual SQLITE3_CREATE_MODULE(3)
NAME
sqlite3_create_module, sqlite3_create_module_v2 - register a virtual
table implementation
SYNOPSIS
#include <sqlite3.h>
int
sqlite3_create_module(sqlite3 *db, const char *zName,
const sqlite3_module *p, void *pClientData);
int
sqlite3_create_module_v2(sqlite3 *db, const char *zName,
const sqlite3_module *p, void *pClientData, void(*xDestroy)(void*));
DESCRIPTION
These routines are used to register a new virtual table module name.
Module names must be registered before creating a new virtual table using
the module and before using a preexisting virtual table for the module.
The module name is registered on the database connection specified by the
first parameter. The name of the module is given by the second
parameter. The third parameter is a pointer to the implementation of the
virtual table module. The fourth parameter is an arbitrary client data
pointer that is passed through into the xCreate and xConnect methods of
the virtual table module when a new virtual table is be being created or
reinitialized.
The sqlite3_create_module_v2() interface has a fifth parameter which is a
pointer to a destructor for the pClientData. SQLite will invoke the
destructor function (if it is not NULL) when SQLite no longer needs the
pClientData pointer. The destructor will also be invoked if the call to
sqlite3_create_module_v2() fails. The sqlite3_create_module() interface
is equivalent to sqlite3_create_module_v2() with a NULL destructor.
If the third parameter (the pointer to the sqlite3_module object) is NULL
then no new module is created and any existing modules with the same name
are dropped.
IMPLEMENTATION NOTES
These declarations were extracted from the interface documentation at
line 7530.
SQLITE_API int sqlite3_create_module(
sqlite3 *db, /* SQLite connection to register module with */
const char *zName, /* Name of the module */
const sqlite3_module *p, /* Methods for the module */
void *pClientData /* Client data for xCreate/xConnect */
);
SQLITE_API int sqlite3_create_module_v2(
sqlite3 *db, /* SQLite connection to register module with */
const char *zName, /* Name of the module */
const sqlite3_module *p, /* Methods for the module */
void *pClientData, /* Client data for xCreate/xConnect */
void(*xDestroy)(void*) /* Module destructor function */
);
SEE ALSO
sqlite3(3), sqlite3_drop_modules(3), sqlite3_module(3)
NetBSD 11.99 January 24, 2024 NetBSD 11.99