summaryrefslogtreecommitdiffstats
path: root/Modules/_sqlite/module.c
diff options
context:
space:
mode:
authorErlend E. Aasland <erlend.aasland@protonmail.com>2023-04-26 19:57:48 (GMT)
committerGitHub <noreply@github.com>2023-04-26 19:57:48 (GMT)
commitbb8aa7a2b41ad7649d66909e5266fcee039e63ed (patch)
tree69b936d96b77a82a34968934abdb97632efa455c /Modules/_sqlite/module.c
parent222c63fc6b91f42e7cc53574615f4e9b7a33c28f (diff)
downloadcpython-bb8aa7a2b41ad7649d66909e5266fcee039e63ed.zip
cpython-bb8aa7a2b41ad7649d66909e5266fcee039e63ed.tar.gz
cpython-bb8aa7a2b41ad7649d66909e5266fcee039e63ed.tar.bz2
gh-103489: Add get/set config methods to sqlite3.Connection (#103506)
Diffstat (limited to 'Modules/_sqlite/module.c')
-rw-r--r--Modules/_sqlite/module.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c
index 6db3d51..9c42faa 100644
--- a/Modules/_sqlite/module.c
+++ b/Modules/_sqlite/module.c
@@ -499,6 +499,49 @@ add_integer_constants(PyObject *module) {
#if SQLITE_VERSION_NUMBER >= 3008007
ADD_INT(SQLITE_LIMIT_WORKER_THREADS);
#endif
+
+ /*
+ * Database connection configuration options.
+ * See https://www.sqlite.org/c3ref/c_dbconfig_defensive.html
+ */
+ ADD_INT(SQLITE_DBCONFIG_ENABLE_FKEY);
+ ADD_INT(SQLITE_DBCONFIG_ENABLE_TRIGGER);
+#if SQLITE_VERSION_NUMBER >= 3012002
+ ADD_INT(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3013000
+ ADD_INT(SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3016000
+ ADD_INT(SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3020000
+ ADD_INT(SQLITE_DBCONFIG_ENABLE_QPSG);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3022000
+ ADD_INT(SQLITE_DBCONFIG_TRIGGER_EQP);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3024000
+ ADD_INT(SQLITE_DBCONFIG_RESET_DATABASE);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3026000
+ ADD_INT(SQLITE_DBCONFIG_DEFENSIVE);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3028000
+ ADD_INT(SQLITE_DBCONFIG_WRITABLE_SCHEMA);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3029000
+ ADD_INT(SQLITE_DBCONFIG_DQS_DDL);
+ ADD_INT(SQLITE_DBCONFIG_DQS_DML);
+ ADD_INT(SQLITE_DBCONFIG_LEGACY_ALTER_TABLE);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3030000
+ ADD_INT(SQLITE_DBCONFIG_ENABLE_VIEW);
+#endif
+#if SQLITE_VERSION_NUMBER >= 3031000
+ ADD_INT(SQLITE_DBCONFIG_LEGACY_FILE_FORMAT);
+ ADD_INT(SQLITE_DBCONFIG_TRUSTED_SCHEMA);
+#endif
#undef ADD_INT
return 0;
}