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
340e9e125b
Enhance the "rbu" command line utility a bit.
...
FossilOrigin-Name: 61eb516f83d1a7fe44f72bebe2a2745ab904a02e06e38fb6d932348c49607976
2018-04-20 20:37:25 +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
dan
fc50a71be1
Fix a test script problem causing rbuvacuum.test to fail when run along with
...
other tests.
FossilOrigin-Name: 901cb3b6a2c8d0cc33bd34ec1dbeea49c779ae1ac3ed6733dd9826c8e0eb80c8
2018-03-22 17:02:37 +00:00
dan
5e9bbe1924
Add test cases for running multiple RBU operations within the same process
...
concurrently.
FossilOrigin-Name: 407b5ed35c178bb0dbc69c8b902652038a0653d55a58a7543f9d4857c6baf3ea
2018-01-11 16:16:03 +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
f48d4ef8bc
Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h.
...
FossilOrigin-Name: d8637badf63b90b650e9d6dc970c7e1ce46669ce8272f46f01fac9bd97c1b0fc
2017-08-03 15:50:10 +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
mistachkin
885f410472
Remove some 'breakpoint' commands in test files.
...
FossilOrigin-Name: d14fc621e918915bbf8e04597eb238ea78dff3d9c5eb4402cb88692d00dbdfee
2017-07-19 18:01:42 +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
mistachkin
b1ed717f18
Make USE_FULLWARN=1 the default for MSVC and fix harmless compiler warnings.
...
FossilOrigin-Name: 6bf673767b8e5cedef1acff795cbe524fab8db2525c06424db4e038934a33936
2017-04-14 14:50:34 +00:00
dan
1ba30db8bd
Remove the rbu_round_trip.tcl script. It is now part of project "test-dbs".
...
FossilOrigin-Name: b5bf2957677e8f2acd7426b302229a966de08fd9
2017-03-10 18:36:34 +00:00
dan
5cc95ebf37
Add test script ext/rbu/rbu_round_trip.tcl. Uses "dbselftest" to test that
...
"rbu" and "sqldiff" work together.
FossilOrigin-Name: 961e79da73b4550b3e5b0f9a617133a76485db67
2017-03-07 20:03:25 +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
e24452edef
Avoid using the "direct overflow read" optimization to read large blobs if the
...
pager layer has a wal file open - even if the database header indicates that
the db is not a wal database.
FossilOrigin-Name: b54c15f11796a75683eec4b502a22ccb87d621c6
2016-10-21 10:49:39 +00:00
dan
12c56aa452
Fix a bug in sqldiff causing it to confuse blobs zero bytes in size with NULL values.
...
FossilOrigin-Name: 264e9c75875796cad773d39b775d4604546bc57a
2016-09-12 14:23:51 +00:00
dan
e5a0cfa161
Have "sqldiff --rbu" ignore rows with NULL values in primary key fields. RBU can't handle such rows and the documentation already says sqldiff ignores them. Because the code now uses "=" instead of "IS" to filter on primary key columns, diffs on virtual tables are faster now too.
...
FossilOrigin-Name: f4ba894a86aa195bcbe2fa69e91cd870ec3fb577
2016-09-01 14:03:28 +00:00
drh
2e5c5052fd
Fix typos in comments. No changes to running code.
...
FossilOrigin-Name: a07269f2a0f87e0b736127f528f6caf3b63f9052
2016-08-27 20:21:51 +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
mistachkin
c08556844e
Add macro necessary for building several extensions when the __stdcall calling convention is not in use.
...
FossilOrigin-Name: bc8c9b55ddf5227dc6b2116486f4a19bf54fce2b
2016-07-29 01:31:49 +00:00
mistachkin
afe18262b4
Use the SQLITE_TCLAPI macro in several extensions that were missed in the previous check-in.
...
FossilOrigin-Name: df2543652b835353c03956dfbd3e35e5b191372e
2016-07-28 23:54:45 +00:00
mistachkin
52b1dbb5fc
Allow the 'testfixture.exe' target to be compiled with the __stdcall calling convention.
...
FossilOrigin-Name: e8be3dfeabaa31b3490793cf8230faae1204be15
2016-07-28 14:37:04 +00:00
dan
12ca5ac3d2
Fix a problem with upper case module names in the "sqldiff --vtab" command.
...
FossilOrigin-Name: 87e25fc472604b3978811be53991104c665a95e7
2016-07-22 10:09:26 +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
dan
9c987a833c
Update the sqldiff utility so that if the --vtab switch is specified "rtree", "fts3", "fts4" and "fts5" tables are diff'd directly and the underlying real database tables ignored. Without this switch, all virtual tables are ignored and the diff is performed on the underlying real tables.
...
FossilOrigin-Name: 5d0a9d4c45730e47576bc77373fa7075a74051a5
2016-06-21 10:34:41 +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
303a094466
Add the -vacuum switch to the "rbu" demonstration program.
...
FossilOrigin-Name: 9a0078a538c7e73a009960347b8953c5af99fefd
2016-04-18 09:17:05 +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
febfe02300
Update the sqldiff tool so that it generates an rbu_count table.
...
FossilOrigin-Name: 1f7afb6e9be9f549a91bf2ab492df15698df89fd
2016-03-19 16:21:26 +00:00
dan
f11737fcc8
Merge latest trunk changes, including fixes to test script rbudiff.test, into this branch.
...
FossilOrigin-Name: 734fc68fb12f06e97026d4637138b82b37809f5b
2016-03-19 15:34:42 +00:00