-
Notifications
You must be signed in to change notification settings - Fork 30.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sqlite: expose backup api #56253
sqlite: expose backup api #56253
Conversation
6c61b4c
to
9b80c2d
Compare
632edd3
to
174ace5
Compare
174ace5
to
2aee11d
Compare
This comment mentions that The backup can be performed synchronously but I don't think it should be like that. I wonder if indeed this PR would be more suitable for async API. Any thoughts? Thanks in advance |
69a3bf3
to
bd43083
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #56253 +/- ##
==========================================
- Coverage 89.21% 89.18% -0.03%
==========================================
Files 665 665
Lines 192514 192755 +241
Branches 37040 37084 +44
==========================================
+ Hits 171744 171909 +165
- Misses 13613 13648 +35
- Partials 7157 7198 +41
|
Maybe worth pinging @nodejs/platform-windows for help. |
9a6f158
to
3c49571
Compare
Looks like Windows passed 🎉 https://ci.nodejs.org/job/node-test-binary-windows-js-suites/32505/ (other failed but seems unrelated) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work, thanks for the contribution o/
Commit Queue failed- Loading data for nodejs/node/pull/56253 ✔ Done loading data for nodejs/node/pull/56253 ----------------------------------- PR info ------------------------------------ Title sqlite: expose backup api (#56253) Author Edy Silva <[email protected]> (@geeksilva97) Branch geeksilva97:sqlite-backup -> nodejs:main Labels c++, author ready, sqlite Commits 19 - sqlite, test: expose sqlite online backup api - sqlite: resolve backup promise with total transferred pages - sqlite,test: test DatabaseSync.prototype.backup interface - sqlite: pass object to progress function instead of two args - fixup: improve tests - sqlite: update interface - doc: add backup docs - test: use temp dir to test invalid paths - doc: fixup: fix typos - fixup: improve formatting - fixup: centralize backup error handling - fixup: fix new env properties order - fixup: await rejects assertion - sqlite,test,doc: move backup implementation to a separate function - sqlite,doc: add more details about concurrent edits - sqlite,doc: use async/await in backup code example - sqlite: use proper functions to open/close database - test: close databases after test - sqlite: fix backup finalization when promise resolves Committers 1 - Edy Silva <[email protected]> PR-URL: https://github.com/nodejs/node/pull/56253 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]> ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/56253 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]> -------------------------------------------------------------------------------- ℹ This PR was created on Sat, 14 Dec 2024 01:36:33 GMT ✔ Approvals: 2 ✔ - Colin Ihrig (@cjihrig): https://github.com/nodejs/node/pull/56253#pullrequestreview-2596944274 ✔ - Vinícius Lourenço Claro Cardoso (@H4ad): https://github.com/nodejs/node/pull/56253#pullrequestreview-2596917775 ✔ Last GitHub CI successful ℹ Last Full PR CI on 2025-02-05T20:48:52Z: https://ci.nodejs.org/job/node-test-pull-request/65013/ - Querying data for job/node-test-pull-request/65013/ ✔ Last Jenkins CI successful -------------------------------------------------------------------------------- ✔ No git cherry-pick in progress ✔ No git am in progress ✔ No git rebase in progress -------------------------------------------------------------------------------- - Bringing origin/main up to date... From https://github.com/nodejs/node * branch main -> FETCH_HEAD ✔ origin/main is now up-to-date - Downloading patch for 56253 From https://github.com/nodejs/node * branch refs/pull/56253/merge -> FETCH_HEAD ✔ Fetched commits as 436723282d64..4c4d73b810fe -------------------------------------------------------------------------------- Auto-merging src/node_sqlite.cc Auto-merging src/node_sqlite.h [main e6561e9bdd] sqlite, test: expose sqlite online backup api Author: Edy Silva <[email protected]> Date: Sun Jan 12 21:56:43 2025 -0300 4 files changed, 461 insertions(+) create mode 100644 test/parallel/test-sqlite-backup.mjs Auto-merging src/node_sqlite.cc [main de3853950a] sqlite: resolve backup promise with total transferred pages Author: Edy Silva <[email protected]> Date: Sun Jan 12 23:49:34 2025 -0300 1 file changed, 9 insertions(+), 7 deletions(-) [main 27c17ed52d] sqlite,test: test DatabaseSync.prototype.backup interface Author: Edy Silva <[email protected]> Date: Mon Jan 13 00:01:06 2025 -0300 1 file changed, 88 insertions(+), 10 deletions(-) Auto-merging src/node_sqlite.cc [main 5a6196bb7e] sqlite: pass object to progress function instead of two args Author: Edy Silva <[email protected]> Date: Tue Jan 14 12:32:56 2025 -0300 3 files changed, 43 insertions(+), 8 deletions(-) [main 83fa046d6b] fixup: improve tests Author: Edy Silva <[email protected]> Date: Tue Jan 14 14:05:16 2025 -0300 1 file changed, 46 insertions(+), 58 deletions(-) Auto-merging src/node_sqlite.cc [main 0a61c96ed9] sqlite: update interface Author: Edy Silva <[email protected]> Date: Tue Jan 14 14:20:12 2025 -0300 3 files changed, 15 insertions(+), 17 deletions(-) [main 3636bebe9b] doc: add backup docs Author: Edy Silva <[email protected]> Date: Tue Jan 14 15:19:57 2025 -0300 1 file changed, 23 insertions(+) [main d8f89eae40] test: use temp dir to test invalid paths Author: Edy Silva <[email protected]> Date: Tue Jan 14 15:24:39 2025 -0300 1 file changed, 1 insertion(+), 1 deletion(-) [main 7b218e7c10] doc: fixup: fix typos Author: Edy Silva <[email protected]> Date: Wed Jan 15 20:54:56 2025 -0300 1 file changed, 3 insertions(+), 3 deletions(-) Auto-merging src/node_sqlite.cc [main a7534a16f1] fixup: improve formatting Author: Edy Silva <[email protected]> Date: Wed Jan 15 21:25:59 2025 -0300 1 file changed, 44 insertions(+), 71 deletions(-) Auto-merging src/node_sqlite.cc [main b9f65e3a8f] fixup: centralize backup error handling Author: Edy Silva <[email protected]> Date: Wed Jan 15 21:59:47 2025 -0300 3 files changed, 34 insertions(+), 45 deletions(-) [main c4967daff8] fixup: fix new env properties order Author: Edy Silva <[email protected]> Date: Mon Jan 20 14:12:42 2025 -0300 1 file changed, 3 insertions(+), 3 deletions(-) [main 5560c83169] fixup: await rejects assertion Author: Edy Silva <[email protected]> Date: Mon Jan 20 15:02:09 2025 -0300 1 file changed, 5 insertions(+), 5 deletions(-) Auto-merging src/node_sqlite.cc Auto-merging src/node_sqlite.h [main 33727815e2] sqlite,test,doc: move backup implementation to a separate function Author: Edy Silva <[email protected]> Date: Fri Jan 24 12:20:35 2025 -0300 6 files changed, 177 insertions(+), 149 deletions(-) [main d1c3534575] sqlite,doc: add more details about concurrent edits Author: Edy Silva <[email protected]> Date: Fri Jan 31 13:58:30 2025 -0300 1 file changed, 40 insertions(+), 2 deletions(-) [main 5cecd76b35] sqlite,doc: use async/await in backup code example Author: Edy Silva <[email protected]> Date: Mon Feb 3 13:14:34 2025 -0300 1 file changed, 14 insertions(+), 16 deletions(-) Auto-merging src/node_sqlite.cc [main dd2b54d22d] sqlite: use proper functions to open/close database Author: Edy Silva <[email protected]> Date: Mon Feb 3 18:07:10 2025 -0300 1 file changed, 5 insertions(+), 2 deletions(-) [main c680940ca9] test: close databases after test Author: Edy Silva <[email protected]> Date: Tue Feb 4 14:39:55 2025 -0300 1 file changed, 11 insertions(+), 1 deletion(-) Auto-merging src/node_sqlite.cc [main dd8154e385] sqlite: fix backup finalization when promise resolves Author: Edy Silva <[email protected]> Date: Tue Feb 4 23:57:54 2025 -0300 1 file changed, 3 insertions(+), 1 deletion(-) ✔ Patches applied There are 19 commits in the PR. Attempting autorebase. Rebasing (2/38) Executing: git node land --amend --yes --------------------------------- New Message ---------------------------------- sqlite, test: expose sqlite online backup apihttps://github.com/nodejs/node/actions/runs/13167245589 |
Landed in 16dc29d |
PR-URL: #56253 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
PR-URL: nodejs#56253 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `23.7.0` -> `23.8.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>nodejs/node (node)</summary> ### [`v23.8.0`](https://github.com/nodejs/node/releases/tag/v23.8.0): 2025-02-13, Version 23.8.0 (Current), @​targos [Compare Source](nodejs/node@v23.7.0...v23.8.0) ##### Notable Changes ##### Support for using system CA certificates store on macOS and Windows This version adds the `--use-system-ca` command-line flag, which instructs Node.js to use the trusted CA certificates present in the system store along with the `--use-bundled-ca`, `--use-openssl-ca` options. This option is available on macOS and Windows for now. Contributed by Tim Jacomb in [#​56599](nodejs/node#56599) and Joyee Cheung in [#​56833](nodejs/node#56833). ##### Introduction of the URL Pattern API An implementation of the [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) is now available. The `URLPattern` constructor is exported from the `node:url` module and will be available as a global in Node.js 24. Contributed by Yagiz Nizipli and Daniel Lemire in [#​56452](nodejs/node#56452). ##### Support for the zstd compression algorithm Node.js now includes support for the Zstandard (zstd) compression algorithm. Various APIs have been added to the `node:zlib` module for both compression and decompression of zstd streams. Contributed by Jan Krems in [#​52100](nodejs/node#52100). ##### Node.js thread names Threads created by the Node.js process are now named to improve the debugging experience. Worker threads will use the `name` option that can be passed to the `Worker` constructor. Contributed by Rafael Gonzaga in [#​56416](nodejs/node#56416). ##### Timezone data has been updated to 2025a Included changes: - Paraguay adopts permanent -03 starting spring 2024. - Improve pre-1991 data for the Philippines. ##### Other Notable Changes - \[[`39997867cf`](nodejs/node@39997867cf)] - **(SEMVER-MINOR)** **sqlite**: allow returning `ArrayBufferView`s from user-defined functions (René) [#​56790](nodejs/node#56790) ##### Commits - \[[`0ee9c34d63`](nodejs/node@0ee9c34d63)] - **benchmark**: add simple parse and test benchmarks for URLPattern (James M Snell) [#​56882](nodejs/node#56882) - \[[`b3f2045d14`](nodejs/node@b3f2045d14)] - **build**: gyp exclude libm linking on macOS (deepak1556) [#​56901](nodejs/node#56901) - \[[`e0dd9aefd6`](nodejs/node@e0dd9aefd6)] - **build**: remove explicit linker call to libm on macOS (deepak1556) [#​56901](nodejs/node#56901) - \[[`52399da780`](nodejs/node@52399da780)] - **build**: link with Security.framework in GN build (Cheng) [#​56895](nodejs/node#56895) - \[[`582b9221c9`](nodejs/node@582b9221c9)] - **build**: do not put commands in sources variables (Cheng) [#​56885](nodejs/node#56885) - \[[`ea61b956e9`](nodejs/node@ea61b956e9)] - **build**: add double quotes around <(python) (Luigi Pinca) [#​56826](nodejs/node#56826) - \[[`14236ef778`](nodejs/node@14236ef778)] - **build**: add build option suppress_all_error_on_warn (Michael Dawson) [#​56647](nodejs/node#56647) - \[[`dfd3f430f3`](nodejs/node@dfd3f430f3)] - **build,win**: enable ccache (Stefan Stojanovic) [#​56847](nodejs/node#56847) - \[[`3e207bd9ec`](nodejs/node@3e207bd9ec)] - **(SEMVER-MINOR)** **crypto**: support --use-system-ca on Windows (Joyee Cheung) [#​56833](nodejs/node#56833) - \[[`fe2694a992`](nodejs/node@fe2694a992)] - **crypto**: fix X509\* leak in --use-system-ca (Joyee Cheung) [#​56832](nodejs/node#56832) - \[[`60039a2c36`](nodejs/node@60039a2c36)] - **crypto**: add api to get openssl security level (Michael Dawson) [#​56601](nodejs/node#56601) - \[[`39a474f7c0`](nodejs/node@39a474f7c0)] - **(SEMVER-MINOR)** **crypto**: added support for reading certificates from macOS system store (Tim Jacomb) [#​56599](nodejs/node#56599) - \[[`144bee8067`](nodejs/node@144bee8067)] - **deps**: update zlib to 1.3.0.1-motley-788cb3c (Node.js GitHub Bot) [#​56655](nodejs/node#56655) - \[[`7fd39e3a79`](nodejs/node@7fd39e3a79)] - **deps**: update sqlite to 3.49.0 (Node.js GitHub Bot) [#​56654](nodejs/node#56654) - \[[`d698cb5434`](nodejs/node@d698cb5434)] - **deps**: update amaro to 0.3.2 (marco-ippolito) [#​56916](nodejs/node#56916) - \[[`dbd09067c0`](nodejs/node@dbd09067c0)] - **deps**: V8: cherry-pick [`9ab4059`](nodejs/node@9ab40592f697) (Levi Zim) [#​56781](nodejs/node#56781) - \[[`ee33ef3aa6`](nodejs/node@ee33ef3aa6)] - **deps**: update cjs-module-lexer to 2.0.0 (Michael Dawson) [#​56855](nodejs/node#56855) - \[[`c0542557d0`](nodejs/node@c0542557d0)] - **deps**: update timezone to 2025a (Node.js GitHub Bot) [#​56876](nodejs/node#56876) - \[[`d67cb1f9bb`](nodejs/node@d67cb1f9bb)] - **deps**: update simdjson to 3.12.0 (Node.js GitHub Bot) [#​56874](nodejs/node#56874) - \[[`70b04b4314`](nodejs/node@70b04b4314)] - **deps**: update googletest to [`e235eb3`](nodejs/node@e235eb3) (Node.js GitHub Bot) [#​56873](nodejs/node#56873) - \[[`e11cda003f`](nodejs/node@e11cda003f)] - **(SEMVER-MINOR)** **deps**: update ada to v3.0.1 (Yagiz Nizipli) [#​56452](nodejs/node#56452) - \[[`8743ef525d`](nodejs/node@8743ef525d)] - **deps**: update simdjson to 3.11.6 (Node.js GitHub Bot) [#​56250](nodejs/node#56250) - \[[`0f553e5575`](nodejs/node@0f553e5575)] - **deps**: update amaro to 0.3.1 (Node.js GitHub Bot) [#​56785](nodejs/node#56785) - \[[`380a8d8d2f`](nodejs/node@380a8d8d2f)] - **(SEMVER-MINOR)** **deps,tools**: add zstd 1.5.6 (Jan Krems) [#​52100](nodejs/node#52100) - \[[`66898a7c3b`](nodejs/node@66898a7c3b)] - **doc**: update history of stream.Readable.toWeb() (Jimmy Leung) [#​56928](nodejs/node#56928) - \[[`9e29416e12`](nodejs/node@9e29416e12)] - **doc**: make MDN links to global classes more consistent (Antoine du Hamel) [#​56924](nodejs/node#56924) - \[[`6bc270728a`](nodejs/node@6bc270728a)] - **doc**: make MDN links to global classes more consistent in `assert.md` (Antoine du Hamel) [#​56920](nodejs/node#56920) - \[[`00da003171`](nodejs/node@00da003171)] - **doc**: make MDN links to global classes more consistent (Antoine du Hamel) [#​56923](nodejs/node#56923) - \[[`d90198793a`](nodejs/node@d90198793a)] - **doc**: make MDN links to global classes more consistent in `util.md` (Antoine du Hamel) [#​56922](nodejs/node#56922) - \[[`5f4377a759`](nodejs/node@5f4377a759)] - **doc**: make MDN links to global classes more consistent in `buffer.md` (Antoine du Hamel) [#​56921](nodejs/node#56921) - \[[`7353266b50`](nodejs/node@7353266b50)] - **doc**: improve type stripping documentation (Marco Ippolito) [#​56916](nodejs/node#56916) - \[[`888d2acc3a`](nodejs/node@888d2acc3a)] - **doc**: specificy support for erasable ts syntax (Marco Ippolito) [#​56916](nodejs/node#56916) - \[[`3c082d43bc`](nodejs/node@3c082d43bc)] - **doc**: update post sec release process (Rafael Gonzaga) [#​56907](nodejs/node#56907) - \[[`f0bf35d3c5`](nodejs/node@f0bf35d3c5)] - **doc**: update websocket link to avoid linking to self (Chengzhong Wu) [#​56897](nodejs/node#56897) - \[[`373dbb0e6c`](nodejs/node@373dbb0e6c)] - **doc**: mark `--env-file-if-exists` flag as experimental (Juan José) [#​56893](nodejs/node#56893) - \[[`d436888cc8`](nodejs/node@d436888cc8)] - **doc**: fix typo in cjs example of `util.styleText` (Deokjin Kim) [#​56769](nodejs/node#56769) - \[[`91638eeb4a`](nodejs/node@91638eeb4a)] - **doc**: clarify sqlite user-defined function behaviour (René) [#​56786](nodejs/node#56786) - \[[`bab9c4d331`](nodejs/node@bab9c4d331)] - **events**: getMaxListeners detects 0 listeners (Matthew Aitken) [#​56807](nodejs/node#56807) - \[[`ccaf7fe737`](nodejs/node@ccaf7fe737)] - **fs**: make `FileHandle.readableWebStream` always create byte streams (Ian Kerins) [#​55461](nodejs/node#55461) - \[[`974cec7a0a`](nodejs/node@974cec7a0a)] - **http**: be more generational GC friendly (ywave620) [#​56767](nodejs/node#56767) - \[[`be00058712`](nodejs/node@be00058712)] - **inspector**: add Network.Initiator in inspector protocol (Chengzhong Wu) [#​56805](nodejs/node#56805) - \[[`31293a4b09`](nodejs/node@31293a4b09)] - **inspector**: fix GN build (Cheng) [#​56798](nodejs/node#56798) - \[[`91a302356b`](nodejs/node@91a302356b)] - **inspector**: fix StringUtil::CharacterCount for unicodes (Chengzhong Wu) [#​56788](nodejs/node#56788) - \[[`3b305f25f2`](nodejs/node@3b305f25f2)] - **lib**: filter node:quic from builtinModules when flag not used (James M Snell) [#​56870](nodejs/node#56870) - \[[`f06ee4c54a`](nodejs/node@f06ee4c54a)] - **meta**: bump `actions/upload-artifact` from 4.4.3 to 4.6.0 (dependabot\[bot]) [#​56861](nodejs/node#56861) - \[[`d230bc3b3c`](nodejs/node@d230bc3b3c)] - **meta**: bump `actions/setup-node` from 4.1.0 to 4.2.0 (dependabot\[bot]) [#​56868](nodejs/node#56868) - \[[`d4ecfa745e`](nodejs/node@d4ecfa745e)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#​56889](nodejs/node#56889) - \[[`698c56bb94`](nodejs/node@698c56bb94)] - **meta**: add [@​nodejs/url](https://github.com/nodejs/url) as codeowner (Chengzhong Wu) [#​56783](nodejs/node#56783) - \[[`a274b28857`](nodejs/node@a274b28857)] - **module**: fix require.resolve() crash on non-string paths (Aditi) [#​56942](nodejs/node#56942) - \[[`4e3052aeee`](nodejs/node@4e3052aeee)] - **quic**: fixup errant LocalVector usage (James M Snell) [#​56564](nodejs/node#56564) - \[[`dfc61f7bb7`](nodejs/node@dfc61f7bb7)] - **readline**: fix unresolved promise on abortion (Daniel Venable) [#​54030](nodejs/node#54030) - \[[`9e60501f5e`](nodejs/node@9e60501f5e)] - **sqlite**: fix coverity warnings related to backup() (Colin Ihrig) [#​56961](nodejs/node#56961) - \[[`1913a4aabc`](nodejs/node@1913a4aabc)] - **sqlite**: restore changes from [#​55373](nodejs/node#55373) (Colin Ihrig) [#​56908](nodejs/node#56908) - \[[`8410c955b7`](nodejs/node@8410c955b7)] - **sqlite**: fix use-after-free in StatementSync due to premature GC (Divy Srivastava) [#​56840](nodejs/node#56840) - \[[`01d732d629`](nodejs/node@01d732d629)] - **sqlite**: handle conflicting SQLite and JS errors (Colin Ihrig) [#​56787](nodejs/node#56787) - \[[`39997867cf`](nodejs/node@39997867cf)] - **(SEMVER-MINOR)** **sqlite**: allow returning `ArrayBufferView`s from user-defined functions (René) [#​56790](nodejs/node#56790) - \[[`8dc637681a`](nodejs/node@8dc637681a)] - **sqlite, test**: expose sqlite online backup api (Edy Silva) [#​56253](nodejs/node#56253) - \[[`cfea53eccc`](nodejs/node@cfea53eccc)] - **src**: use `args.This()` in zlib (Michaël Zasso) [#​56988](nodejs/node#56988) - \[[`6b398d6d0b`](nodejs/node@6b398d6d0b)] - **src**: replace `SplitString` with built-in (Yagiz Nizipli) [#​54990](nodejs/node#54990) - \[[`fbb32e0a08`](nodejs/node@fbb32e0a08)] - **src**: add nullptr handling for `NativeKeyObject` (Burkov Egor) [#​56900](nodejs/node#56900) - \[[`83ff7be9fd`](nodejs/node@83ff7be9fd)] - **src**: disallow copy/move fns/constructors (Yagiz Nizipli) [#​56811](nodejs/node#56811) - \[[`63611d0331`](nodejs/node@63611d0331)] - **src**: add a hard dependency v8\_inspector_headers (Chengzhong Wu) [#​56805](nodejs/node#56805) - \[[`3d957d135c`](nodejs/node@3d957d135c)] - **src**: improve error handling in encoding_binding.cc (James M Snell) [#​56915](nodejs/node#56915) - \[[`9e9ac3ccd8`](nodejs/node@9e9ac3ccd8)] - **src**: avoid copy by using std::views::keys (Yagiz Nizipli) [#​56080](nodejs/node#56080) - \[[`086cdc297a`](nodejs/node@086cdc297a)] - **src**: remove obsolete NoArrayBufferZeroFillScope (James M Snell) [#​56913](nodejs/node#56913) - \[[`915d7aeb37`](nodejs/node@915d7aeb37)] - **src**: set signal inspector io thread name (RafaelGSS) [#​56416](nodejs/node#56416) - \[[`f4b086d29d`](nodejs/node@f4b086d29d)] - **src**: set thread name for main thread and v8 worker (RafaelGSS) [#​56416](nodejs/node#56416) - \[[`3579143630`](nodejs/node@3579143630)] - **src**: set worker thread name using worker.name (RafaelGSS) [#​56416](nodejs/node#56416) - \[[`736ff5de6d`](nodejs/node@736ff5de6d)] - **src**: use a default thread name for inspector (RafaelGSS) [#​56416](nodejs/node#56416) - \[[`be8e2b4d8f`](nodejs/node@be8e2b4d8f)] - **src**: improve error handling in permission.cc (James M Snell) [#​56904](nodejs/node#56904) - \[[`d6cf0911ee`](nodejs/node@d6cf0911ee)] - **src**: improve error handling in node_sqlite (James M Snell) [#​56891](nodejs/node#56891) - \[[`521fed1bac`](nodejs/node@521fed1bac)] - **src**: improve error handling in node_os by removing ToLocalChecked (James M Snell) [#​56888](nodejs/node#56888) - \[[`c9a99df8e7`](nodejs/node@c9a99df8e7)] - **src**: improve error handling in node_url (James M Snell) [#​56886](nodejs/node#56886) - \[[`5c82ef3ace`](nodejs/node@5c82ef3ace)] - **src**: add memory retainer traits for external types (Chengzhong Wu) [#​56881](nodejs/node#56881) - \[[`edb194b2d5`](nodejs/node@edb194b2d5)] - **src**: prevent URLPattern property accessors from crashing on invalid this (James M Snell) [#​56877](nodejs/node#56877) - \[[`9624049414`](nodejs/node@9624049414)] - **src**: pull in more electron boringssl adjustments (James M Snell) [#​56858](nodejs/node#56858) - \[[`f8910e384d`](nodejs/node@f8910e384d)] - **src**: make multiple improvements to node_url_pattern (James M Snell) [#​56871](nodejs/node#56871) - \[[`94a0237b18`](nodejs/node@94a0237b18)] - **src**: clean up some obsolete crypto methods (James M Snell) [#​56792](nodejs/node#56792) - \[[`b240ca67b9`](nodejs/node@b240ca67b9)] - **src**: add check for Bignum in GroupOrderSize (Burkov Egor) [#​56702](nodejs/node#56702) - \[[`45692e9c7c`](nodejs/node@45692e9c7c)] - **src, deps**: port electron's boringssl workarounds (James M Snell) [#​56812](nodejs/node#56812) - \[[`a9d80d43cb`](nodejs/node@a9d80d43cb)] - **(SEMVER-MINOR)** **src, quic**: refine more of the quic implementation (James M Snell) [#​56328](nodejs/node#56328) - \[[`93d0beb6c8`](nodejs/node@93d0beb6c8)] - **src,test**: expand test coverage for urlpattern and fix error (James M Snell) [#​56878](nodejs/node#56878) - \[[`5a9732e1d0`](nodejs/node@5a9732e1d0)] - **test**: improve timeout duration for debugger events (Yagiz Nizipli) [#​56970](nodejs/node#56970) - \[[`60c8fc07ff`](nodejs/node@60c8fc07ff)] - **test**: remove unnecessary syscall to cpuinfo (Yagiz Nizipli) [#​56968](nodejs/node#56968) - \[[`40cdf756e6`](nodejs/node@40cdf756e6)] - **test**: update webstorage wpt (Yagiz Nizipli) [#​56963](nodejs/node#56963) - \[[`de77371a9e`](nodejs/node@de77371a9e)] - **test**: execute shell directly for refresh() (Yagiz Nizipli) [#​55051](nodejs/node#55051) - \[[`f4254b8e70`](nodejs/node@f4254b8e70)] - **test**: automatically sync wpt urlpattern tests (Jonas) [#​56949](nodejs/node#56949) - \[[`a473d3f57a`](nodejs/node@a473d3f57a)] - **test**: update snapshots for amaro v0.3.2 (Marco Ippolito) [#​56916](nodejs/node#56916) - \[[`abca97f7e2`](nodejs/node@abca97f7e2)] - **test**: change jenkins reporter (Carlos Espa) [#​56808](nodejs/node#56808) - \[[`7c9fa11127`](nodejs/node@7c9fa11127)] - **test**: fix race condition in test-child-process-bad-stdio (Colin Ihrig) [#​56845](nodejs/node#56845) - \[[`b8b6e68836`](nodejs/node@b8b6e68836)] - **(SEMVER-MINOR)** **test**: add WPT for URLPattern (Yagiz Nizipli) [#​56452](nodejs/node#56452) - \[[`b6d3d52e20`](nodejs/node@b6d3d52e20)] - **test**: adjust check to use OpenSSL sec level (Michael Dawson) [#​56819](nodejs/node#56819) - \[[`3beac87f92`](nodejs/node@3beac87f92)] - **test**: test-crypto-scrypt.js doesn't need internals (Meghan Denny) [#​56673](nodejs/node#56673) - \[[`3af23a10f3`](nodejs/node@3af23a10f3)] - **test**: set `test-fs-cp` as flaky (Stefan Stojanovic) [#​56799](nodejs/node#56799) - \[[`1146f48f67`](nodejs/node@1146f48f67)] - **test**: search cctest files (Chengzhong Wu) [#​56791](nodejs/node#56791) - \[[`86c199b25a`](nodejs/node@86c199b25a)] - **test**: convert test_encoding_binding.cc to a JS test (Chengzhong Wu) [#​56791](nodejs/node#56791) - \[[`bd5484717c`](nodejs/node@bd5484717c)] - **test**: test-crypto-prime.js doesn't need internals (Meghan Denny) [#​56675](nodejs/node#56675) - \[[`f5f54414e4`](nodejs/node@f5f54414e4)] - **test**: temporary remove resource check from fs read-write (Rafael Gonzaga) [#​56789](nodejs/node#56789) - \[[`c8bd2ba0ad`](nodejs/node@c8bd2ba0ad)] - **test**: mark test-without-async-context-frame flaky on windows (James M Snell) [#​56753](nodejs/node#56753) - \[[`2c2e4a4ae0`](nodejs/node@2c2e4a4ae0)] - **test**: remove unnecessary code (Luigi Pinca) [#​56784](nodejs/node#56784) - \[[`4606a5f79b`](nodejs/node@4606a5f79b)] - **test**: mark `test-esm-loader-hooks-inspect-wait` flaky (Richard Lau) [#​56803](nodejs/node#56803) - \[[`38c77e3462`](nodejs/node@38c77e3462)] - **test**: update WPT for url to [`a23788b`](nodejs/node@a23788b77a) (Node.js GitHub Bot) [#​56779](nodejs/node#56779) - \[[`50ebd5fd31`](nodejs/node@50ebd5fd31)] - **test**: remove duplicate error reporter from ci (Carlos Espa) [#​56739](nodejs/node#56739) - \[[`0c3ae25aec`](nodejs/node@0c3ae25aec)] - **test_runner**: print formatted errors on summary (Pietro Marchini) [#​56911](nodejs/node#56911) - \[[`b5a8a812fb`](nodejs/node@b5a8a812fb)] - **tools**: bump eslint version (dependabot\[bot]) [#​56869](nodejs/node#56869) - \[[`e1f86c1b9d`](nodejs/node@e1f86c1b9d)] - **tools**: remove test-asan/ubsan workflows (Michaël Zasso) [#​56823](nodejs/node#56823) - \[[`405a6678b7`](nodejs/node@405a6678b7)] - **tools**: run macOS test workflow with Xcode 16.1 (Michaël Zasso) [#​56831](nodejs/node#56831) - \[[`16529c130f`](nodejs/node@16529c130f)] - **tools**: update sccache and sccache-action (Michaël Zasso) [#​56815](nodejs/node#56815) - \[[`fe004111ea`](nodejs/node@fe004111ea)] - **tools**: fix license-builder for inspector_protocol (Michaël Zasso) [#​56814](nodejs/node#56814) - \[[`bc97a90176`](nodejs/node@bc97a90176)] - **(SEMVER-MINOR)** **url**: add URLPattern implementation (Yagiz Nizipli) [#​56452](nodejs/node#56452) - \[[`77294d8918`](nodejs/node@77294d8918)] - **util**: enforce shouldColorize in styleText array arg (Marco Ippolito) [#​56722](nodejs/node#56722) - \[[`8e6c191601`](nodejs/node@8e6c191601)] - **zlib**: use modern class syntax for zstd classes (Yagiz Nizipli) [#​56965](nodejs/node#56965) - \[[`a3ca7f37a2`](nodejs/node@a3ca7f37a2)] - **zlib**: make all zstd functions experimental (Yagiz Nizipli) [#​56964](nodejs/node#56964) - \[[`4cc7907738`](nodejs/node@4cc7907738)] - **(SEMVER-MINOR)** **zlib**: add zstd support (Jan Krems) [#​52100](nodejs/node#52100) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjkuMyIsInVwZGF0ZWRJblZlciI6IjM5LjE2OS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Closes #55413
This PR exposes the SQLite Online Backup API, which allows database backup.
The API is inspired by better-sqlite3 https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md#backupdestination-options---promise.
Multithreading caveats
As long as writes come from the same process and handle (
sqlite*
), the backup will continue progressing as expected. Other than that, it can cause the backup process to restart. From docs: