dan
4baf43ff64
Add the "static" qualifier to some internal functions in code for various SQLite extensions.
...
FossilOrigin-Name: 8c986782547211098eb0e4e722eda0097421223af279381373d0055211b5e9d2
2021-12-01 11:03:50 +00:00
dan
1182e2ac7d
If the target database URI passed to sqlite3rbu_open() is contains the option "rbu_exclusive_checkpoint=1", hold an exclusive lock for the duration of any incremental checkpoint operation.
...
FossilOrigin-Name: 7cb77296a22a87e7ed4c3544792f0204f704f01f384590c32c256bec4517c9bc
2021-11-05 19:04:01 +00:00
dan
b419452c7e
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB.
...
FossilOrigin-Name: 087b8b41c6ed76b55c11315e7e95679d67590be20ae21108b593d00bb7d1c57a
2021-08-06 20:17:39 +00:00
dan
fd779e2fa1
Avoid using LIKE with the target db in RBU. It is possible the user may issue "PRAGMA case_sensitive_like = 1" or override the like() user function, causing RBU to malfunction.
...
FossilOrigin-Name: 7cbd8cd5aa768a0b72f769fa390fae1158d1dcfac5273b9d0238ecf2f52e273d
2021-08-04 11:29:18 +00:00
dan
01ec691979
Fixes for cksmvfs and rbu so that they work together.
...
FossilOrigin-Name: f35f6972cdcf16915cc37908b65a3780742a1f75f65e974714b16e86f0c9e3f0
2021-05-06 20:47:49 +00:00
dan
513c9a1ff3
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing.
...
FossilOrigin-Name: cb5bdf82fe0f90922dc34202be9d0aa34d899afff4200456623765da2877ca41
2021-02-10 19:40:47 +00:00
dan
8737d46ea1
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS.
...
FossilOrigin-Name: bd1e9e0a4c0e07901ef59fe3b7e6f7b9cc66ccfcd5192f576e1620820891de99
2021-02-10 17:31:50 +00:00
drh
067b92ba00
Extend the refactoring into extensions. Clean up stray newlines.
...
FossilOrigin-Name: 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b
2020-06-19 15:24:12 +00:00
drh
8080403e44
Redesign for better legacy compatibility. Add the sqlite3_uri_key() interface.
...
FossilOrigin-Name: bcb43d11c4d0be36888c9e968ccdf85e7d7fccd72a29866f85c014e0562d4b93
2020-01-11 16:08:31 +00:00
dan
879f1a1ea6
Fix a bad interaction between RBU and [df51ae19].
...
FossilOrigin-Name: 0b9d8a1202c4220fd2ef299b6194533c1bf4018a0cd2d13da7e22c1a7de05ffa
2019-12-20 20:03:21 +00:00
dan
b8a8d523cb
Fix a problem with RBU function sqlite3rbu_bp_progress() when used during an RBU vacuum.
...
FossilOrigin-Name: 8c44b02f1479cec61554800702a3c1d806e4ee64b41ba2af17320f62794a02fe
2019-08-13 15:11:25 +00:00
drh
3728b84c03
Fix more compiler warnings.
...
FossilOrigin-Name: 1b85442b614df0808c10c34ec281282e5dfd93d6d5f9737b51263ffaa4da5c72
2019-08-09 01:11:32 +00:00
dan
b8293a5bee
Update RBU so that it supports indexes on expressions.
...
FossilOrigin-Name: 6bfa44da226fd758a2ee924d1e8e3a742b0635b6d3f922a4a7919cb14b2418e6
2019-07-26 20:33:23 +00:00
dan
dff1d5b61b
Fix RBU handling of partial indexes with comments embedded in their CREATE INDEX statements.
...
FossilOrigin-Name: e1ccf211aa975a6688a27f7dc4cea80784ed8dcfe1950b2fa6eb0a3cb938838a
2019-07-26 16:16:31 +00:00
dan
90255b8149
Add tests for the RBU module.
...
FossilOrigin-Name: a194e53670e25a48c2bb51b54755abff88ed6ae2596c5858fb4aac16cb452bdf
2019-05-10 20:44:10 +00:00
dan
ad5536fca1
Add another test case to cover a previously uncovered branch in the RBU module.
...
FossilOrigin-Name: 30392985612c51d4583a905f8fe766f08cd31b86d0e30a977adc6a6705649e00
2019-05-08 21:14:48 +00:00
dan
42e84ae1ab
Add tests to improve code coverage of the RBU module.
...
FossilOrigin-Name: ecb56b75a0e66462acdcce285b93f9fc56944c42902d886d6bada419059519a9
2019-05-08 18:49:51 +00:00
dan
126537e1dc
Remove some redundant code from sqlite3rbu.c. Add test cases for RBU vacuum.
...
FossilOrigin-Name: 7b051698d8a763d9db190fd662931266d24a4982f34f100a28641934c222e37b
2019-05-07 16:28:50 +00:00
dan
57c4514720
Optimize further cases of restarting an RBU vacuum.
...
FossilOrigin-Name: 6b3261bfa1d762aa29a57244a30cf5e35655f1fe9c30ee682c186dec29d7a2c2
2019-05-06 20:40:23 +00:00
dan
c245855702
Optimize some cases of restarting an RBU vacuum.
...
FossilOrigin-Name: cdc09867ed6522026ae7bfac1f59cd79b60fba6d07d49b99b030a501a7059ee4
2019-05-04 20:04:42 +00:00
drh
f6ad201ac2
Fixes for harmless compiler warnings.
...
FossilOrigin-Name: c28c973ad6debd63f13e5d4d3da036f680baaec9d863eda039f2747db9f1cfd5
2019-04-13 14:07:57 +00:00
dan
971194aca3
Fix RBU so that it does not write rows that should be excluded into partial indexes (corrupting the database).
...
FossilOrigin-Name: 31eb27f438ad727b095a518bfe0f7ed37cb806fc1e6929b821eddcc6cc9de260
2019-04-11 16:54:20 +00:00
drh
6d7f18d60c
Fix a potential memory leak in RBU if the rbu_fossil_delta() SQL function is
...
misused. Misuse never happens in a working RBU system, so this is not a
particularly important fix.
FossilOrigin-Name: 12517d1b15da46bc90bd95bb9c161d7f2ecdd7f28b1b3a5ed4397939ef986061
2019-02-19 17:45:31 +00:00
dan
0d756cc83a
Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made
...
on an RBU vacuum handle.
FossilOrigin-Name: bef216dfa1456a787e3d9c74936ee1c6600827d4e252bd13e7a93046ce07469f
2019-01-03 15:17:01 +00:00
dan
dc6214ee39
Fix a problem with using "<db>-vacuum" (the default) as the state database
...
when resuming an RBU vacuum.
FossilOrigin-Name: c878d741733a897d47a1a0b57b454bc9095ce302b48cc01089336d5d20e2a24c
2018-12-10 08:41:32 +00:00
dan
49f84ce1cd
Speed up xAccess() calls made on an RBU VFS when there are lots of open
...
connections.
FossilOrigin-Name: 310b4b65b8c8ee080760c7efb4c7e20244c6063a5dba37a4f40490105aafd29f
2018-10-01 17:33:35 +00:00
dan
2b137d65f5
Fix an RBU problem causing spurious SQLITE_CONSTRAINT errors when restarting
...
an RBU update in which more than one source table writes to a single target
database table.
FossilOrigin-Name: 564ae8297d417ba4b7978e430d41f125007177673163f6ed9adc3a3974f73d24
2018-04-28 18:20:01 +00:00
dan
516c35a72a
Fix an RBU problem causing errors when updating tables with default collation
...
sequences that require quoting (e.g. COLLATE "ICU_root-u-kn-on").
FossilOrigin-Name: eb4f452e354065d610ff57a6a9312ad119b6b0cc467f9dff105f0718bc27ef01
2018-03-22 17:13:44 +00:00
drh
5aa1e7cd30
Disable the delta checksum verification in RBU by default. Reenable it using
...
-DRBU_ENABLE_DELTA_CKSUM, if desired.
FossilOrigin-Name: d22c99b6ba997179ef3ccd341d9c36d5213d699305d15942d82587a0bfd16f9d
2017-10-05 11:29:37 +00:00
dan
f21124f251
Add experimental API sqlite3rbu_temp_size_limit(). For limiting the amount of
...
temporary disk space RBU uses.
FossilOrigin-Name: 7fdd629830679db620d477df3c206bf84598cc935ccb51547c0d8444a186b63e
2017-09-05 16:24:38 +00:00
dan
0c2e5cfda5
Fix some problems in RBU test cases. Also update RBU source code to better
...
handle the trivial case where an RBU update is applied to a database zero
pages in size.
FossilOrigin-Name: 7676b39bc120ae23da0c6a14452eb99a58901ee45c3d43b8beae426f9e4dc0c3
2017-08-03 15:43:55 +00:00
dan
2ebf8f474e
Fix sqlite3rbu_close() so that the pzErrmsg parameter may be passed NULL.
...
FossilOrigin-Name: c433672dd8ab625628bde2f4f40a2dc000ed915dbe91833d3f753d8ab51baf25
2017-06-13 16:52:34 +00:00
dan
0e9b43ff85
Before beginning an incremental checkpoint in RBU, sync the directory
...
containing the target database file. This ensures that the new directory entry
created by renaming the *-oal file to *-wal is synced to disk.
FossilOrigin-Name: 915a9a28783fbb2f4c0794eb4264ce8c0b9d42f7
2017-03-03 16:51:46 +00:00
dan
1d62a66230
Fix another RBU case similar to the previous. This one for systems where the
...
sector-size is larger than the page-size.
FossilOrigin-Name: 4012bb3aa91927156ba149caa4e5c622b0729d79
2017-03-02 16:56:48 +00:00
dan
cb1b0a693a
When saving the state of an RBU update in the incremental-checkpoint phase,
...
sync the database file. Otherwise, if a power failure occurs and the RBU
update resumed following system recovery, the database may become corrupt.
FossilOrigin-Name: edee6a80e1cc7e6a2b8c3c7f76dd794fc8ab9a72
2017-03-02 14:51:47 +00:00
dan
25fd2e247b
Fix a problem that could cause a spurious SQLITE_NOMEM error when attempting
...
to resume an RBU operation if the previous client failed right after
completing the incremental checkpoint. Also a "cannot vacuum wal db" error
that could occur when resuming an RBU vacuum if an error (OOM or IO error)
occurs during the incremental checkpoint.
FossilOrigin-Name: 681d96eb822e606da53700867191d4738bda20c8
2017-01-17 10:41:42 +00:00
dan
ef2f5925d8
Fix a problem preventing resumption of RBU operations after recovering from a
...
process or system failure that occurs during the incremental-checkpoint phase.
FossilOrigin-Name: 97914266cb4ec63b0c9185ab139673139bd2f0ed
2017-01-13 18:24:37 +00:00
dan
1bf4ca7c42
Add the "modeof=<filename>" URI parameter to os_unix.c - used to specify a file to copy permissions from when a new database is created. Also allow passing NULL as the second parameter to sqlite3rbu_vacuum().
...
FossilOrigin-Name: ed406d31ff54ee3de8db91690a966e5c561f8f94
2016-08-11 18:05:47 +00:00
dan
e336b8914c
Add the sqlite3rbu_state() API. Used to determine the current state (creating OAL, ready to move OAL, incremental-checkpoint, finished or error) of an RBU operation.
...
FossilOrigin-Name: 92e7df0ff5c4c118c63d92a767dc82700438a310
2016-07-01 12:39:58 +00:00
drh
c14566aff3
Fix RBU so that it builds with -DSQLITE_ENABLE_8_3_NAMES.
...
Fix "PRAGMA compile_options" for SQLITE_ENABLE_8_3_NAMES such that it reports
the numeric setting: "1" or "2".
FossilOrigin-Name: 0230ca17ba20ecd3d213788ad6891973d52a7b72
2016-06-13 19:58:46 +00:00
dan
82a1c0e5bb
Fix an issue preventing RBU vacuum from working with virtual tables.
...
FossilOrigin-Name: 3bd85fa5a9a489fd505c973e37c33a76c1b0e957
2016-06-01 10:37:50 +00:00
dan
ae20690e2c
Update the RBU vacuum code so that databases that use custom collation sequences can be vacuumed.
...
FossilOrigin-Name: 7dd48c10790a7b9c4165214399c261a0aa701297
2016-04-25 19:25:12 +00:00
dan
b7a208686a
If a call to sqlite3rbu_close() on an rbu handle opened by sqlite3rbu_vacuum() returns other than SQLITE_OK, delete the contents of the rbu_state table. This ensures that if an RBU vacuum operation either completes successfully or encounters an error, the next call to sqlite3rbu_vacuum() with the same parameters starts a new RBU vacuum operation.
...
FossilOrigin-Name: 6e4ac704f51bdd1e0b16814f6a45ab29f26400ee
2016-04-21 16:44:38 +00:00
dan
2e8bfb67d4
Fix a problem in rbu vacuum on tables with a large sqlite_master table.
...
FossilOrigin-Name: 23eac52e987996afe8db847921aef434cebd25b5
2016-04-21 15:26:26 +00:00
dan
94d49697b5
Add a documentation comment for sqlite3rbu_vacuum() to sqlite3rbu.h.
...
FossilOrigin-Name: da5c753ddac3cbfdf03710a82f5fd9fa2e29e819
2016-04-20 20:08:58 +00:00
dan
132dde5cdf
Add fault injection tests for rbu vacuum. Fix some problems revealed by the same.
...
FossilOrigin-Name: f042fdd1ea7febec7228e51efc2b0281805e196a
2016-04-20 17:47:52 +00:00
dan
1aea63032a
Updates to ensure the values of PRAGMA settings like "page_size", "auto_vacuum", "user_version" and "application_id" are not lost when a database is RBU vacuumed.
...
FossilOrigin-Name: 74ffea76b8c9ddd7699ce6ca77dce005bd7922ac
2016-04-19 19:27:09 +00:00
dan
46f0035b48
When an RBU vacuum is started on a db identified using a URI filename, pass the same URI parameters when creating the new version of the db. This ensures that RBU vacuum works with password protected databases.
...
FossilOrigin-Name: ca021ba88106500f347ed65199a4832bc9eb5ef8
2016-04-19 17:11:05 +00:00
dan
bff4b6367c
Detect attempts to use rbu vacuum on a wal mode database (not allowed). And attempts to write to a database in the middle of an rbu vacuum (which prevents the vacuum from resuming).
...
FossilOrigin-Name: 00b2f4b09ffca5156e43c4db2bfe0b2c979c49b0
2016-04-19 16:20:24 +00:00
dan
58e3812988
Another fix to rbu vacuum for a zipvfs case.
...
FossilOrigin-Name: 29407d70e44ad9ea5ddaf1011d0e212b602a3ddf
2016-04-18 21:00:01 +00:00