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
dan
beccf1d16f
Fix some zipvfs related problems in RBU vacuum.
...
FossilOrigin-Name: d76f4aaa4caab713460421bd27365a82ac986c20
2016-04-18 18:18:18 +00:00
dan
2bb5f4478e
Changes so that rbu vacuum works with zipvfs databases.
...
FossilOrigin-Name: bae7f875f476f6e01112751cb404fef42ba0a01c
2016-04-16 19:02:53 +00:00
dan
977cbe78b3
Avoid creating any extra files ("<target>-vacuum") when running an RBU vacuum. Ensure that the OAL file created is "<target>-oal", not "<target>-vacuum-oal".
...
FossilOrigin-Name: dc19aacc7e99213edca9bb57b5c11a8a1ac99113
2016-04-16 17:53:14 +00:00
dan
f89157653a
Add the experimental sqlite3rbu_vacuum() API function. For opening an RBU handle that rebuilds a database from scratch.
...
FossilOrigin-Name: 0216b48f28042ad86711e00802c2da8ce9be3044
2016-04-15 20:46:41 +00:00
mistachkin
77fac879d2
More harmless compiler warning fixes.
...
FossilOrigin-Name: ab69527c1608da0b668f3b49e967661dd99cc3d4
2016-04-12 20:05:06 +00:00
dan
fce07fb944
Fix a problem detecting invalid values in the rbu_control column of an rbu database table.
...
FossilOrigin-Name: a1132dd9027d1c6dd845be307eeb38e535393f2c
2016-03-19 17:09:30 +00:00
dan
eea627da9e
Add further tests for sqlite3rbu_bp_progress(). Fix a problem in handling WITHOUT ROWID tables in the same.
...
FossilOrigin-Name: 65e02368e2b6cec349ea71af5a456d6783b0d15e
2016-03-18 20:12:28 +00:00
dan
789780d8f6
Change the name of the new API on this branch to "sqlite3_bp_progress". Add tests and documentation for the same.
...
FossilOrigin-Name: 1a1b69e87eb7d18f76f5b733e44da75136a686b6
2016-03-18 18:56:45 +00:00
dan
fe485c0e56
Add tests for the changes on this branch. Fix a problem with calls to the new progress indicator API made after an rbu update has been resumed.
...
FossilOrigin-Name: bf82321724d3b0feb51e26d9b76090e03cc3964a
2016-03-18 10:29:47 +00:00
dan
e42195b044
Add an API to indicate the percentage progress of an rbu update.
...
FossilOrigin-Name: ffc58d2c2576a5b6e1c2c7112612c5760e711afd
2016-03-17 21:06:42 +00:00