Manual Page Result
0
Command: sqlite3_auto_extension | Section: 3 | Source: NetBSD | File: sqlite3_auto_extension.3
SQLITE3_AUTO_EXTENSION(3) FreeBSD Library Functions Manual
NAME
sqlite3_auto_extension - Automatically Load Statically Linked Extensions
SYNOPSIS
int
sqlite3_auto_extension(void(*xEntryPoint)(void));
DESCRIPTION
This interface causes the xEntryPoint() function to be invoked for each
new database connection that is created. The idea here is that
xEntryPoint() is the entry point for a statically linked SQLite extension
that is to be automatically loaded into all new database connections.
Even though the function prototype shows that xEntryPoint() takes no
arguments and returns void, SQLite invokes xEntryPoint() with three
arguments and expects an integer result as if the signature of the entry
point where as follows:
int xEntryPoint( sqlite3 *db, const char **pzErrMsg,
const struct sqlite3_api_routines *pThunk );
If the xEntryPoint routine encounters an error, it should make *pzErrMsg
point to an appropriate error message (obtained from sqlite3_mprintf())
and return an appropriate error code. SQLite ensures that *pzErrMsg is
NULL before calling the xEntryPoint(). SQLite will invoke sqlite3_free()
on *pzErrMsg after xEntryPoint() returns. If any xEntryPoint() returns
an error, the sqlite3_open(), sqlite3_open16(), or sqlite3_open_v2() call
that provoked the xEntryPoint() will fail.
Calling sqlite3_auto_extension(X) with an entry point X that is already
on the list of automatic extensions is a harmless no-op. No entry point
will be called more than once for each database connection that is
opened.
SEE ALSO
sqlite3(3), sqlite3_cancel_auto_extension(3), sqlite3_malloc(3),
sqlite3_mprintf(3), sqlite3_open(3), sqlite3_reset_auto_extension(3)
FreeBSD 14.1-RELEASE-p8 December 19, 2018 FreeBSD 14.1-RELEASE-p8