only argument. On success, returns the result of the
callback. Throws on error.
- Note that transactions may not be nested, so this will throw if
- it is called recursively. For nested transactions, use the
+ Transactions may not be nested, so this will throw if it is
+ called recursively. For nested transactions, use the
savepoint() method or manually manage SAVEPOINTs using exec().
If called with 2 arguments, the first must be a keyword which
is legal immediately after a BEGIN statement, e.g. one of
- "DEFERRED", "IMMEDIATE", or "EXCLUSIVE". Though the exact list
+ "DEFERRED", "IMMEDIATE", or "EXCLUSIVE", though the exact list
of supported keywords is not hard-coded here, in order to be
future-compatible, if the argument does not look like a single
keyword then an exception is triggered with a description of
the problem.
- */
+ */
transaction: function(/* [beginQualifier,] */callback){
let opener = 'BEGIN';
if(arguments.length>1){
}/*changeset/preupdate additions*/
/**
- EXPERIMENTAL. For tentative addition in 3.53.0.
-
sqlite3_js_retry_busy(maxTimes,callback[,beforeRetry])
Calls the given _synchronous_ callback function. If that function
(so it starts with 2, not 1). If it throws, the exception is
handled as described above. Its result value is ignored.
- To effectively retry "forever", pass a negative maxTimes value,
- with the caveat that there is no recovery from that unless the
- beforeRetry() can figure out when to throw.
+ To effectively retry "forever", pass a huge maxTimes value such
+ as Number.MAX_SAFE_INTEGER, with the caveat that there is no
+ recovery from that unless the beforeRetry() can figure out when
+ to throw.
+
+ Added in 3.53.0.
- TODO: an async variant of this.
+ TODO?: an async variant of this.
*/
capi.sqlite3_js_retry_busy = function(maxTimes, callback, beforeRetry){
for(let n = 1; n <= maxTimes; ++n){
-C Use\ssqlite3_malloc()\sfor\smemory\sallocation\sinside\sof\ssqlite3_str_vappendf(),\nsince\sit\sinvokes\ssqlite3_initialize(),\swhereas\ssqlite3DbMallocRaw()\sdoes\nnot.
-D 2026-04-10T17:11:16.628
+C API\sdoc\scorrection\sfor\ssqlite3_js_retry_busy().\sNo\scode\schanges.
+D 2026-04-10T17:55:31.823
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F ext/wasm/api/post-js-header.js f35d2dcf1ab7f22a93d565f8e0b622a2934fc4e743edf3b708e4dd8140eeff55
F ext/wasm/api/pre-js.c-pp.js d6bf82f83f60caa2904bddb95a29cb738b310f672d2796cdc5fe54463ab0d6cd
F ext/wasm/api/sqlite3-api-glue.c-pp.js 31a721ada7225838a61310a9f3f797fa5275353f8e9b0ae769d85b437be061f5
-F ext/wasm/api/sqlite3-api-oo1.c-pp.js 5f203f5bb5d48a9e43ec51e791dc411c24dca825842bfb6a2d979d871bf8cfaf
-F ext/wasm/api/sqlite3-api-prologue.js 4336f02ac24ba58e68e355adb9da2804a1eef15a4aee961fa813c7d812a56b54
+F ext/wasm/api/sqlite3-api-oo1.c-pp.js 35e4727010f15fd72ead0dd1eb4e3c2c9bb1cc60e51544cbdff1f7c14f209de2
+F ext/wasm/api/sqlite3-api-prologue.js 29ca376ff5d5f189714cf10b2b93b136e91b06ec8616579b53b2af9dfb4796bf
F ext/wasm/api/sqlite3-api-worker1.c-pp.js 1fa34e9b0e3b90a8898e4f700d7125e44c81877f182627bb8564b97989bc6e78
F ext/wasm/api/sqlite3-license-version-header.js 98d90255a12d02214db634e041c8e7f2f133d9361a8ebf000ba9c9af4c6761cc
F ext/wasm/api/sqlite3-opfs-async-proxy.c-pp.js 25e31482b04293a33d7599f1459eb552b3eb36ca10c02c816122d3308bf80cb2
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P a50521a16068e555aa08ee25726b081bb4cd33e3ea388b82dcbaa691c2576284
-R 2455a9c5cd7f500f87b4926274d1eb29
-U drh
-Z 2d0a16614e5e41c9c83bdd4d38107e76
+P a2f84c56316ea746c134aa6e5a2b46021f67c6642161beae8122f73daeddda92
+R 6611d7fbd9fda02d49f6e05c79b9740d
+U stephan
+Z 0028d78facb7d9a8650001d65bd33435
# Remove this line to create a well-formed Fossil manifest.
-a2f84c56316ea746c134aa6e5a2b46021f67c6642161beae8122f73daeddda92
+749c537812b907164b7e7ad1fddc1aee8106c59875d2686fe83d602cd0e07611