]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge latest trunk changes into this branch.
authordan <dan@noemail.net>
Fri, 2 Mar 2018 17:40:23 +0000 (17:40 +0000)
committerdan <dan@noemail.net>
Fri, 2 Mar 2018 17:40:23 +0000 (17:40 +0000)
FossilOrigin-Name: 36801effa9ec67b551f58972e21794466420f10cd0420701fcd87695e6cd11ee

23 files changed:
1  2 
ext/session/sqlite3session.c
ext/session/sqlite3session.h
main.mk
manifest
manifest.uuid
src/btree.c
src/btree.h
src/btreeInt.h
src/build.c
src/main.c
src/os_unix.c
src/pager.c
src/parse.y
src/sqlite.h.in
src/sqliteInt.h
src/test1.c
src/test_config.c
src/vacuum.c
src/vdbe.c
src/vdbeaux.c
src/wal.c
test/wal2.test
tool/addopcodes.tcl

Simple merge
index 74e0693106b370bde7d02d9fd285c6be374e4fdd,407ec6a62b8eeb87f37e2e871bef2a98c1272f32..53f1ba2c69d9331df317d7d7fba74525211cd45b
@@@ -281,21 -323,9 +323,22 @@@ int sqlite3session_changeset
    void **ppChangeset              /* OUT: Buffer containing changeset */
  );
  
 +/*
 +** CAPI3REF: Generate A Full Changeset From A Session Object
 +**
 +** This function is similar to sqlite3session_changeset(), except that for
 +** each row affected by an UPDATE statement, all old.* values are recorded
 +** as part of the changeset, not just those modified.
 +*/
 +int sqlite3session_fullchangeset(
 +  sqlite3_session *pSession,      /* Session object */
 +  int *pnChangeset,               /* OUT: Size of buffer at *ppChangeset */
 +  void **ppChangeset              /* OUT: Buffer containing changeset */
 +);
 +
  /*
- ** CAPI3REF: Load The Difference Between Tables Into A Session 
+ ** CAPI3REF: Load The Difference Between Tables Into A Session
+ ** METHOD: sqlite3_session
  **
  ** If it is not already attached to the session object passed as the first
  ** argument, this function attaches table zTbl in the same manner as the
diff --cc main.mk
index 9c5ac57b9548c7d17bc35e7fccfa2121aac61e28,c5a0aa6cd37d3736d646a4a160abff1bcf92bdc1..d833d2fa9314b1fbc5018b4a984ae599aea90c8e
+++ b/main.mk
@@@ -401,8 -423,8 +423,9 @@@ TESTSRC2 = 
    $(TOP)/ext/fts3/fts3_tokenizer.c \
    $(TOP)/ext/fts3/fts3_write.c \
    $(TOP)/ext/async/sqlite3async.c \
+   $(TOP)/ext/misc/stmt.c \
    $(TOP)/ext/session/sqlite3session.c \
 +  $(TOP)/ext/session/sqlite3changebatch.c \
    $(TOP)/ext/session/test_session.c 
  
  # Header files used by all library source files.
diff --cc manifest
index dce0a2ddfa5a2e78ed01ea40ed5d22d95315e3f2,1072fdeb6d18dafdc0183bd7f7f5491ba7ff855f..69e9a19f7ffb50017e34d396b4bff9b4ae35a55b
+++ b/manifest
@@@ -1,10 -1,12 +1,12 @@@
- C Abort\son\san\sinvalid\sparamater\sto\ssqlite3BitvecSet().
- D 2017-12-11T14:02:10.998
- F Makefile.in b142eb20482922153ebc77b261cdfd0a560ed05a81e9f6d9a2b0e8192922a1d2
 -C Typo\sfixes\sin\scomments.\s\sNo\schanges\sto\scode.
 -D 2018-03-01T18:09:02.014
++C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
++D 2018-03-02T17:40:23.911
+ F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
+ F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
+ F Makefile.in a2d2fb8d17c39ab5ec52beb27850b903949080848236923f436156b72a958737
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc a55372a22454e742ba7c8f6edf05b83213ec01125166ad7dcee0567e2f7fc81b
- F README.md f5c87359573c4d255425e588a56554b50fdcc2afba4e017a2e02a43701456afd
- F VERSION 0c10cdfed866fdd2d80434f64f042c3330f1daaed12e54287beb104f04b3faaf
+ F Makefile.msc bf19d3a0eb849bd3b114653b0e455aa5b2799a96f413287a5866013db0e47f30
+ F README.md 1d5342ebda97420f114283e604e5fe99b0da939d63b76d492eabbaae23488276
+ F VERSION cdf91ac446255ecf3d8f6d8c3ee40d64123235ae5b3cef29d344e61b45ec3759
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
@@@ -385,19 -400,18 +402,20 @@@ F ext/session/sessionat.test efe88965e7
  F ext/session/sessiondiff.test ad13dd65664bae26744e1f18eb3cbd5588349b7e9118851d8f9364248d67bcec
  F ext/session/sessionfault.test da273f2712b6411e85e71465a1733b8501dbf6f7
  F ext/session/sessionfault2.test 04aa0bc9aa70ea43d8de82c4f648db4de1e990b0
+ F ext/session/sessionstat1.test 41cd97c2e48619a41cdf8ae749e1b25f34719de638689221aa43971be693bf4e
  F ext/session/sessionwor.test 2f3744236dc8b170a695b7d8ddc8c743c7e79fdc
 -F ext/session/sqlite3session.c 0b7f1b8eb5b5a83fd96127b93139eadd2f2e2915c1eaceab4f5d771719c0c22f
 -F ext/session/sqlite3session.h 2e1584b030fbd841cefdce15ba984871978d305f586da2d1972f6e1958fa10b1
 -F ext/session/test_session.c eb0bd6c1ea791c1d66ee4ef94c16500dad936386
 +F ext/session/sqlite3changebatch.c d5553b79e012ee2cb06c0a96bdf9dfe19e66354390ea0036cc46c4953142d517
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
- F ext/session/sqlite3session.c 97e478b348bcf22bc39e91430bd077e1030c6529009c8d7fb3d6731e40b02436
- F ext/session/sqlite3session.h 50f6aacf6439684185cb168000363ade106076162a3a3951afaff990321a6f64
++F ext/session/sqlite3session.c 21810bc8a5571ebd4263053a2e4bc4e534444336a62248d60a08bae43ea62f20
++F ext/session/sqlite3session.h 1eb6bc132e1e23eba7290b8cb85141fa4ef6cb5c8104a6851a4c4e88512996b6
 +F ext/session/test_session.c badd5da3cb561564b093745f7d843430d1d76347
  F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
  F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
  F ext/userauth/userauth.c 3410be31283abba70255d71fd24734e017a4497f
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 709d0c6fb5af0c8de9f72cd4b1e28c386dddd936a01695949eadec02f728ab32
 -F main.mk 04969462bfd32c9f08d4a6d40622e8c43c8c5ecfb2ee52ffb5737c5eca4b0c03
++F main.mk 2263d738b707d420c24535a85aad10ab35be5d90a14660b325b2bc99e8b91085
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -410,37 -424,37 +428,37 @@@ F sqlite.pc.in 42b7bf0d02e08b9e77734a47
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
  F src/alter.c cf7a8af45cb0ace672f47a1b29ab24092a9e8cd8d945a9974e3b5d925f548594
- F src/analyze.c 0d0ccf7520a201d8747ea2f02c92c26e26f801bc161f714f27b9f7630dde0421
- F src/attach.c 07b706e336fd3cedbd855e1f8266d10e82fecae07daf86717b5760cd7784c584
+ F src/analyze.c 6b42e36a5dcc2703a771f2411bd5e99524bd62c7ecde209bb88dfb04c72f046e
+ F src/attach.c 79cb6b365d79b96b15dd429aa3e4c3b99335039e059baca8df28f1708fbff261
  F src/auth.c 6277d63837357549fe14e723490d6dc1a38768d71c795c5eb5c0f8a99f918f73
  F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b
 -F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 +F src/bitvec.c 8433d9e98dd6f2ea3286e0d2fe5d65de1bfc18a706486eb2026b01be066b5806
  F src/btmutex.c 0e9ce2d56159b89b9bc8e197e023ee11e39ff8ca
- F src/btree.c a41d580524a4cd9b00443b7196d298e05463f6bfcb712853db3abcddc93cf3ab
- F src/btree.h feafd0647331366f4ef17f7e68597e9029f001e7ab16a125e2f176c598a7ef4a
- F src/btreeInt.h 0e0abe97427b4139092ec8782d396a4ad18566964e992c60043e370d4c86fd99
- F src/build.c f890a66f2b78cd820b21b580f37605f8dd77f19d0b35f5850a675c88a815adca
- F src/callback.c 28a8ede982fde4129b828350f78f2c01fe7d12c74d1a0a05d7108ab36f308688
 -F src/btree.c 18a53540aa35dbdf77f715ea928422a4ed9011dc16ea7b50f803fd1617fcc4f5
 -F src/btree.h 0866c0a08255142ea0e754aabd211c843cab32045c978a592a43152405ed0c84
 -F src/btreeInt.h 620ab4c7235f43572cf3ac2ac8723cbdf68073be4d29da24897c7b77dda5fd96
 -F src/build.c 672022c06e1a5c2653f80c77a687de11f7e65ce81d20fe2825aadfa13a875c33
++F src/btree.c d070d79e81d76e521992a1f2e6b55892da04c35bbe493a07a3904a404e4416cc
++F src/btree.h 0cd745755efd1f3df4c70544c54253920ea32fe6b179b97e9daeb786ba0de4ba
++F src/btreeInt.h 6c65e6c96f561596f6870c79a64d4706af81613881d7947e3f063e923f14115f
++F src/build.c 4584d3b8bf05dc3c6b58a3869d66707adf1a2d0c0dd278cbdf6698a3bfc95cc6
+ F src/callback.c fe677cb5f5abb02f7a772a62a98c2f516426081df68856e8f2d5f950929b966a
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c ff1be3eed7bdd75aaca61ca8dc848f7c9f850ef2fb9cb56f2734e922a098f9c0
- F src/date.c 48f743d88bbe88f848532d333cca84f26e52a4f217e86f86be7fc1b919c33d74
+ F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
  F src/dbpage.c 8db4c97f630e7d83f884ea75caf1ffd0988c160e9d530194d93721c80821e0f6
  F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
- F src/delete.c f97cc2a9a30b4119ec5ed0da4e41335060cbb8510a5f1a756be48c065cb824f0
- F src/expr.c 0016b95aed1df47ebc0eb7415bd621841d72dbffd3bfb62210e50e71d83b4691
+ F src/delete.c 20c8788451dc737a967c87ea53ad43544d617f5b57d32ccce8bd52a0daf9e89b
+ F src/expr.c 904f85e5f5fa232488cbb662fcf3306ae203728751468670fb9840a9b1886abc
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
- F src/fkey.c 821f70b6c43ba4542ffb5fdf11d3ac5f79e4cbae4750ee3de379afbc5e1f7781
- F src/func.c 0fb9a2d678d3c8aba89b46468b309cd7e8fa9806a369a30aa89024660845bb13
- F src/global.c ac3094f1dc59fbeb919aef7cc0cc827a8459d1fb1adb7972ef75bd9e0c10b75b
+ F src/fkey.c d617daf66b5515e2b42c1405b2b4984c30ca50fb705ab164271a9bf66c69e331
+ F src/func.c 94f42cba2cc1c34aeaa441022ba0170ec3fec4bba54db4e0ded085c6dc0fdc51
+ F src/global.c 01506976bd75e5e7b977207a6a05062e2dd0050012f8071be06bbea22ec6d69a
  F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a
  F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
  F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c c7f333547211b8efbac8a72f71adad736b91e655d7bcdfacc737351ecf3c8df2
+ F src/insert.c 14686083cedc198540b15a79586cdd4be2acf6d5fa97627e355f817ab07e9fee
  F src/legacy.c 134ab3e3fae00a0f67a5187981d6935b24b337bcf0f4b3e5c9fa5763da95bf4e
- F src/loadext.c 20865b183bb8a3723d59cf1efffc3c50217eb452c1021d077b908c94da26b0b2
- F src/main.c ec2a53690e2d10e101a2917347b59a0d46ba91a5916021eb56bd3e43692ff9e2
- F src/malloc.c a02c9e69bc76bee0f639416b947a946412890b606301454727feadcb313536d6
+ F src/loadext.c f6e4e416a736369f9e80eba609f0acda97148a8b0453784d670c78d3eed2f302
 -F src/main.c dc75b3585bab31a88962eda2abe35a38b58c2e4d648e1a11e249fe43174c783f
++F src/main.c 64a93806e98950ee872ee0952b43b62bb5f6cb10452b99ae5e5f77502d6b622d
+ F src/malloc.c 07295435093ce354c6d9063ac05a2eeae28bd251d2e63c48b3d67c12c76f7e18
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
  F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
@@@ -458,33 -472,33 +476,33 @@@ F src/os.c 22d31db3ca5a96a408fbf1ceeaae
  F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c 1f10b35801b6107cbfe10dd093d19e93410e05dcc7e011dcb19847feec15fa01
- F src/os_win.c 6892c3ff23b7886577e47f13d827ca220c0831bae3ce00eea8c258352692f8c6
 -F src/os_unix.c 928586cbde31890538854f1657463392d63b2d7794f577774573ae53ec283d7b
++F src/os_unix.c da5704d0c54eec4b8e02095782c0360af4edfbf7832191f5ff697fddfbb4f9ef
+ F src/os_win.c eb03c6d52f893bcd7fdd4c6006674c13c1b5e49543fec98d605201af2997171c
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c a98e9760c8750e25d2ae6f6dc78b20f192408b85047e8811fcc5918af464b887
 -F src/pager.c 0b6bd5442733b2e08d0673de6cdafe3e7ab0b5715e4844ac836ab346b1d9ed89
 -F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
 -F src/parse.y 3be4b2b5e33ef7dab3128b765898ee786fc6cd698a7f053f756a68f2f238f0aa
++F src/pager.c fa0c6d8cc7483bcf5a3c02bc80a5162b81bf948e567113fda8bf548edc187131
 +F src/pager.h 72e1a29470f2c2ad482ce944f61c7818098a842740d94c2bd167f348da4fdbac
- F src/parse.y 839e06142f53b51dc443beb4e2f3c21f501531edf9bd385490020242b9587490
++F src/parse.y 678b3afe0d9e79534295d8be4d4f4eebae5d6df2b0c402ac73650b240caedc30
  F src/pcache.c 7ae91a4557a43d77d449accbfdc68846e6516f8e2eda46e8bbe4536fb669b201
  F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
  F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
- F src/pragma.c d04725ac25387d9638919e197fb009f378e13af7bf899516979e54b3164e3602
+ F src/pragma.c bea56df3ae0637768c0da4fbbb8f2492f780980d95000034a105ff291bf7ca69
  F src/pragma.h bb83728944b42f6d409c77f5838a8edbdb0fe83046c5496ffc9602b40340a324
- F src/prepare.c 7cf451f903ad92a14e22de415a13e7a7d30f1bd23b3d21eeb0dc7264723244c5
- F src/printf.c 40aee47ae9be4bd3dbdc8968bd07fddc027be8edec8daddf24d3391d36698a1c
+ F src/prepare.c 259f4e7960c47082c9653f3d5f0c294abd68bb9c3aab86de7630700cba1c20fb
+ F src/printf.c d3b7844ddeb11fbbdd38dd84d09c9c1ac171d21fb038473c3aa97981201cc660
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c 5b1e89ba279f4a4ab2f0975a7100d75be71e1a43a2df75a9c909d45bdd18c6ed
+ F src/resolve.c 66c73fcb7719b8ff0e841b58338f13604ff3e2b50a723f9b8f383595735262f6
  F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
- F src/select.c 660ef7977841fb462f24c8561e4212615bb6e5c9835fd3556257ce8316c50fee
- F src/shell.c.in 08cbffc31900359fea85896342a46147e9772c370d8a5079b7be26e3a1f50e8a
- F src/sqlite.h.in 68bfa4942af031d16055ab4d37d26fe44b11b0756a89f309cd98ea17080db1cc
+ F src/select.c f02352ac5cbb6fad3804add825743b924cfb6c742ba2e8666d726828a9985d73
+ F src/shell.c.in 47dac081e15544f4d4373a837215391459971b312c8bed15903e7e9045c3e652
 -F src/sqlite.h.in 235e942dd8c01b414c2996828b4d0d2500faf8850f8b24ae17d31c172f519e69
++F src/sqlite.h.in 5576a6e50560b23fb072d5824e5b60084275897eaec8235d98a81fcaa316db6d
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h c02d628cca67f3889c689d82d25c3eb45e2c155db08e4c6089b5840d64687d34
- F src/sqliteInt.h 83bee2a797beedf3edddb29fca39bf724b2e77972a9440398638674d4877673b
+ F src/sqlite3ext.h 83a3c4ce93d650bedfd1aa558cb85a516bd6d094445ee989740827d0d944368d
 -F src/sqliteInt.h 6c321e404f97117c9b676ac1a8591a22d095bf5ab730624becea3ad93067c89c
++F src/sqliteInt.h 51c1a7062421433bd7b352e51b4fbce9aad1d74f10fdf2597760df24dfb87024
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 9737ed017279a9e0c5da748701c3c7bf1e8ae0dae459aad20dd64fcff97a7e35
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
- F src/tclsqlite.c 1833388c01e3b77f4c712185ee7250b9423ee0981ce6ae7e401e47db0319a696
- F src/test1.c a1b238ce48cafc2d93acf8c062161b235f4a5d4a57ebc867355445002c4b2799
+ F src/tclsqlite.c 11a2618c227fd13ccad73ee02d1199f9880c59db2b3144fd7432db1980a2577d
 -F src/test1.c 1ab7cbbb6693e08364c1a9241e2aee17f8c4925e4cc52396be77ae6845a05828
++F src/test1.c c2b5de91195cf2911760cfe543eb1bf315a01e1db32a95d2ba5d8fe6be06f41c
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c b8434949dfb8aff8dfa082c8b592109e77844c2135ed3c492113839b6956255b
  F src/test4.c 18ec393bb4d0ad1de729f0b94da7267270f3d8e6
@@@ -499,7 -513,7 +517,7 @@@ F src/test_backup.c bf5da90c9926df0a4b9
  F src/test_bestindex.c 78809f11026f18a93fcfd798d9479cba37e1201c830260bf1edc674b2fa9b857
  F src/test_blob.c ae4a0620b478548afb67963095a7417cd06a4ec0a56adb453542203bfdcb31ce
  F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274
- F src/test_config.c 1880e08f2702cb4e24b287a3b1c897098e574a3033d66e877ceaa5669398e78e
 -F src/test_config.c 03df8eb9dc8d5ee96588dfa34fd989c75625d5a0daf59491e32b966da4010870
++F src/test_config.c 621e3330989efdacce8e7b1e2ea4c0864bada1e7ea746ce3ba01e7466409580c
  F src/test_delete.c e2fe07646dff6300b48d49b2fee2fe192ed389e834dd635e3b3bac0ce0bf9f8f
  F src/test_demovfs.c a0c3bdd45ed044115c2c9f7779e56eafff18741e
  F src/test_devsym.c 1960abbb234b97e9b920f07e99503fc04b443f62bbc3c6ff2c2cea2133e3b8a2
@@@ -532,35 -546,35 +550,35 @@@ F src/test_tclvar.c 33ff42149494a39c5fb
  F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858
  F src/test_vfs.c f0186261a24de2671d080bcd8050732f0cb64f6e
  F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
- F src/test_windirent.c 17f91f5f2aa1bb7328abb49414c363b5d2a9d3ff
- F src/test_windirent.h 5d67483a55442e31e1bde0f4a230e6e932ad5906
+ F src/test_windirent.c a895e2c068a06644eef91a7f0a32182445a893b9a0f33d0cdb4283dca2486ac1
+ F src/test_windirent.h 90dfbe95442c9762357fe128dc7ae3dc199d006de93eb33ba3972e0a90484215
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
- F src/tokenize.c 1003d6d90c6783206c711f0a9397656fa5b055209f4d092caa43bb3bf5215db5
- F src/treeview.c 2ee4a5dada213d5ab08a742af5c876cee6f1aaae65f10a61923f3fb63846afef
- F src/trigger.c 929b12bb5f9ab3b10c589f71fa176effe6ea8bddc9eb1bbd2439755fa0acdfdf
- F src/update.c 2e7ef3839eb620e9140a41bbfd05e29d7d216441c5d97221b75635dea4e49672
+ F src/tokenize.c 5b0c661a85f783d35b9883830736eeb63be4aefc4f6b7d9cd081d48782c041e2
+ F src/treeview.c e0d62678314abf0e1e6d09ea405f4de3f404a17b4641c2169c304b5edf509320
+ F src/trigger.c a34539c69433276d37b0da9a89c117726ff2d292c0902895af1f393a983cd3a1
+ F src/update.c a90a32ffc0100265b0693dbbdbe490756447af181f5ea2c138cce515b08c8795
  F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
- F src/util.c d01fa6f45bfad3b65fb2490513aa2e0676412c61b4b094340b513cf72c3704a4
- F src/vacuum.c 07eec96f821c7dcbdca2fadffc6e38ea2c24bf409fcb15fe9fb3ac444d632dfe
- F src/vdbe.c 1834769e38fa8e2cd28651159773be1585242ab7ab8098c55d39c1b58e5f3240
- F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97
- F src/vdbeInt.h 1fe00770144c12c4913128f35262d11527ef3284561baaab59b947a41c08d0d9
- F src/vdbeapi.c 9c670ca0dcc1cd86373aa353b747b26fe531ca5cd4331690c611d1f03842e2a1
- F src/vdbeaux.c e9aa37f7bc19415218bc9d5a83f3fa86fb3c504ecb0d67d159f6d138df5b837a
+ F src/util.c d9eb0a6c4aae1b00a7369eadd7ca0bbe946cb4c953b6751aa20d357c2f482157
 -F src/vacuum.c 762ee9bbf8733d87d8cd06f58d950e881982e416f8c767334a40ffd341b6bff5
 -F src/vdbe.c 88d8e0797bf49624d056014f34f302a7370cc119915cc0ece8f2b7bf5e7c30fb
++F src/vacuum.c f0b8302219b00461ac0edbb790b5ef52d3d454a7ef9b78030a44b32bbdc39e8a
++F src/vdbe.c 213097212a5e1836a57cd4faa396996234481d8351c29a417d9b648f0f53a10b
+ F src/vdbe.h 134beb7a12a6213c00eba58febaede33447cc4441bc568a0d9c144b33fc3720a
+ F src/vdbeInt.h 95f7adfdc5c8f1353321f55a6c5ec00a90877e3b85af5159e393afb41ff54110
+ F src/vdbeapi.c fea41171884a4de119f8b10ab514c788674eeeb7f27218bb6d008e1310bfd07f
 -F src/vdbeaux.c 2756ac68ac259c416554100598fc291870063288cd7e1af22847f57b3e130e56
++F src/vdbeaux.c db9d38ca41466d5cc845bedbf88f470eefb5c4edaff2070249fa08a40273d1a1
  F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191
- F src/vdbemem.c 2ef9e66b301a1e575e32966c4c0fd4844e8eea37a2f02bae78c4f68f50a6ab30
+ F src/vdbemem.c 414e28d3a7e2a8bee2bb247de115dcbc68e3cbac284d5862d077002f7a93bce1
  F src/vdbesort.c 731a09e5cb9e96b70c394c1b7cf3860fbe84acca7682e178615eb941a3a0ef2f
  F src/vdbetrace.c 48e11ebe040c6b41d146abed2602e3d00d621d7ebe4eb29b0a0f1617fd3c2f6c
  F src/vtab.c 0e4885495172e1bdf54b12cce23b395ac74ef5729031f15e1bc1e3e6b360ed1a
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c a0f3b4c92fc2a4d581d75f3a722a8269e697a9a5f4a6e21057c14f7566072fc1
 -F src/wal.c 0ba9af2589b67c4bc60c773c7d2080491099037af21e73545f932bb29bf70b65
 -F src/wal.h 8de5d2d3de0956d6f6cb48c83a4012d5f227b8fe940f3a349a4b7e85ebcb492a
++F src/wal.c 44e8d9f9b42dba0dd6253d67574307ff1892ee56f3ae99cabfcec5a2676763b4
 +F src/wal.h 1713fefe4587678c295bbeb91c4e7442998ad74f19249869ce49dda9e8ce5d53
- F src/walker.c d591e8a9ccf60abb010966b354fcea4aa08eba4d83675c2b281a8764c76cc22f
- F src/where.c 031a80bcafe93934fd7052f3031c9e7eb36b61754c6c84d6bf0833184abad3db
+ F src/walker.c da987a20d40145c0a03c07d8fefcb2ed363becc7680d0500d9c79915591f5b1f
+ F src/where.c 7cae47e813393d70c6d327fdf000fcb30f76b1b0b5a5b52ff6402e0c658de32c
  F src/whereInt.h 82c04c5075308abbac59180c8bad5ecb45b07453981f60a53f3c7dee21e1e971
- F src/wherecode.c 4a117dd5886616d074f7b6589c23bf742f5a9858d6ffdaf8b9d1f76ab06245d2
- F src/whereexpr.c 427ea8e96ec24f2a7814c67b8024ad664a9c7656264c4566c34743cb23186e46
+ F src/wherecode.c e1aaadd8fec650037cfbf27d1b3470338fb3b58fec34d11082df16fe9a08fbd7
+ F src/whereexpr.c 53532be687e12f3cd314f1e204cd4fbdac7ad250e918a182b048121e16e828ae
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@@ -679,13 -692,7 +697,13 @@@ F test/collate9.test 3adcc799229545940d
  F test/collateA.test b8218ab90d1fa5c59dcf156efabb1b2599c580d6
  F test/collateB.test 1e68906951b846570f29f20102ed91d29e634854ee47454d725f2151ecac0b95
  F test/colmeta.test 2c765ea61ee37bc43bbe6d6047f89004e6508eb1
- F test/colname.test c47639d26cbeba6977457e5ef2c2c55c5b6c889478dd7eb0ed858ba894e7fa93
+ F test/colname.test fb28b3687e03625425bc216edf8b186ce974aa71008e2aa1f426a7dcb75a601d
 +F test/concfault.test 500f17c3fcfe7705114422bcc6ddd3c740001a43
 +F test/concurrent.test 86661967a680670127a62a819e60dc93c2d3d49043ac95b26dfa70d3e60dbde5
 +F test/concurrent2.test 9dfbeb0a323733fe1d13443371734bb94a674dbf777f464365475903873111f8
 +F test/concurrent3.test f4af1cf1220908c6dd5694923621c19e999b78cd997e2646285f08a52bcb4170
 +F test/concurrent4.test e0b12cd467137e50259df3b4f837507e82aaa07c35941c88664dc8ed1d089c44
 +F test/concurrent5.test d5d7d9d404a9b4502464fc097c1fc5c3012bb4f1b063fae7ad707ca983fc86c5
  F test/conflict.test 029faa2d81a0d1cafb5f88614beb663d972c01db
  F test/conflict2.test bb0b94cf7196c64a3cbd815c66d3ee98c2fecd9c
  F test/conflict3.test a83db76a6c3503b2fa057c7bfb08c318d8a422202d8bc5b86226e078e5b49ff9
@@@ -1465,9 -1480,8 +1490,9 @@@ F test/triggerC.test 302d8995f5ffe63bbc
  F test/triggerD.test 8e7f3921a92a5797d472732108109e44575fa650
  F test/triggerE.test 15fa63f1097db1f83dd62d121616006978063d1f
  F test/triggerF.test 6a8c22bd058cf467f0c7d112afe87f7a8c579c0c4681b914b8f19020f48528a4
- F test/triggerG.test 175cafdc6399d85231a09e82e051b0e45a2fd1f23dd08ae715bc359716149ab6
+ F test/triggerG.test d5caeef6144ede2426dd13211fd72248241ff2ebc68e12a4c0bf30f5faa21499
  F test/tt3_checkpoint.c 9e75cf7c1c364f52e1c47fd0f14c4340a9db0fe1
 +F test/tt3_core.c 8cd89ead95410f70e7fb02c79f1e040f9c5ad5cf
  F test/tt3_index.c 39eec10a35f57672225be4d182862152896dee4a
  F test/tt3_lookaside1.c 0377e202c3c2a50d688cb65ba203afeda6fafeb9
  F test/tt3_stress.c c57d804716165811d979d4a719e05baccd79277f
@@@ -1518,7 -1532,7 +1543,7 @@@ F test/vtab_alter.test 736e66fb5ec7b4fe
  F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
  F test/vtab_shared.test 5253bff2355a9a3f014c15337da7e177ab0ef8ad
  F test/wal.test 613efec03e517e1775d86b993a54877d2e29a477
- F test/wal2.test 3055879e7bf83c8d1b6130a4bdccdb3c230bc023a696850912ef6207d68dd24a
 -F test/wal2.test 155b9efa999bdb38ce1cd729b9a4fcdbffd6b88be27f039bad1d2929d287d918
++F test/wal2.test a225bafac35a47765b890bacdeb57e5e81039f21cc18a1e8ce88eb76e56b843c
  F test/wal3.test 2a93004bc0fb2b5c29888964024695bade278ab2
  F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
  F test/wal5.test 9c11da7aeccd83a46d79a556ad11a18d3cb15aa9
@@@ -1593,7 -1613,7 +1624,7 @@@ F test/zipfilefault.test 050be76778d2ec
  F tool/GetFile.cs a15e08acb5dd7539b75ba23501581d7c2b462cb5
  F tool/GetTclKit.bat 8995df40c4209808b31f24de0b58f90930239a234f7591e3675d45bfbb990c5d
  F tool/Replace.cs 02c67258801c2fb5f63231e0ac0f220b4b36ba91
- F tool/addopcodes.tcl c3e58098a42ce1525a9ff4d6d73bcbea667deea978428d2d59d90b9831479e5f
 -F tool/addopcodes.tcl 0288d5b26b9b35f4cb5affb76eec63f1dfce117bbc2020066708069ef60b86ff
++F tool/addopcodes.tcl 251331be53533f11d9ba36c730b9baaa911df89a08da3043344d0d634dc4a48e
  F tool/build-all-msvc.bat c12328d06c45fec8baada5949e3d5af54bf8c887 x
  F tool/build-shell.sh 950f47c6174f1eea171319438b93ba67ff5bf367
  F tool/cg_anno.tcl f95b0006c52cf7f0496b506343415b6ee3cdcdd3 x
@@@ -1686,7 -1708,7 +1719,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P d90e5f346bcf7adab26ca8dad9dfbd0fbb86604a15f2fe827f11b3faab036750
- R e43dfcde6e63fd81287681f03e602a2f
- U drh
- Z 3fc04e05119313efe5c6f01b2d450caa
 -P 2c01c72e357296d761493aac47329f15d87afcada2b39606fc018af0e0011bb5
 -R 74d9f04f790ae61bbdb4bfdda923d919
 -U mistachkin
 -Z 6963c71440aaaba3f2df4c41ff5161b5
++P 163c870950f386f6b0bb1ff9b3886cf95ba0deed414cae75baf87621ed3528c2 1293d4f64f322ee57510bdff497c54e0be2c9205217e1fd96887bba1f36bec40
++R d95135aa69ebdf39b1d9aaa7d36a2c84
++U dan
++Z 069d19cd10e378f6784afc839a1c9bac
diff --cc manifest.uuid
index af787c32f4c5ddc15e9b4a3c643068a91ba391f9,168b5b04bff95ba9792b52ff82d02ca40ea79cce..5638c6d4d4e2cc9fdfbe230ad8c6762224de2026
@@@ -1,1 -1,1 +1,1 @@@
- 163c870950f386f6b0bb1ff9b3886cf95ba0deed414cae75baf87621ed3528c2
 -1293d4f64f322ee57510bdff497c54e0be2c9205217e1fd96887bba1f36bec40
++36801effa9ec67b551f58972e21794466420f10cd0420701fcd87695e6cd11ee
diff --cc src/btree.c
Simple merge
diff --cc src/btree.h
Simple merge
diff --cc src/btreeInt.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/os_unix.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/parse.y
index b4f26a5f55c8a72f355b5712a47967c06582a0e3,9c41484ab21900711c5b235290c4c8310da99108..166534604860643f8b788232c548b0e2bc97b11c
@@@ -935,13 -919,12 +934,12 @@@ expr(A) ::= VARIABLE(X).     
      ** in the virtual machine.  #N is the N-th register. */
      Token t = X; /*A-overwrites-X*/
      assert( t.n>=2 );
-     spanSet(&A, &t, &t);
      if( pParse->nested==0 ){
 -      sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
 +      parserSyntaxError(pParse, &t);
-       A.pExpr = 0;
+       A = 0;
      }else{
-       A.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
-       if( A.pExpr ) sqlite3GetInt32(&t.z[1], &A.pExpr->iTable);
+       A = sqlite3PExpr(pParse, TK_REGISTER, 0, 0);
+       if( A ) sqlite3GetInt32(&t.z[1], &A->iTable);
      }
    }
  }
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/test1.c
Simple merge
Simple merge
diff --cc src/vacuum.c
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
diff --cc src/wal.c
index 94f06e1537918c4c376f347c4e53009bca236561,d56946e309cdac591c5c06c21b6d39330259c1de..75cb9bf6654aa1f1a5a35045c5c568ad4542e515
+++ b/src/wal.c
@@@ -2659,54 -2904,18 +2903,55 @@@ static int walFindFrame
          return SQLITE_CORRUPT_BKPT;
        }
      }
+     if( iRead ) break;
    }
  
-   if( iLast==0 || pWal->readLock==0 ){
 +  *piRead = iRead;
 +  return SQLITE_OK;
 +}
 +
 +/*
 +** Search the wal file for page pgno. If found, set *piRead to the frame that
 +** contains the page. Otherwise, if pgno is not in the wal file, set *piRead
 +** to zero.
 +**
 +** Return SQLITE_OK if successful, or an error code if an error occurs. If an
 +** error does occur, the final value of *piRead is undefined.
 +*/
 +int sqlite3WalFindFrame(
 +  Wal *pWal,                      /* WAL handle */
 +  Pgno pgno,                      /* Database page number to read data for */
 +  u32 *piRead                     /* OUT: Frame number (or zero) */
 +){
 +  u32 iRead = 0;                  /* If !=0, WAL frame to return data from */
 +  u32 iLast = pWal->hdr.mxFrame;  /* Last page in WAL for this reader */
 +  int rc;
 +
 +  /* This routine is only be called from within a read transaction. */
 +  assert( pWal->readLock>=0 || pWal->lockError );
 +
 +  /* If the "last page" field of the wal-index header snapshot is 0, then
 +  ** no data will be read from the wal under any circumstances. Return early
 +  ** in this case as an optimization.  Likewise, if pWal->readLock==0, 
 +  ** then the WAL is ignored by the reader so return early, as if the 
 +  ** WAL were empty.
 +  */
++  if( iLast==0 || (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
 +    *piRead = 0;
 +    return SQLITE_OK;
 +  }
 +
 +  rc = walFindFrame(pWal, pgno, iLast, &iRead);
 +
  #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
    /* If expensive assert() statements are available, do a linear search
    ** of the wal-index file content. Make sure the results agree with the
    ** result obtained using the hash indexes above.  */
 -  {
 +  if( rc==SQLITE_OK ){
      u32 iRead2 = 0;
      u32 iTest;
-     assert( pWal->minFrame>0 );
-     for(iTest=iLast; iTest>=pWal->minFrame; iTest--){
+     assert( pWal->bShmUnreliable || pWal->minFrame>0 );
+     for(iTest=iLast; iTest>=pWal->minFrame && iTest>0; iTest--){
        if( walFramePgno(pWal, iTest)==pgno ){
          iRead2 = iTest;
          break;
diff --cc test/wal2.test
Simple merge
index d5f843616a781db413401fbf2cc4ba850850f484,070779029bd8650796925fc2ddcfe14cdfbef8de..798fbb15bae46674a92084a64ee496f1dcd421d6
@@@ -29,8 -30,8 +30,9 @@@ set extras 
    AGG_COLUMN
    UMINUS
    UPLUS
+   TRUTH
    REGISTER
 +  CONCURRENT
    VECTOR
    SELECT_COLUMN
    IF_NULL_ROW