summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man3/SQLITE_DBCONFIG_MAINDBNAME.3
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (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.3405
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