Commit Graph

79 Commits

Author SHA1 Message Date
dan
54fc21438e Fix some problems with OTA and empty target databases, or target databases with the wrong set of tables. Also add SQLITE_FCNTL_VFSNAME support to the OTA VFS.
FossilOrigin-Name: 46119e8d8e391d8dea844352521b58415f7365b1
2015-03-05 16:21:20 +00:00
dan
2bd7ace54e Add comments to sqlite3ota.h to make it clear that passing NULL in place of a parent VFS name to sqlite3ota_create_vfs() causes the new VFS to use the system default as its parent.
FossilOrigin-Name: 158c1a48818a9abc001b9ea547167c2624a7bad3
2015-03-05 14:07:25 +00:00
dan
67d4b20c46 Fix a typo in sqlite3ota.h.
FossilOrigin-Name: 04087dec4c3db5f322eca289585525b7267ed4f8
2015-03-05 13:43:21 +00:00
dan
5b828f8c33 Fix building with ENABLE_OTA and OMIT_LOAD_EXTENSION.
FossilOrigin-Name: d6d21ff55228d3ffe6cdbb5755645b147806a1da
2015-02-23 20:09:50 +00:00
dan
04f121c187 Change SQLITE_FCNTL_ZIPVFS_PAGER to SQLITE_FCNTL_ZIPVFS.
FossilOrigin-Name: f7865b942834dd2f6b865336e08ba1adbf20612a
2015-02-23 15:41:48 +00:00
dan
5ebc83b1d2 Update the sqlite3ota_db() API to account for the fact that each OTA handle now uses two SQLite database handles.
FossilOrigin-Name: ef08ecceb7e237a01af6cc3141dccee09ffe9ae3
2015-02-23 15:02:13 +00:00
dan
882b8e0974 Improve tests for resuming ota updates following power failures. Fix a problem revealed by the same.
FossilOrigin-Name: 1cb675e5392f179516d8e7a52760922a6c7df4d0
2015-02-23 12:22:55 +00:00
dan
ee9fa4af15 Fix some problems with resuming ota updates if saving the state is interrupted by a power failure or system crash.
FossilOrigin-Name: 6d5ed70d0dbabe9c2ab2f2dba47747d17d937781
2015-02-21 20:08:25 +00:00
dan
92f55ceb70 Add some missing comments and fix other minor code issues in sqlite3ota.c.
FossilOrigin-Name: 718fd8b673d6557dd0eaad03e6a3332b5490afbf
2015-02-20 14:36:16 +00:00
dan
942b0a68ea Ensure the mutex used to protect the linked list of all main database files opened by a single ota vfs is allocated.
FossilOrigin-Name: 9c8682d6650a94e11f9bec5baff69ed9668874fa
2015-02-19 19:59:35 +00:00
dan
138bf3bc7f Update various documentation comments in sqlite3ota.c and sqlite3ota.h.
FossilOrigin-Name: 60e0a46b82dd9c704e8aa977d1ccdd73d388422f
2015-02-19 18:06:40 +00:00
dan
20ab217f93 Add tests for a couple of previously untested branches in the ota code.
FossilOrigin-Name: a3c1bc5d5e3f4b197f48cbbc240608e94bfc2b45
2015-02-19 13:36:02 +00:00
dan
7551c5c3e6 Add new file ota12.test, containing tests for applying ota updates to live databases with other active reader/writer clients.
FossilOrigin-Name: 0864d127fe42fc0db7ab30a3ebf74c0114095648
2015-02-18 20:17:14 +00:00
dan
e3e031ce85 Add ota tests to increase code coverage. Fix some minor issues in error handling within the ota code.
FossilOrigin-Name: 2b10c5d2b8b8b535d3dec0c68a777db16268e1e5
2015-02-18 20:16:15 +00:00
dan
d092df51de Fix a problem with OTA updates in the presence of database readers.
FossilOrigin-Name: 144bb29ffcbfe96dc10c0224113e73a80e89314b
2015-02-18 17:40:05 +00:00
dan
eadc772beb Improve test coverage of ota code a bit.
FossilOrigin-Name: a438fa6c9ad2fb1d78ac747172d07455d6381387
2015-02-17 20:49:42 +00:00
dan
f5fe23909d Add extra tests and fixes for ota.
FossilOrigin-Name: e0b7151962fedbcac975f2216fd6b33b995a8945
2015-02-16 21:13:19 +00:00
dan
5902352fca Add further tests and fixes for ota.
FossilOrigin-Name: 62dc1fffc38cb157c15105098749b6dd0198eb84
2015-02-16 11:48:34 +00:00
dan
c76c64f931 Move tcl test code from sqlite3ota.c to new file ext/ota/test_ota.c.
FossilOrigin-Name: f20779a6e890ba73bfaa904cefcf3a029b01fed4
2015-02-16 06:27:37 +00:00
dan
52800df9fc Change the way the "incremental checkpoint" function of OTA works in order to reduce the effect on the SQLite core code.
FossilOrigin-Name: b64a11a754dc56f3406d3b703531ebe9e4af4908
2015-02-14 18:58:22 +00:00
dan
01325e86e6 Merge the ota-update-no-pager_ota_mode branch into this one.
FossilOrigin-Name: 71887cd9b38def398d48eaf0ec34eeac3c7c5177
2015-02-11 17:05:17 +00:00
dan
a3cf4f7ccb Merge latest trunk changes with this branch.
FossilOrigin-Name: 0b63e8dcbaec5043e353734e684c2a46552a3409
2015-02-11 16:54:48 +00:00
dan
2e24971f2a Ensure that an error is reported if an attempt is made to update a wal mode database via ota.
FossilOrigin-Name: 6fc5d4d26a603b3906f02ceea0f507780d0c35eb
2015-02-11 16:25:27 +00:00
dan
cd73244144 Further tweaks to work with zipvfs.
FossilOrigin-Name: 0f152416be792457c52417aeb531ac860d12a5bd
2015-02-10 20:00:38 +00:00
dan
07427d0350 Add documentation and test cases for sqlite3ota_create_vfs(). Also code to detect errors in zipvfs/ota setup.
FossilOrigin-Name: e729668168f00325459bc2e9b515aa95e57f2754
2015-02-10 17:08:17 +00:00
dan
faa8c4fdcb Add the sqlite3ota_create_vfs() and sqlite3ota_destroy_vfs() functions.
FossilOrigin-Name: 96443ecb6909141aa621a16e628455857d036482
2015-02-09 20:07:35 +00:00
dan
de1f6a270b Add comments to explain the role of the ota vfs.
FossilOrigin-Name: 7bb633639d1e41067903a49653f09a823054e213
2015-02-07 20:20:32 +00:00
dan
dd0ad3785b Remove "PRAGMA pager_ota_mode".
FossilOrigin-Name: 8ac58e46782bd6b81c06fdf1cb5b316b8a4e1ddf
2015-02-07 19:17:36 +00:00
drh
2f8109cef1 Revise the way that the index structure for a WITHOUT ROWID table is
discovered.

FossilOrigin-Name: 7f10a0eaf1fedfa020cbd7019ec9342ffdc3b9b0
2015-02-06 00:31:45 +00:00
dan
8800b53bc5 Change a comment in sqlite3ota.h to make it clear that it is not possible to insert a NULL value into an INTEGER PRIMARY KEY column using ota.
FossilOrigin-Name: a5e86bea4ad51bbb988a2a2215961706894f4a02
2015-02-05 17:46:19 +00:00
dan
a8ccf3ed74 Prevent ota updates from violating NOT NULL constraints. Add a comment to the "limitations" section of sqlite3ota.h saying that CHECK constraints are not enforced.
FossilOrigin-Name: 74e073dd604142212f3d3e1931065d124daabd80
2015-02-05 17:36:30 +00:00
drh
d4ef7c50bb Figure out the primary-key type of a table using queries of sqlite_master
and the table_info and index_list pragmas, obviating the need for
SQLITE_TESTCTRL_TBLTYPE.

FossilOrigin-Name: 50ecdfc443b51e3569c6add2fba5132f959c61cb
2015-02-05 01:49:31 +00:00
dan
06c9722564 Fix the error messages returned by ota if an update violates a unique constraint.
FossilOrigin-Name: c4845a3b591723ff60b7b1da198f44908c12bdfc
2015-02-04 19:20:42 +00:00
dan
738a3b2fcb Avoid a linear scan of the entire table when ota updates or deletes a row from a table with an external primary key index.
FossilOrigin-Name: 1db198ccca1e5c5a922cefe3daeff8d2e5d3a7f7
2015-02-04 16:32:47 +00:00
dan
1e35850229 Fix a memory leak that could follow an OOM error in ota.
FossilOrigin-Name: 0d5415f26427d0af89663c5a3e944e488143b648
2015-02-04 11:08:47 +00:00
dan
e2863b6074 Fix some problems surrounding WITHOUT ROWID tables with DESC primary key indexes
.

FossilOrigin-Name: a21fefb79a161e6bb057ae4f6ba554f659706ac1
2015-02-03 18:43:42 +00:00
dan
75fda9b395 Remove "PRAGMA ota_mode".
FossilOrigin-Name: 1c111447a07687c30ed4ad5a6c27a169c85b7ea6
2015-02-03 15:56:08 +00:00
dan
3b660d7da3 Have ota use imposter tables to write to indexes instead of the sqlite3_index_writer() interface. The error handling in this version is broken in a few small ways.
FossilOrigin-Name: cdaeab467f6aa3217be161377a9b78a4eec37093
2015-01-31 20:42:04 +00:00
drh
3102aa01fd Merge all recent trunk changes, and especially the SQLITE_TESTCTRL_INITMODE
enhancement.

FossilOrigin-Name: 36436dde74ce2536a9a430b4458216499ad113bf
2015-01-30 16:36:17 +00:00
dan
fdf3a8970d Update comments in sqlite3ota.h to remove the "must have PRIMARY KEY" restriction.
FossilOrigin-Name: 088a41eb8c18886a260cf53fa0cca3bd1958dc05
2014-12-08 07:28:26 +00:00
dan
61826cdb6c Extra tests for the ota_rowid column.
FossilOrigin-Name: 46069393b3141ab198f0fcc4f6c05229f06bf1e8
2014-12-08 07:22:34 +00:00
dan
7ca1d07aff Allow the ota extension to write to tables with no PRIMARY KEY declaration.
FossilOrigin-Name: ba59a7e2ba97244492cbca9247456df0f3f19248
2014-12-06 19:30:41 +00:00
dan
ca3d648f9c Update ota so that the hidden columns of virtual tables may be written.
FossilOrigin-Name: ccee999649d0fa1d48e53847542f4cbe05e3d694
2014-11-27 18:09:46 +00:00
dan
7bf9ec1c26 Add SQLITE_ENABLE_OTA pre-processor directives so that this branch may be compiled with or without OTA.
FossilOrigin-Name: 600cefdd4d29c1de4d107fa7ddeb76a18edce4f5
2014-11-22 09:09:50 +00:00
dan
54f0dec3e6 Changes to comments in sqlite3ota.h.
FossilOrigin-Name: 14139542b68fbf01632a1b149cd6fca4bb01efa6
2014-11-21 11:22:11 +00:00
dan
ca5ceb4229 Add support for updating virtual tables via ota.
FossilOrigin-Name: 4dfcfe543945aa60a7ac397a3bdb0ac9e20ef7b6
2014-11-21 10:46:23 +00:00
dan
f8bd49ee22 Add the "ota_delta()" feature for delta-compressed updates.
FossilOrigin-Name: c64dcd1788f5cc7db197a0ec4ab0981f34a72c6b
2014-11-20 19:19:02 +00:00
dan
268c0f8844 Update the ota extension so that it can be used to update tables with external PRIMARY KEY indexes.
FossilOrigin-Name: 55066a1171cbd3077f5e6c8ceb2745e810d9476e
2014-11-20 17:37:08 +00:00
dan
54ef517012 Updates to support zipvfs in pass-through mode.
FossilOrigin-Name: 556c3de53ad33d11d33ec794345c2100aa76f3e1
2014-11-20 15:11:12 +00:00
dan
8a1e107811 Add tests for WITHOUT ROWID tables with composite primary keys.
FossilOrigin-Name: 712d413d29950b19d4afb18cfcf9d3afb302d0a0
2014-11-17 18:35:30 +00:00