dan
ab1268f758
Fix test script errors causing problems on windows.
...
FossilOrigin-Name: 379c017e8f999c35e3b3de64fcc3923e45570ba20bee50a3dd00f6996990a033
2026-10-08 16:17:45 +00:00
dan
3a11beb10e
Change the way the session module applies changesets containing two or more UPDATE changes that form a dependency loop in order to avoid triggering ON DELETE CASCADE actions.
...
FossilOrigin-Name: 05acfd4dc9a31b9437b44cd8ca13df9f0c54d53af05d601bde537303dff92435
2026-09-29 19:42:37 +00:00
dan
5bd0f37f60
Add test cases to sessionchange2.test.
...
FossilOrigin-Name: e90a05f56f594da0af9c8af7aea91492fae5c66f3b16f5a12ca8db13eada5824
2026-09-19 17:20:43 +00:00
drh
9e0959ca03
Fix test cases due to improved error messages from this branch.
...
FossilOrigin-Name: 3a2f7fc4c6f37eb374166db1d352e12dacb694a52fd8aa0cdac61838700b4b6e
2026-09-19 13:35:57 +00:00
drh
30bc31907d
Update sessionChangesetFindTable() so that it honors the contract defined
...
in its header comment and always returns non-zero if the table is not
found.
FossilOrigin-Name: 72005af24ddebbee80a7bc5f802b2d745f8a99a2cc29a2ea3a37428162626b8f
2026-09-19 09:52:20 +00:00
drh
86a15af2b1
Improved handling of OOM conditions in the sessions extension.
...
[bugs:/info/2026-08-25T17:04:14Z|Bug 2026-08-25T17:04:14Z].
FossilOrigin-Name: ce2aa9f8495edfa361220c4702a54035e9df78984ce6c9fff40e04bd45cc3393
2026-08-25 18:40:50 +00:00
drh
48f575d0c0
Remove a literal 0x0d character from a sessions test script, using
...
char(0x0d) in its place, to avoid false-positive mixed-line-ending
warnings from Fossil.
FossilOrigin-Name: d0e4714aff80e74d16ed2d5b3a2186890ae0f801e9cef0199bb9ebc8de3c81ac
2026-08-20 15:59:53 +00:00
dan
64459c87cc
Avoid a buffer overrun when processing a strategically corrupted changeset. Report [bugs:/info/2026-08-16T10:15:25Z | 2026-08-16T10:15:25Z].
...
FossilOrigin-Name: 3f57024aecea0f3b565ed823cf94b085031c481fd6323c1f2e4319a53500864f
2026-08-17 11:31:59 +00:00
dan
67bf81a85d
Fix a problem introduced by [32c762bbb1] causing sessions module conflict handling to malfunction when used with a database handle configured with sqlite3_extended_result_codes(). Also ensure the "session_eec" permutation, which would have detected this, is run as part of release testing.
...
FossilOrigin-Name: 8b3da5d6cea2e3b31784f5e8f05c4801a3d881039aa26ecadf3a50b4454a3de6
2026-08-07 13:33:54 +00:00
dan
711af3d328
Return an error if a patchset is passed to sqlite3rebaser_configure(). This was causing a buffer overread.
...
FossilOrigin-Name: 887a29a8373bc3a5405df2288840c4918c045560a3a1de5303a4984eb4b40b50
2026-07-06 11:58:21 +00:00
dan
e7738a97c9
Avoid a buffer overread in the session module when an UPDATE change is rebased against a baseline that records fewer columns than the UPDATE. Bug [bugs:/info/2026-07-05T13:57:01Z | 2026-07-05T13:57:01Z].
...
FossilOrigin-Name: ea26bf3cd7fb1116a8a25e767c54a49ca153c29e243b68e523d79120c5832b1d
2026-07-06 08:36:48 +00:00
dan
c631da1fd4
Fix both a buffer overread and overwrite in the sessions rebase module. Bug [bugs:/info/2026-06-26T12:16:48Z | 2026-06-26T12:16:48Z].
...
FossilOrigin-Name: cc36f1741308ea354d540d27c89b92d69a0481885ca3463bdaf0b9ab27464d78
2026-06-26 15:04:47 +00:00
dan
6e3e557c81
Fix a potential 1-byte overread in sqlite3changeset_invert() when processing a corrupt buffer.
...
FossilOrigin-Name: 78eaa605cb6c14e5bd49a898b4c737957bd60c8714913cc2341f4ffe3bfe81fe
2026-05-26 15:03:30 +00:00
dan
18bee1617f
Fix a 32-bit integer overflow in sqlite3changegroup_change_blob() that could lead to a buffer overwrite.
...
FossilOrigin-Name: 8a289158e2baeee8aa5e601bde46b0482361064ede09e4108f519270efdd5f69
2026-05-26 14:18:50 +00:00
dan
f380599476
Add the SQLITE_CHANGESETAPPLY_NOUPDATELOOP option to the sqlite3_changeset_apply_v2/3() method. To disable the extra processing to commit changesets that swap two or more values subject to a UNIQUE constraint between rows.
...
FossilOrigin-Name: eba02092bcf1713a646ecf8febd53a83bc803cf1b17e2e4fc590c14d886a8d27
2026-05-22 14:22:14 +00:00
dan
de739c3450
Merge latest trunk changes with this branch.
...
FossilOrigin-Name: c6226d508d6af28fcd42fecd482014c3e284923871d3d8f5177f728cbf3457c5
2026-05-21 15:13:17 +00:00
dan
c597ed79d1
Fix a buffer overread in the session module that could occur when processing a corrupt changeset.
...
FossilOrigin-Name: 869a51ae84dfaaf824c872e4b3024f35eea7fa67bb584759a2d42ebf8404ef6e
2026-05-21 14:58:36 +00:00
dan
b869ed6b06
Fix a bug causing the session module to dereference a NULL pointer when applying a corrupt changeset.
...
FossilOrigin-Name: e807d4e3798efd532b3d78d1dfe513ed4fbd3cb793dd0ae5c30cae6031422b10
2026-05-20 15:06:34 +00:00
dan
d3dc8e5ae5
Avoid returning an SQLITE_SCHEMA error from within sqlite3session_diff() if the schema has been recently modified. First <a href= https://sqlite.org/bugs/forumpost/269f1e9cef >reported here</a>.
...
FossilOrigin-Name: 20110547a117912be68d91bc006e92c45beffde16c6bcdf062bf8971c9a9a864
2026-05-20 11:41:24 +00:00
dan
3ef3ecdf8a
Remove new unreachable code from this branch.
...
FossilOrigin-Name: 07f81e256fde5796c0d8bcedff8fad4368639386f40881c0844e9c86a69b6fad
2026-05-19 18:58:59 +00:00
dan
1a0555610d
Fix problems with error handling when applying changesets with update loops.
...
FossilOrigin-Name: f797925df05f1a53392dba416aa72067716bb6e38ebc679d313f8a98f89c5913
2026-05-19 18:28:03 +00:00
dan
079f8dc682
Merge trunk changes into this branch.
...
FossilOrigin-Name: e480e126fc1550948bd1a3635f0e3a862353dcd8b0f1921ab6e66d699110b477
2026-05-19 17:15:05 +00:00
dan
4da2ddf50e
Avoid a potential 1 byte overread in sqlite3changegroup_add() when processing a corrupt changeset buffer.
...
FossilOrigin-Name: 4d8c3a2919dc942a0a044ec7582a688e0f93e91f4a465bb94390fbe3ad1b50b4
2026-05-19 17:12:39 +00:00
dan
a497743e24
Fix a problem applying changesets that contain multiple UPDATE constraint loops.
...
FossilOrigin-Name: 8e89aafab1b8fa7d59ac98c39b7f1c1cc23a98ba868a5dac83dee63688786a3f
2026-05-18 20:34:56 +00:00
dan
4dd11e33e4
Update the session module so that it can apply changesets containing two or more UPDATE changes that form a dependency loop - so that no single UPDATE can be applied independently without violating a constraint.
...
FossilOrigin-Name: 5f8010599fb33fbe1dadc894a679056a5d38040ab4f09772cd59827941e9348b
2026-05-18 18:59:06 +00:00
dan
cf632ddb7e
Fix the sqlite3changegroup_change_finish() API so that it correctly handles NULL being passed for the pzErr parameter.
...
FossilOrigin-Name: f81d6d7bc8943729f678a3b62921a96764b15b9cc11d8a5753e48210a1b59617
2026-05-13 20:37:30 +00:00
drh
9db9f18985
Fix harmless compiler warnings.
...
FossilOrigin-Name: a0d0b5aff51088699e5ad0a726c350d10744b1779acd9ee54232659fb4c352a4
2026-05-02 15:58:28 +00:00
dan
e2dbd0a578
Fix a single-byte OOB read that could occur in the session module when concatenating patchsets.
...
FossilOrigin-Name: 60d7cd625a6160ba1bc60fd00fab2e91e0deff42034c6864107c19330b35ea7a
2026-04-25 14:00:29 +00:00
dan
1b14a925dc
Have the session module detect some corrupt changesets earlier.
...
FossilOrigin-Name: 0de91ff0d798cff21289d893cc441b89fc37b051d5cdf611d92d3ae2bc41cdf2
2026-04-14 20:17:41 +00:00
dan
839433d457
Handle a special case of a corrupt changeset in sqlite3changegroup_add().
...
FossilOrigin-Name: 49b3bac482c831f503c7f90c35959e7ea731950e991baba86b2ab95987d2539b
2026-04-14 20:02:49 +00:00
dan
535b1f2875
Fix some buffer overreads that might occur in the session module when handling corrupt changesets.
...
FossilOrigin-Name: 8fcf92e15d87487703afc1129f3a89a8d4d72cb30d30a1a9151a5596473069bd
2026-04-09 05:33:19 +00:00
drh
217c590688
Fix Tcl9 compatibility issues in test_session.c.
...
FossilOrigin-Name: 1387b5819085146cafb0e8740410faaa48bfb5aefc78ff763aaa8e85744d48b3
2026-04-03 11:48:00 +00:00
dan
62f3150204
Fix a potential 4-byte overread in the sessions module when processing a corrupt changeset.
...
FossilOrigin-Name: c1c7e024c34da8eb0258ce552f3f81921280ccf0f1fea59374f381c0c7b43b74
2026-04-01 17:43:22 +00:00
dan
6e6598c8ff
Fix a problem in the sessions module allowing a NULL pointer to be passed to memcpy().
...
FossilOrigin-Name: 91ead3c62dd7b1db3fdfd318e3c35a42fb33e8fa2e347b682eecbff2f4e8677b
2026-04-01 16:11:47 +00:00
drh
d6226a9c27
Add appropriate headers to ext/session/sqlite3session.h so that the
...
documentation generator will pick up the API documentation for the
new one-at-a-time changegroup APIs.
FossilOrigin-Name: da514f10b7804fd0affaf0fd4b8089012288ba99c165ef4ab78ab28edd331211
2026-03-31 18:49:23 +00:00
dan
5e4fb95edf
Update this branch with changes from trunk.
...
FossilOrigin-Name: 716e62e3d1d6ff96f6e4906175818439103e9534e89bec4a86776265a04954b9
2026-03-31 10:52:00 +00:00
dan
71848d362d
Update session module test code to correctly use Tcl_Size instead of int.
...
FossilOrigin-Name: 619060c2267a889089bf5328ba83640806688164a096df8582a5cf91b173741d
2026-02-02 11:42:19 +00:00
dan
6f8f9fbe25
Fix trivial buffer overreads in the sessions module that could occur when parsing changeset blobs.
...
FossilOrigin-Name: 661878a62870023f7f54e8c591a0823dc457cb89780ab40c1891fb3d5e8f095f
2026-01-27 14:00:59 +00:00
dan
abdfd3312a
Update sessions module so that it takes the db mutex before, instead of just after, opening a savepoint when generating a changeset.
...
FossilOrigin-Name: 41bbd13d737d2b7879d906b6fa76df42c6ee142f1a7acdafd26da0063bc90baf
2026-01-14 17:52:27 +00:00
dan
c1975b6a6f
Improve some of the documentation comments for the new code on this branch.
...
FossilOrigin-Name: f352485db45a1280f91ec76f661b6dd50bb1d564b74bdff474c92e928860a47d
2026-01-14 17:02:22 +00:00
dan
de88171c4c
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: fae9f376b74ae688dbdb5c0838a38427258d3d14c29c5346a3549e56db79961a
2026-01-14 16:01:28 +00:00
dan
613cf76c2f
Add tests for edge cases in the new code on this branch.
...
FossilOrigin-Name: cd115f0f4437bf254058e40d70ba4e82e87227d2752695aa18f8431c3abc5c0b
2026-01-14 15:27:26 +00:00
dan
c289cf57a7
Allow the APIs on this branch to be used to create patchsets as well as changesets.
...
FossilOrigin-Name: 8699fe5b24c8aeb5e552aa7f4995f2b50dd33d1febd23ec1c07c8fc72497da72
2026-01-13 19:59:47 +00:00
dan
4b12a38ffb
Fix an OOB read in the sessions module that could occur while processing a corrupt changeset.
...
FossilOrigin-Name: 3c46295487f089a891f566cae43b67ce97794bb60645d5806285600e05eff456
2026-01-12 20:16:04 +00:00
dan
9f78d22870
Fix an infinite loop in the sessions module that could occur when processing a corrupt changeset blob.
...
FossilOrigin-Name: d98653bdbc9781970f1c5d66f69c81c93ad14549223ceae02e74c1b99ab05377
2026-01-12 19:13:09 +00:00
dan
817c509365
Add an API to the sessions module to add changes one at a time to an sqlite3_changegroup object.
...
FossilOrigin-Name: 27150a8c22dc5331efa9e97637eae3741682bc14ae993f0b7672ccc63c37f1f9
2026-01-12 16:39:27 +00:00
dan
9804ed7021
Avoid attempting to delete a file that is still open in sessionnoop2.test.
...
FossilOrigin-Name: 56f6d6c538fd4e0da8a7c4e4c4d1bd0b8cd83ffd126ae24daaf30fdf808e1a78
2025-10-06 17:52:52 +00:00
drh
b8a62d9da7
Add an assert() to fix a harmless compiler warning in the session extension.
...
FossilOrigin-Name: d77b8ad96c695594668cd7019c7f607fe5efa5474dde0ece8b621051cf88a0b5
2025-09-24 20:09:48 +00:00
dan
2c4008fe26
Add sqlite3_set_errmsg(). Use this in sqlite3changeset_apply() to return any error code and error message via the SQLite handle.
...
FossilOrigin-Name: e34eda113c8819df46c139ccf749b686c8bfdd399f59345c6d6be3736bdf97cb
2025-09-12 17:13:59 +00:00
dan
d968525382
Add experimental API sqlite3_set_errmsg(). Use this in sqlite3changeset_apply() to return any error code and error message via the SQLite handle.
...
FossilOrigin-Name: 4d5b60a1e57448f03af2a657fe7cdabb04ebaf9688d5cc700dd8f9892a5cba15
2025-09-12 15:02:47 +00:00