Releases: sparklemotion/sqlite3-ruby
2.2.0 / 2024-10-30
2.2.0 / 2024-10-30
Added
- URI filenames are now allowed. This allows the injection of some behavior via recognized query parameters. See https://www.sqlite.org/uri.html for more information. [#571] @flavorjones
Improved
- SQL Syntax errors during
Database#prepare
will raise a verbose exception with a multiline message indicating with a "^" exactly where in the statement the error occurred. [#554] @fractaledmind @flavorjones
sha256 checksums:
5e33dc761b8be16b0ba2480fd4dfa85ad3f4d0b7514c1d4375700c7bb0e0a101 sqlite3-2.2.0-aarch64-linux-gnu.gem
99b31de2c6a68754f03c7fb31af1a432567b6aef6d10163e56552eb278de1066 sqlite3-2.2.0-aarch64-linux-musl.gem
c86bfa909d052fe31d94f6b589dcc8eee23cb60988754177db0014729090bd50 sqlite3-2.2.0-arm64-darwin.gem
bccdd28086df162e5bff6b6b205a4c1ae5291a8d21d3655e86a94f0f8da399be sqlite3-2.2.0-arm-linux-gnu.gem
6e44744b8526a180fee6b68245601e1646d82916fb67c6c4479cdf42e78b82dd sqlite3-2.2.0-arm-linux-musl.gem
85ebbd8fceb47fcf96795260398c7e96dedcfc2919ec064568d59ce43ace1aa7 sqlite3-2.2.0.gem
76377037bff70fa786dda9694d09937fc750314ed01ab5016eed2f9147784a8b sqlite3-2.2.0-x64-mingw-ucrt.gem
525a96b032e0881b11a5498a0531fd2487bc6049e1b58f8fa378dd3a59560e67 sqlite3-2.2.0-x86_64-darwin.gem
3d05032a786fc56299acd743ee226715cca49a4acd2159ab8e1ebae53f24fb2d sqlite3-2.2.0-x86_64-linux-gnu.gem
59e9dcf90595c15bfe00f816d5dec4123c1d01530ccba069c4e6989df6d8455e sqlite3-2.2.0-x86_64-linux-musl.gem
cc896e77e85119cbf2126167e6990ba6356da7ca5f53e09372470ffbf2789834 sqlite3-2.2.0-x86-linux-gnu.gem
ef75eece5db2403faddf62ded791a7d6deef94c44a322b8ea1ec0a154f0d2d9e sqlite3-2.2.0-x86-linux-musl.gem
2.1.1 / 2024-10-22
2.1.1 / 2024-10-22
Dependencies
- Vendored sqlite is updated to v3.47.0 [#570] @flavorjones
sha256 checksums:
8e66a55e17ab5251d8a3e86c95fa79676d7b6f9657f5a2bade6604d69e15fc6f sqlite3-2.1.1-aarch64-linux-gnu.gem
74bb21dade2c31eb9de8bcb410ed0a5b5e2d3bfe8643ad129b38d8452e2e46ce sqlite3-2.1.1-aarch64-linux-musl.gem
964d03e90952b355827a6c981511304c36d6cb552a894112720655793d09b78c sqlite3-2.1.1-arm64-darwin.gem
c42e2888360ba68bcb11e56b6df253ccdd650208f9ee25acbe0df1d3b8776113 sqlite3-2.1.1-arm-linux-gnu.gem
2e3adc9f0d42287376ee3dbf2176fd01a100c6588271ad8418ea70758a161a06 sqlite3-2.1.1-arm-linux-musl.gem
08ef9a277f25665bf237f16f7c68ec22b79100d1abe256e566a5e23337a62cf6 sqlite3-2.1.1.gem
8b027802f064007e0dc87f26eda4479aaf3e7ae1e8708c9b851522ea7c1dfa64 sqlite3-2.1.1-x64-mingw-ucrt.gem
b38eac8abe54341d4cc8ffa4285f78755e07852f82559b2815e7b85e353d398c sqlite3-2.1.1-x86_64-darwin.gem
f2cd96fe785f6928d1696751b54dac854dda880db67cd54525838d5849a5c1b9 sqlite3-2.1.1-x86_64-linux-gnu.gem
e7f43e4f0fbe575ebaf437489bd12c90464c8d287af14d3879359e4ac1e6a820 sqlite3-2.1.1-x86_64-linux-musl.gem
b2e0d4479c505af22e93172abc0e34979c5d8ba55d7139be3bc725cea2b34e75 sqlite3-2.1.1-x86-linux-gnu.gem
d4babefc2e142cc230f20aae94cc87348006ebaf5f514ba5fcb45fdc73461e42 sqlite3-2.1.1-x86-linux-musl.gem
2.1.0 / 2024-09-24
2.1.0 / 2024-09-24
Ruby
- This release drops support for Ruby 3.0. [#563] @flavorjones
Fork safety improvements
Sqlite itself is not fork-safe. Specifically, writing in a child process to a database connection that was created in the parent process may corrupt the database file. To mitigate this risk, sqlite3-ruby has implemented the following changes:
- All open writable database connections carried across a
fork()
will immediately be closed in the child process to mitigate the risk of corrupting the database file. - These connections will be incompletely closed ("discarded") which will result in a one-time memory leak in the child process.
If it's at all possible, we strongly recommend that you close writable database connections in the parent before forking. If absolutely necessary (and you know what you're doing), you may suppress the fork safety warnings by calling SQLite3::ForkSafety.suppress_warnings!
.
See the README's "Fork Safety" section and adr/2024-09-fork-safety.md
for more information. [#558, #565, #566] @flavorjones
Improved
- Use
sqlite3_close_v2
to close databases in a deferred manner if there are unclosed prepared statements. Previously closing a database while statements were open resulted in aBusyException
. See https://www.sqlite.org/c3ref/close.html for more context. [#557] @flavorjones - When setting a Database
busy_handler
, fire the write barrier to prevent potential crashes during the GC mark phase. [#556] @jhawthorn
Documentation
New Contributors
- @jhawthorn made their first contribution in #556
- @rickhull made their first contribution in #562
Full Changelog: v2.0.4...v2.1.0
sha256 checksums:
6ed8c7edce2c4ec432152f548ffc80667bd774870d585bf5634d8e2e085fb70d sqlite3-2.1.0-aarch64-linux-gnu.gem
b8330e67696ae9294b6e5da0d7ceb4e33e46462e1911b79fdf81eb20aa6f0dc7 sqlite3-2.1.0-aarch64-linux-musl.gem
577636e21e7373546f2f2e526316a53ed0ee0eeaa10960647e26479d1ebb49b9 sqlite3-2.1.0-arm64-darwin.gem
7bad1c60fd4e46c4c941bfc4d12c59254a9715b289655a606880e471e829c74c sqlite3-2.1.0-arm-linux-gnu.gem
42ec543f593e0b3ddb5a944e15ede59dea3cc35acb27639e67bc6f819b1b5bcc sqlite3-2.1.0-arm-linux-musl.gem
aea47c58078c274ca83195ce1686ee22c4641eb60ccab12918500e78c4babb4f sqlite3-2.1.0.gem
0c7505899d8754c4cd73b02f0aec88028a0f282cdb426f3b2e5fa2c9dafd0dce sqlite3-2.1.0-x64-mingw-ucrt.gem
e2be8fad85b6aee16f83baad378b3b3ab992c904e98592cccfd845ad56f4da1f sqlite3-2.1.0-x86_64-darwin.gem
8993191e8304386d6a9bd76fe9ed161f323ddf857cc06f7f77a31e8b6ccb4d34 sqlite3-2.1.0-x86_64-linux-gnu.gem
cd6b7e6701b1110f033d3dbd156ac19bca011ed4e976c7897b402d578720b9c3 sqlite3-2.1.0-x86_64-linux-musl.gem
1a092fbe4b6cbf20bbeec239c95b8b9caa0d9faa0ad2431fa46ababcd3d91718 sqlite3-2.1.0-x86-linux-gnu.gem
ea377977a07031a6215a2d5ed1e0bd7fb77da0cbbca1af145533b10e0e11bc02 sqlite3-2.1.0-x86-linux-musl.gem
2.1.0.rc3 / 2024-09-18
prerelease 2.1.0.rc3 / 2024-09-18
Improved
- Allow suppression of fork safety warnings. [#566] @flavorjones
sha256 checksums:
e4cb283be8178c21583a808111f11289b424c237b909e7f42ac94ba2878a45b0 sqlite3-2.1.0.rc3-aarch64-linux-gnu.gem
a8d107a6701109cc00cbd9fe5a893236951776b7d03aa054c2b692ba06dff77a sqlite3-2.1.0.rc3-aarch64-linux-musl.gem
5560636c301b6a71a22a9483c2576ed978eb4ece618002dc2ea8cf0221375317 sqlite3-2.1.0.rc3-arm64-darwin.gem
dc1a04410ec6f0bc959769bf272f69c7b167e33fae8030717d3ab7634fddf160 sqlite3-2.1.0.rc3-arm-linux-gnu.gem
3dfcf5e036e2297ed07ca8af10a0cd6ab054fd487b716e54d55525505b9a6aa9 sqlite3-2.1.0.rc3-arm-linux-musl.gem
f40e8329a4418644d205eb7b98adc18ea0567dd2397c799dd47bb67761d0ffe6 sqlite3-2.1.0.rc3.gem
17d6ae329b11e52a23691986e76d8d03443b4b4eae7302b83045b80697151e5e sqlite3-2.1.0.rc3-x64-mingw-ucrt.gem
431b1eb401b036063b5f108269ceff5c711161759456d1f011b19b145ca38fcd sqlite3-2.1.0.rc3-x86_64-darwin.gem
f7cb855b5908b600765971500ecd201828e91c530cca4c3213b2717028f1a2db sqlite3-2.1.0.rc3-x86_64-linux-gnu.gem
0cd1fab6e8b3996291075125eac6ea321e73fe829a2bad1efffdf6ac172e1d3b sqlite3-2.1.0.rc3-x86_64-linux-musl.gem
dc9055ed291c3d8342a8d4b9953354fbca6aaab122ccc25b4b0e6b8ed42de59d sqlite3-2.1.0.rc3-x86-linux-gnu.gem
555d45a8739d2f4df6b2fb9c6bce5737879a67bc7bdc2973b70873381b3d3adc sqlite3-2.1.0.rc3-x86-linux-musl.gem
2.1.0.rc2 / 2024-09-18
prerelease 2.1.0.rc2 / 2024-09-18
Improved
- Address a performance regression in 2.1.0.rc1. See [#565] @flavorjones
2.1.0.rc1 / 2024-09-18
prerelease 2.1.0.rc1 / 2024-09-18
Ruby
- This release drops support for Ruby 3.0. [#563] @flavorjones
Fork safety improvements
Sqlite itself is not fork-safe. Specifically, writing in a child process to a database connection that was created in the parent process may corrupt the database file. To mitigate this risk, sqlite3-ruby has implemented the following changes:
- All open writable database connections carried across a
fork()
will immediately be closed in the child process to mitigate the risk of corrupting the database file. - These connections will be incompletely closed ("discarded") which will result in a one-time memory leak in the child process.
If it's at all possible, we strongly recommend that you close writable database connections in the parent before forking.
See the README "Fork Safety" section and adr/2024-09-fork-safety.md
for more information. [#558] @flavorjones
Improved
- Use
sqlite3_close_v2
to close databases in a deferred manner if there are unclosed prepared statements. Previously closing a database while statements were open resulted in aBusyException
. See https://www.sqlite.org/c3ref/close.html for more context. [#557] @flavorjones - When setting a Database
busy_handler
, fire the write barrier to prevent potential crashes during the GC mark phase. [#556] @jhawthorn
New Contributors
- @jhawthorn made their first contribution in #556
- @rickhull made their first contribution in #562
Full Changelog: v2.0.4...v2.1.0.rc1
sha256 checksums:
581e71a914d20c5fe393854f0197391b8df0e68d4c1db06cba5b29ed0dde6a9b sqlite3-2.1.0.rc1-aarch64-linux-gnu.gem
b81cf70e7e78ef22efa9770a6a9589384e269724af3ea15c357b3d76c10d6861 sqlite3-2.1.0.rc1-aarch64-linux-musl.gem
e4cf6892d9459fc0f5afb6f133a93a23df78ee4102f3145d3b89f5130bb6e069 sqlite3-2.1.0.rc1-arm64-darwin.gem
194385869744cec0a61607829d2620156157d246ec2b3a5419986fb783e5e45f sqlite3-2.1.0.rc1-arm-linux-gnu.gem
eb0b281ba86e6e0ebd933dd1b9c0d83171b2b900dac3b8d311189e9d8bbf94e8 sqlite3-2.1.0.rc1-arm-linux-musl.gem
e394e30406995c47eccae3a957adb4fb27632dd1cc09127d163d182b7ba46cf0 sqlite3-2.1.0.rc1.gem
04edd5816041a611bcde70dd42aa0f1d8cfa2c32beb7b934b80234dc84668449 sqlite3-2.1.0.rc1-x64-mingw-ucrt.gem
f4fb75d456547fbc88df4d2c8699e42ea1011a00addfe7b69f9d018bb820982b sqlite3-2.1.0.rc1-x86_64-darwin.gem
a741c973c3ad2ae2d37e0acd0851c1a6942f3c0d1a0646ff60ce624cc261eb4e sqlite3-2.1.0.rc1-x86_64-linux-gnu.gem
f26b906629825107b12ce075db5eca4f7a446bf5147b4c51961847bb23a28d8e sqlite3-2.1.0.rc1-x86_64-linux-musl.gem
498112a306a5bbd642a39c0a1744b6329a6dc773550064c3dcdf7dea4aa88c6c sqlite3-2.1.0.rc1-x86-linux-gnu.gem
b1dd36d98896ff736fc4af3af170b3341439f18625c579f43c8f3b19165028e4 sqlite3-2.1.0.rc1-x86-linux-musl.gem
2.0.4 / 2024-08-13
2.0.4 / 2024-08-13
Dependencies
- Vendored sqlite is updated to v3.46.1 @flavorjones
sha256 checksums:
60437450d483a1b9716e699c3a6ad91eb623808ea501bfa0330512c983c97291 sqlite3-2.0.4-aarch64-linux-gnu.gem
8bab69599cbab225eac97ba9ce6948bc4fd5dd891d90f64e128881f5ef999891 sqlite3-2.0.4-aarch64-linux-musl.gem
eea5985bad8d47712bfd0838b162409fe4e30efca8c1deb1de736a1af7a496d0 sqlite3-2.0.4-arm-linux-gnu.gem
3118f35b7ab5dc065e003f76657874cb031a4cff3bd0d67bfc095e4ae7bc92fb sqlite3-2.0.4-arm-linux-musl.gem
e2be5cb97b389a92dd02fd87c5553e8e85102a28768da7008ca1e41d85396c13 sqlite3-2.0.4-arm64-darwin.gem
63bc85893b6cff327fec7904cca5ac05be9d7c2bde30e41b196a28eca7beb4f4 sqlite3-2.0.4-x64-mingw-ucrt.gem
e2abc8029a97e0b418b2c130b4a81b370951c5bdf69e910abe7e3808e18bac6a sqlite3-2.0.4-x64-mingw32.gem
cf43867d510793c3cb6115a4706c2fa5c1073f456ef655e64dfd2ccb37c3bb3e sqlite3-2.0.4-x86-linux-gnu.gem
97501d4cdc9d15b44cc690fd2e4154b0f6fee7c4c4f5905f05987a533d8b7512 sqlite3-2.0.4-x86-linux-musl.gem
0c1560504084a110f7a1b1739eb1335a666f20b9936779a0bd3f6ff98d40ae58 sqlite3-2.0.4-x86_64-darwin.gem
0804631fc8ec95727670aefc83db0544dd5a919dc46a08c86357ac6c66e0da88 sqlite3-2.0.4-x86_64-linux-gnu.gem
20909e1855b9f7cf202d90f000ab99ace13f00e7ed70cdb524043c778bf6382a sqlite3-2.0.4-x86_64-linux-musl.gem
aace56b02b3932efa2e25d3dec6f7fb67b65f9df8266aad3ba4fdc4fe520918a sqlite3-2.0.4.gem
v2.0.3
2.0.3 / 2024-07-29
Improved
Database#quote
avoids allocating strings where reusing frozen strings is preferable. #548 @casperisfine
sha256 checksums:
0fc2755c34ae241dcb79563af862d642324e6efcfcd64b2fe271254c7c902ad7 sqlite3-2.0.3-aarch64-linux-gnu.gem
e0c2b322e747ef16eb18168c53682ac374aab3fd92e745f0b6023418b5e914ce sqlite3-2.0.3-aarch64-linux-musl.gem
f1345ad1ccddf1c758921af527816c0b0dd7edc736020ecc9fb4bb4ccf6aaba3 sqlite3-2.0.3-arm-linux-gnu.gem
c94b7955e2615d71f81076cb5498eb8637e838c1a450f740aad0e2b4fdfbab17 sqlite3-2.0.3-arm-linux-musl.gem
ac5e7bd0f84ff8287d5a71a66b4e2e79785901e589a5a853f04be950fba6b18f sqlite3-2.0.3-arm64-darwin.gem
032075d9e4baac4f8240a363d09a72e4441bc87d71c964febb2de8345dbc111f sqlite3-2.0.3-x64-mingw-ucrt.gem
a07b8244d1c446f73cfa294da5577f6700892ccbcebf0d2286f5fde27faa46e6 sqlite3-2.0.3-x64-mingw32.gem
91a02ef005512cdbe91a709146be2f0a6843fac8dc28f32eba5b95af23406d8a sqlite3-2.0.3-x86-linux-gnu.gem
d15330440c4a4136a42bd03821996cf629b0d2921c5fd314b9e35ecdb6c96ba5 sqlite3-2.0.3-x86-linux-musl.gem
256e681716bda9f3d26dd438db12fc8f588f8dca4a5f7333e2aee86b2932d124 sqlite3-2.0.3-x86_64-darwin.gem
8adb0417c96e49ba70b0e9fe3fd1052d3e18dbc71098c78ea66acd10c17522ea sqlite3-2.0.3-x86_64-linux-gnu.gem
5e3049d1c8d252cbe7d344b8ee9c63ca77c7c206a1c98d2344854533e6f1c4b7 sqlite3-2.0.3-x86_64-linux-musl.gem
182dbeddea1fc27cdee94f19f1c0ad42565bf65c24193f488eb2c33184b722d0 sqlite3-2.0.3.gem
2.0.2 / 2024-05-23
2.0.2 / 2024-05-23
Dependencies
- Vendored sqlite is updated to v3.46.0 @flavorjones
sha256 checksums:
64296bb750efa19c4249136c2289799a4ac044116b7cc095784dc56358964dc1 sqlite3-2.0.2-aarch64-linux-gnu.gem
cc62889120bb62c98b513fc2b5fc91da944ed7e139efcc4a85fe1d03258462e3 sqlite3-2.0.2-aarch64-linux-musl.gem
29f74fb1af530ea4d1826efa8cb369ea11e476fd885843bceb191ef000c62695 sqlite3-2.0.2-arm-linux-gnu.gem
bbacba2099fe6084b073d4d4e23e54823345a8d2e98800380036fe7ae3323092 sqlite3-2.0.2-arm-linux-musl.gem
184e28292d46feea9132cd936bfe01d47a08a6d7839bc4c5eb3f09b9bed2e770 sqlite3-2.0.2-arm64-darwin.gem
c8144a1f4e2eea742fb4a4fdc9d0ba674c4e787ebb582671b8b69739f9fed191 sqlite3-2.0.2-x64-mingw-ucrt.gem
1c39e02dbb8099215e74a816d6d375136cc9851cf6833248b9cd888e022d627e sqlite3-2.0.2-x64-mingw32.gem
1b92d4b4e54ba0245bc5d16415891e697766d62eb188fc173356e03f03881d78 sqlite3-2.0.2-x86-linux-gnu.gem
b256dbdb7117d60a0171df875fc2e07d001f03699bf12a196bf6f415b068643d sqlite3-2.0.2-x86-linux-musl.gem
390c6284f89774cb228fb180b75ac54e5009b0aa24c72f18ad07465635029ea8 sqlite3-2.0.2-x86_64-darwin.gem
15dbf6f47755acb063c5b71a2dd6c65ba582eab3e0d9d4e95cde737120333efb sqlite3-2.0.2-x86_64-linux-gnu.gem
5b7867dee7401c80db616828c31e5e20963c1dd7d4682757c9cc5aaba627b36c sqlite3-2.0.2-x86_64-linux-musl.gem
326e53ffb89d050eb00274945078ff7af9026594a7031874af4e9f172cf6154d sqlite3-2.0.2.gem
2.0.1 / 2024-04-20
2.0.1 / 2024-04-20
Fixed
- Raise
ArgumentError
ifDatabase#execute
,#execute_batch
, or#query
are passed multiple bind parameters that are not in an Array. In v2.0.0 these methods would silently swallow additional arguments, and this change makes the failure explicit. See the CHANGELOG notes for v2.0.0 for examples on how to update your code. [#527] @flavorjones - Fixed a regression in v2.0.0 that caused
Database#execute_batch
to raise an encoding exception when passed some non-ascii strings. As a result of this fix,Database#prepare
now ensures the "remainder" string will always be encoded as UTF-8. [#524] @flavorjones
sha256 checksums:
752cb885faf5e5d80b2fda5601b1168f1461e2e63e18c62cab8cf32fc4b05d8e sqlite3-2.0.1-aarch64-linux-gnu.gem
637f90e5ec6d30b34fc49d7acc50b0f569d8c58699c2157e818e5e99c2594fcf sqlite3-2.0.1-aarch64-linux-musl.gem
0ff1acf7e110c7bbfd140682f14926c5b2e84fe01620dc19ab4f6de1deadc1fd sqlite3-2.0.1-arm-linux-gnu.gem
09d9f9723683a97a9454f593eecbf6c029670c4c0f7059fcfa62eb12e3d47b93 sqlite3-2.0.1-arm-linux-musl.gem
0efb2ca9d6c184c9960322b2a32ec86355f523b50089b0f26147b2abdfc94583 sqlite3-2.0.1-arm64-darwin.gem
937cc0c0668565c863c0e1736e3172726729a210a1a8fb59b857509ffd6ca835 sqlite3-2.0.1-x64-mingw-ucrt.gem
ee01997371e3dc3495f46dec9f1667a49fe65fe8f635edcd203048d639aa0948 sqlite3-2.0.1-x64-mingw32.gem
bf395f9b713811eb5d068056df986531038f79b5a3d49dfa42b1ac164c937c3b sqlite3-2.0.1-x86-linux-gnu.gem
3082b2a19bfd7e33539c407adc646c58e5985b6344e192f715f04bb65cc82727 sqlite3-2.0.1-x86-linux-musl.gem
9fd4ee3d3aa6f1a4703abe0a5d247f31ae2757cb6a3be89664dfb714ba55d5b4 sqlite3-2.0.1-x86_64-darwin.gem
97cd463ea0f7e31e85814918ab70ebf4ca87b2b829d4664ea2787a39a6c4ffa6 sqlite3-2.0.1-x86_64-linux-gnu.gem
f6d1d84a49df5ba11a99998ee76dc004eeb3e4129037126ed085833cf471edda sqlite3-2.0.1-x86_64-linux-musl.gem
6c5ff93b951ce521d8b3c6d05df46a15d97ec241c6cff5950c1a628ff7957922 sqlite3-2.0.1.gem