@@ -579,6 +579,61 @@ Module constants
579579.. deprecated-removed :: 3.12 3.14
580580 The :data: `!version ` and :data: `!version_info ` constants.
581581
582+ .. _sqlite3-fcntl-constants :
583+
584+ .. data :: SQLITE_FCNTL_LOCKSTATE
585+ SQLITE_FCNTL_GET_LOCKPROXYFILE
586+ SQLITE_FCNTL_SET_LOCKPROXYFILE
587+ SQLITE_FCNTL_LAST_ERRNO
588+ SQLITE_FCNTL_SIZE_HINT
589+ SQLITE_FCNTL_CHUNK_SIZE
590+ SQLITE_FCNTL_FILE_POINTER
591+ SQLITE_FCNTL_SYNC_OMITTED
592+ SQLITE_FCNTL_WIN32_AV_RETRY
593+ SQLITE_FCNTL_PERSIST_WAL
594+ SQLITE_FCNTL_OVERWRITE
595+ SQLITE_FCNTL_POWERSAFE_OVERWRITE
596+ SQLITE_FCNTL_PRAGMA
597+ SQLITE_FCNTL_BUSYHANDLER
598+ SQLITE_FCNTL_MMAP_SIZE
599+ SQLITE_FCNTL_TRACE
600+ SQLITE_FCNTL_HAS_MOVED
601+ SQLITE_FCNTL_SYNC
602+ SQLITE_FCNTL_COMMIT_PHASETWO
603+ SQLITE_FCNTL_WIN32_SET_HANDLE
604+ SQLITE_FCNTL_WAL_BLOCK
605+ SQLITE_FCNTL_ZIPVFS
606+ SQLITE_FCNTL_RBU
607+ SQLITE_FCNTL_VFS_POINTER
608+ SQLITE_FCNTL_JOURNAL_POINTER
609+ SQLITE_FCNTL_WIN32_GET_HANDLE
610+ SQLITE_FCNTL_PDB
611+ SQLITE_FCNTL_BEGIN_ATOMIC_WRITE
612+ SQLITE_FCNTL_COMMIT_ATOMIC_WRITE
613+ SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE
614+ SQLITE_FCNTL_LOCK_TIMEOUT
615+ SQLITE_FCNTL_DATA_VERSION
616+ SQLITE_FCNTL_SIZE_LIMIT
617+ SQLITE_FCNTL_CKPT_DONE
618+ SQLITE_FCNTL_RESERVE_BYTES
619+ SQLITE_FCNTL_CKPT_START
620+ SQLITE_FCNTL_EXTERNAL_READER
621+ SQLITE_FCNTL_CKSM_FILE
622+ SQLITE_FCNTL_RESET_CACHE
623+ SQLITE_FCNTL_NULL_IO
624+
625+ These constants are used for the :meth: `Connection.file_control ` method.
626+
627+ The availability of these constants varies depending on the version of SQLite
628+ Python was compiled with.
629+
630+ .. versionadded :: 3.14
631+
632+ .. seealso ::
633+
634+ https://www.sqlite.org/c3ref/c_fcntl_begin_atomic_write.html
635+ SQLite docs: Standard File Control Opcodes
636+
582637.. _sqlite3-connection-objects :
583638
584639Connection objects
@@ -1288,6 +1343,24 @@ Connection objects
12881343
12891344 .. versionadded :: 3.12
12901345
1346+ .. method :: file_control(op, val, /, name="main")
1347+
1348+ Invoke a file control method on the database.
1349+ Opcodes which take non-integer arguments are not supported.
1350+
1351+ :param int op:
1352+ The :ref: `SQLITE_FCNTL_* constant <sqlite3-fcntl-constants >` to invoke.
1353+
1354+ :param int arg:
1355+ The argument to pass to the operation.
1356+
1357+ :param str name:
1358+ the database name to operate against.
1359+
1360+ :rtype: int
1361+
1362+ .. versionadded :: 3.14
1363+
12911364 .. method :: serialize(*, name="main")
12921365
12931366 Serialize a database into a :class: `bytes ` object. For an
0 commit comments