diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
| commit | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch) | |
| tree | adf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3 | |
| parent | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff) | |
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3')
| -rw-r--r-- | static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3 | 405 |
1 files changed, 405 insertions, 0 deletions
diff --git a/static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3 b/static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3 new file mode 100644 index 00000000..b07ebd3d --- /dev/null +++ b/static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3 @@ -0,0 +1,405 @@ +.Dd January 24, 2024 +.Dt SQLITE_DBCONFIG_MAINDBNAME 3 +.Os +.Sh NAME +.Nm SQLITE_DBCONFIG_MAINDBNAME , +.Nm SQLITE_DBCONFIG_LOOKASIDE , +.Nm SQLITE_DBCONFIG_ENABLE_FKEY , +.Nm SQLITE_DBCONFIG_ENABLE_TRIGGER , +.Nm SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER , +.Nm SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION , +.Nm SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE , +.Nm SQLITE_DBCONFIG_ENABLE_QPSG , +.Nm SQLITE_DBCONFIG_TRIGGER_EQP , +.Nm SQLITE_DBCONFIG_RESET_DATABASE , +.Nm SQLITE_DBCONFIG_DEFENSIVE , +.Nm SQLITE_DBCONFIG_WRITABLE_SCHEMA , +.Nm SQLITE_DBCONFIG_LEGACY_ALTER_TABLE , +.Nm SQLITE_DBCONFIG_DQS_DML , +.Nm SQLITE_DBCONFIG_DQS_DDL , +.Nm SQLITE_DBCONFIG_ENABLE_VIEW , +.Nm SQLITE_DBCONFIG_LEGACY_FILE_FORMAT , +.Nm SQLITE_DBCONFIG_TRUSTED_SCHEMA , +.Nm SQLITE_DBCONFIG_STMT_SCANSTATUS , +.Nm SQLITE_DBCONFIG_REVERSE_SCANORDER , +.Nm SQLITE_DBCONFIG_MAX +.Nd database connection configuration options +.Sh SYNOPSIS +.In sqlite3.h +.Fd #define SQLITE_DBCONFIG_MAINDBNAME +.Fd #define SQLITE_DBCONFIG_LOOKASIDE +.Fd #define SQLITE_DBCONFIG_ENABLE_FKEY +.Fd #define SQLITE_DBCONFIG_ENABLE_TRIGGER +.Fd #define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER +.Fd #define SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION +.Fd #define SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE +.Fd #define SQLITE_DBCONFIG_ENABLE_QPSG +.Fd #define SQLITE_DBCONFIG_TRIGGER_EQP +.Fd #define SQLITE_DBCONFIG_RESET_DATABASE +.Fd #define SQLITE_DBCONFIG_DEFENSIVE +.Fd #define SQLITE_DBCONFIG_WRITABLE_SCHEMA +.Fd #define SQLITE_DBCONFIG_LEGACY_ALTER_TABLE +.Fd #define SQLITE_DBCONFIG_DQS_DML +.Fd #define SQLITE_DBCONFIG_DQS_DDL +.Fd #define SQLITE_DBCONFIG_ENABLE_VIEW +.Fd #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT +.Fd #define SQLITE_DBCONFIG_TRUSTED_SCHEMA +.Fd #define SQLITE_DBCONFIG_STMT_SCANSTATUS +.Fd #define SQLITE_DBCONFIG_REVERSE_SCANORDER +.Fd #define SQLITE_DBCONFIG_MAX +.Sh DESCRIPTION +These constants are the available integer configuration options that +can be passed as the second argument to the +.Fn sqlite3_db_config +interface. +.Pp +New configuration options may be added in future releases of SQLite. +Existing configuration options might be discontinued. +Applications should check the return code from +.Fn sqlite3_db_config +to make sure that the call worked. +The +.Fn sqlite3_db_config +interface will return a non-zero error code if a discontinued +or unsupported configuration option is invoked. +.Bl -tag -width Ds +.It SQLITE_DBCONFIG_LOOKASIDE +This option takes three additional arguments that determine the lookaside memory allocator +configuration for the database connection. +The first argument (the third parameter to +.Fn sqlite3_db_config +is a pointer to a memory buffer to use for lookaside memory. +The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb may be +NULL in which case SQLite will allocate the lookaside buffer itself +using +.Fn sqlite3_malloc . +The second argument is the size of each lookaside buffer slot. +The third argument is the number of slots. +The size of the buffer in the first argument must be greater than or +equal to the product of the second and third arguments. +The buffer must be aligned to an 8-byte boundary. +If the second argument to SQLITE_DBCONFIG_LOOKASIDE is not a multiple +of 8, it is internally rounded down to the next smaller multiple of +8. +The lookaside memory configuration for a database connection can only +be changed when that connection is not currently using lookaside memory, +or in other words when the "current value" returned by sqlite3_db_status(D,SQLITE_DBSTATUS_LOOKASIDE_USED,...) +is zero. +Any attempt to change the lookaside memory configuration when lookaside +memory is in use leaves the configuration unchanged and returns SQLITE_BUSY. +.It SQLITE_DBCONFIG_ENABLE_FKEY +This option is used to enable or disable the enforcement of foreign key constraints. +There should be two additional arguments. +The first argument is an integer which is 0 to disable FK enforcement, +positive to enable FK enforcement or negative to leave FK enforcement +unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether FK enforcement is off or on following this +call. +The second parameter may be a NULL pointer, in which case the FK enforcement +setting is not reported back. +.It SQLITE_DBCONFIG_ENABLE_TRIGGER +This option is used to enable or disable triggers. +There should be two additional arguments. +The first argument is an integer which is 0 to disable triggers, positive +to enable triggers or negative to leave the setting unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether triggers are disabled or enabled following +this call. +The second parameter may be a NULL pointer, in which case the trigger +setting is not reported back. +.Pp +Originally this option disabled all triggers. +However, since SQLite version 3.35.0, TEMP triggers are still allowed +even if this option is off. +So, in other words, this option now only disables triggers in the main +database schema or in the schemas of ATTACH-ed databases. +.It SQLITE_DBCONFIG_ENABLE_VIEW +This option is used to enable or disable views. +There should be two additional arguments. +The first argument is an integer which is 0 to disable views, positive +to enable views or negative to leave the setting unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether views are disabled or enabled following +this call. +The second parameter may be a NULL pointer, in which case the view +setting is not reported back. +.Pp +Originally this option disabled all views. +However, since SQLite version 3.35.0, TEMP views are still allowed +even if this option is off. +So, in other words, this option now only disables views in the main +database schema or in the schemas of ATTACH-ed databases. +.It SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER +This option is used to enable or disable the +.Fn fts3_tokenizer +function which is part of the FTS3 full-text search engine extension. +There should be two additional arguments. +The first argument is an integer which is 0 to disable fts3_tokenizer() +or positive to enable fts3_tokenizer() or negative to leave the setting +unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether fts3_tokenizer is disabled or enabled following +this call. +The second parameter may be a NULL pointer, in which case the new setting +is not reported back. +.It SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION +This option is used to enable or disable the +.Fn sqlite3_load_extension +interface independently of the +.Fn load_extension +SQL function. +The +.Fn sqlite3_enable_load_extension +API enables or disables both the C-API +.Fn sqlite3_load_extension +and the SQL function +.Fn load_extension . +There should be two additional arguments. +When the first argument to this interface is 1, then only the C-API +is enabled and the SQL function remains disabled. +If the first argument to this interface is 0, then both the C-API and +the SQL function are disabled. +If the first argument is -1, then no changes are made to state of either +the C-API or the SQL function. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether +.Fn sqlite3_load_extension +interface is disabled or enabled following this call. +The second parameter may be a NULL pointer, in which case the new setting +is not reported back. +.It SQLITE_DBCONFIG_MAINDBNAME +This option is used to change the name of the "main" database schema. +The sole argument is a pointer to a constant UTF8 string which will +become the new schema name in place of "main". +SQLite does not make a copy of the new main schema name string, so +the application must ensure that the argument passed into this DBCONFIG +option is unchanged until after the database connection closes. +.It SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE +Usually, when a database in wal mode is closed or detached from a database +handle, SQLite checks if this will mean that there are now no connections +at all to the database. +If so, it performs a checkpoint operation before closing the connection. +This option may be used to override this behavior. +The first parameter passed to this operation is an integer - positive +to disable checkpoints-on-close, or zero (the default) to enable them, +and negative to leave the setting unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether checkpoints-on-close have been disabled +- 0 if they are not disabled, 1 if they are. +.It SQLITE_DBCONFIG_ENABLE_QPSG +The SQLITE_DBCONFIG_ENABLE_QPSG option activates or deactivates the +query planner stability guarantee +(QPSG). +When the QPSG is active, a single SQL query statement will always use +the same algorithm regardless of values of bound parameters. +The QPSG disables some query optimizations that look at the values +of bound parameters, which can make some queries slower. +But the QPSG has the advantage of more predictable behavior. +With the QPSG active, SQLite will always use the same query plan in +the field as was used during testing in the lab. +The first argument to this setting is an integer which is 0 to disable +the QPSG, positive to enable QPSG, or negative to leave the setting +unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether the QPSG is disabled or enabled following +this call. +.It SQLITE_DBCONFIG_TRIGGER_EQP +By default, the output of EXPLAIN QUERY PLAN commands does not include +output for any operations performed by trigger programs. +This option is used to set or clear (the default) a flag that governs +this behavior. +The first parameter passed to this operation is an integer - positive +to enable output for trigger programs, or zero to disable it, or negative +to leave the setting unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether output-for-triggers has been disabled - +0 if it is not disabled, 1 if it is. +.It SQLITE_DBCONFIG_RESET_DATABASE +Set the SQLITE_DBCONFIG_RESET_DATABASE flag and then run VACUUM +in order to reset a database back to an empty database with no schema +and no content. +The following process works even for a badly corrupted database file: +.Bl -enum +.It +If the database connection is newly opened, make sure it has read the +database schema by preparing then discarding some query against the +database, or calling sqlite3_table_column_metadata(), ignoring any +errors. +This step is only necessary if the application desires to keep the +database in WAL mode after the reset if it was in WAL mode before the +reset. +.It +sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 1, 0); +.It +sqlite3_exec(db, "VACUUM", 0, 0, 0); +.It +sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 0, 0); +.El +.Pp +Because resetting a database is destructive and irreversible, the process +requires the use of this obscure API and multiple steps to help ensure +that it does not happen by accident. +Because this feature must be capable of resetting corrupt databases, +and shutting down virtual tables may require access to that corrupt +storage, the library must abandon any installed virtual tables without +calling their xDestroy() methods. +.It SQLITE_DBCONFIG_DEFENSIVE +The SQLITE_DBCONFIG_DEFENSIVE option activates or deactivates the "defensive" +flag for a database connection. +When the defensive flag is enabled, language features that allow ordinary +SQL to deliberately corrupt the database file are disabled. +The disabled features include but are not limited to the following: +.Bl -bullet +.It +The PRAGMA writable_schema=ON statement. +.It +The PRAGMA journal_mode=OFF statement. +.It +The PRAGMA schema_version=N statement. +.It +Writes to the sqlite_dbpage virtual table. +.It +Direct writes to shadow tables. +.El +.Pp +.It SQLITE_DBCONFIG_WRITABLE_SCHEMA +The SQLITE_DBCONFIG_WRITABLE_SCHEMA option activates or deactivates +the "writable_schema" flag. +This has the same effect and is logically equivalent to setting PRAGMA writable_schema=ON +or PRAGMA writable_schema=OFF. +The first argument to this setting is an integer which is 0 to disable +the writable_schema, positive to enable writable_schema, or negative +to leave the setting unchanged. +The second parameter is a pointer to an integer into which is written +0 or 1 to indicate whether the writable_schema is enabled or disabled +following this call. +.It SQLITE_DBCONFIG_LEGACY_ALTER_TABLE +The SQLITE_DBCONFIG_LEGACY_ALTER_TABLE option activates or deactivates +the legacy behavior of the ALTER TABLE RENAME command +such it behaves as it did prior to version 3.24.0 (2018-06-04). +See the "Compatibility Notice" on the ALTER TABLE RENAME documentation +for additional information. +This feature can also be turned on and off using the PRAGMA legacy_alter_table +statement. +.It SQLITE_DBCONFIG_DQS_DML +The SQLITE_DBCONFIG_DQS_DML option activates or deactivates the legacy +double-quoted string literal misfeature +for DML statements only, that is DELETE, INSERT, SELECT, and UPDATE +statements. +The default value of this setting is determined by the -DSQLITE_DQS +compile-time option. +.It SQLITE_DBCONFIG_DQS_DDL +The SQLITE_DBCONFIG_DQS option activates or deactivates the legacy +double-quoted string literal misfeature +for DDL statements, such as CREATE TABLE and CREATE INDEX. +The default value of this setting is determined by the -DSQLITE_DQS +compile-time option. +.It SQLITE_DBCONFIG_TRUSTED_SCHEMA +The SQLITE_DBCONFIG_TRUSTED_SCHEMA option tells SQLite to assume that +database schemas are untainted by malicious content. +When the SQLITE_DBCONFIG_TRUSTED_SCHEMA option is disabled, SQLite +takes additional defensive steps to protect the application from harm +including: +.Bl -bullet +.It +Prohibit the use of SQL functions inside triggers, views, CHECK constraints, +DEFAULT clauses, expression indexes, partial indexes, or generated +columns unless those functions are tagged with SQLITE_INNOCUOUS. +.It +Prohibit the use of virtual tables inside of triggers or views unless +those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. +.El +.Pp +This setting defaults to "on" for legacy compatibility, however all +applications are advised to turn it off if possible. +This setting can also be controlled using the PRAGMA trusted_schema +statement. +.It SQLITE_DBCONFIG_LEGACY_FILE_FORMAT +The SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option activates or deactivates +the legacy file format flag. +When activated, this flag causes all newly created database file to +have a schema format version number (the 4-byte integer found at offset +44 into the database header) of 1. +This in turn means that the resulting database file will be readable +and writable by any SQLite version back to 3.0.0 (dateof:3.0.0). +Without this setting, newly created databases are generally not understandable +by SQLite versions prior to 3.3.0 (dateof:3.3.0). +As these words are written, there is now scarcely any need to generate +database files that are compatible all the way back to version 3.0.0, +and so this setting is of little practical use, but is provided so +that SQLite can continue to claim the ability to generate new database +files that are compatible with version 3.0.0. +.Pp +Note that when the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT setting is on, +the VACUUM command will fail with an obscure error when attempting +to process a table with generated columns and a descending index. +This is not considered a bug since SQLite versions 3.3.0 and earlier +do not support either generated columns or descending indexes. +.It SQLITE_DBCONFIG_STMT_SCANSTATUS +The SQLITE_DBCONFIG_STMT_SCANSTATUS option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS +builds. +In this case, it sets or clears a flag that enables collection of the +sqlite3_stmt_scanstatus_v2() statistics. +For statistics to be collected, the flag must be set on the database +handle both when the SQL statement is prepared and when it is stepped. +The flag is set (collection of statistics is enabled) by default. +This option takes two arguments: an integer and a pointer to an integer.. +The first argument is 1, 0, or -1 to enable, disable, or leave unchanged +the statement scanstatus option. +If the second argument is not NULL, then the value of the statement +scanstatus setting after processing the first argument is written into +the integer that the second argument points to. +.It SQLITE_DBCONFIG_REVERSE_SCANORDER +The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order +in which tables and indexes are scanned so that the scans start at +the end and work toward the beginning rather than starting at the beginning +and working toward the end. +Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting PRAGMA reverse_unordered_selects. +This option takes two arguments which are an integer and a pointer +to an integer. +The first argument is 1, 0, or -1 to enable, disable, or leave unchanged +the reverse scan order flag, respectively. +If the second argument is not NULL, then 0 or 1 is written into the +integer that the second argument points to depending on if the reverse +scan order flag is set after processing the first argument. +.El +.Pp +.Sh IMPLEMENTATION NOTES +These declarations were extracted from the +interface documentation at line 2177. +.Bd -literal +#define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ +#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ +#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION 1005 /* int int* */ +#define SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE 1006 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_QPSG 1007 /* int int* */ +#define SQLITE_DBCONFIG_TRIGGER_EQP 1008 /* int int* */ +#define SQLITE_DBCONFIG_RESET_DATABASE 1009 /* int int* */ +#define SQLITE_DBCONFIG_DEFENSIVE 1010 /* int int* */ +#define SQLITE_DBCONFIG_WRITABLE_SCHEMA 1011 /* int int* */ +#define SQLITE_DBCONFIG_LEGACY_ALTER_TABLE 1012 /* int int* */ +#define SQLITE_DBCONFIG_DQS_DML 1013 /* int int* */ +#define SQLITE_DBCONFIG_DQS_DDL 1014 /* int int* */ +#define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */ +#define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */ +#define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */ +#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */ +#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */ +.Ed +.Sh SEE ALSO +.Xr sqlite3 3 , +.Xr sqlite3_db_config 3 , +.Xr sqlite3_db_status 3 , +.Xr sqlite3_enable_load_extension 3 , +.Xr sqlite3_exec 3 , +.Xr sqlite3_load_extension 3 , +.Xr sqlite3_malloc 3 , +.Xr SQLITE_DBSTATUS_LOOKASIDE_USED 3 , +.Xr SQLITE_DETERMINISTIC 3 , +.Xr SQLITE_OK 3 , +.Xr SQLITE_VTAB_CONSTRAINT_SUPPORT 3 |
