]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge trunk enhancements into the begin-concurrent-pnu-wal2 branch.
authordrh <>
Thu, 21 Oct 2021 14:24:24 +0000 (14:24 +0000)
committerdrh <>
Thu, 21 Oct 2021 14:24:24 +0000 (14:24 +0000)
FossilOrigin-Name: 1958e6facaaca8e695ae3d7e79acdba0025d6221653397ea45f9b8daa56c8d9b

22 files changed:
1  2 
Makefile.in
ext/session/sqlite3session.c
manifest
manifest.uuid
src/bitvec.c
src/btree.c
src/btreeInt.h
src/build.c
src/func.c
src/main.c
src/os_unix.c
src/pager.c
src/parse.y
src/pragma.h
src/select.c
src/sqlite.h.in
src/sqliteInt.h
src/vdbe.c
src/vdbeaux.c
test/corruptN.test
test/permutations.test
tool/mkpragmatab.tcl

diff --cc Makefile.in
Simple merge
index 4669f0a46911d08ef1c6ef35db45ad919cc1157c,a892804b49bcac6737830b24cce44dce9b378790..93a9f2c73dcd4b409e0293524c06e9af48661e2c
@@@ -2594,10 -2610,11 +2617,11 @@@ static int sessionGenerateChangeset
                  sessionAppendCol(&buf, pSel, iCol, &rc);
                }
              }else{
 -              rc = sessionAppendUpdate(&buf, bPatchset, pSel, p, abPK);
+               assert( abPK!=0 );  /* Because sessionSelectStmt() returned ok */
 +              rc = sessionAppendUpdate(&buf, ePatchset, pSel, p, abPK);
              }
            }else if( p->op!=SQLITE_INSERT ){
 -            rc = sessionAppendDelete(&buf, bPatchset, p, nCol, abPK);
 +            rc = sessionAppendDelete(&buf, ePatchset, p, nCol, abPK);
            }
            if( rc==SQLITE_OK ){
              rc = sqlite3_reset(pSel);
@@@ -2654,8 -2671,10 +2678,11 @@@ int sqlite3session_changeset
    int *pnChangeset,               /* OUT: Size of buffer at *ppChangeset */
    void **ppChangeset              /* OUT: Buffer containing changeset */
  ){
-   int rc = sessionGenerateChangeset(
+   int rc;
+   if( pnChangeset==0 || ppChangeset==0 ) return SQLITE_MISUSE;
 -  rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset,ppChangeset);
++  rc = sessionGenerateChangeset(
 +      pSession, SESSIONS_CHANGESET, 0, 0, pnChangeset, ppChangeset);
    assert( rc || pnChangeset==0 
         || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize 
    );
@@@ -2670,8 -2689,8 +2697,9 @@@ int sqlite3session_changeset_strm
    int (*xOutput)(void *pOut, const void *pData, int nData),
    void *pOut
  ){
 -  return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
+   if( xOutput==0 ) return SQLITE_MISUSE;
 +  return sessionGenerateChangeset(
 +      pSession, SESSIONS_CHANGESET, xOutput, pOut, 0, 0);
  }
  
  /*
@@@ -2682,8 -2701,8 +2710,9 @@@ int sqlite3session_patchset_strm
    int (*xOutput)(void *pOut, const void *pData, int nData),
    void *pOut
  ){
 -  return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
+   if( xOutput==0 ) return SQLITE_MISUSE;
 +  return sessionGenerateChangeset(
 +      pSession, SESSIONS_PATCHSET, xOutput, pOut, 0, 0);
  }
  
  /*
@@@ -2698,20 -2717,10 +2727,21 @@@ int sqlite3session_patchset
    int *pnPatchset,                /* OUT: Size of buffer at *ppChangeset */
    void **ppPatchset               /* OUT: Buffer containing changeset */
  ){
 -  return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
+   if( pnPatchset==0 || ppPatchset==0 ) return SQLITE_MISUSE;
 +  return sessionGenerateChangeset(
 +      pSession, SESSIONS_PATCHSET, 0, 0, pnPatchset, ppPatchset);
  }
  
 +int sqlite3session_fullchangeset(
 +  sqlite3_session *pSession,      /* Session object */
 +  int *pnChangeset,               /* OUT: Size of buffer at *ppChangeset */
 +  void **ppChangeset              /* OUT: Buffer containing changeset */
 +){
 +  return sessionGenerateChangeset(
 +      pSession, SESSIONS_FULLCHANGESET, 0, 0, pnChangeset, ppChangeset);
 +}
 +
 +
  /*
  ** Enable or disable the session object passed as the first argument.
  */
diff --cc manifest
index 5434ec49adaf20b08809529036723bdef61dae88,427d1c0cfde2ec9a58e26641e88178c2e416f410..169871a11ca91ed5d972ff48ec31e729e88f31e8
+++ b/manifest
@@@ -1,11 -1,11 +1,11 @@@
- C Merge\srecent\strunk\schanges\sinto\sthe\sbegin-concurrent-pnu-wal2\sbranch.
- D 2021-10-04T12:02:17.390
 -C Merge\srecent\strunk\senhancements\sinto\sthe\swal2\sbranch.
 -D 2021-10-21T14:01:05.762
++C Merge\strunk\senhancements\sinto\sthe\sbegin-concurrent-pnu-wal2\sbranch.
++D 2021-10-21T14:24:24.912
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in 9d00da98659e6a2f656da051478dc57dfb43cd0276f7e990d9c0ec3bdc9e35d2
 -F Makefile.in 46083712c0df2d3effbe4c9ac9563601024d58bcdea60c5de964a9c0e0a22f92
++F Makefile.in ba064f023a5a402081a198e16ca1aa0ae020cf32492529be8071cb2f503bd0cc
  F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
- F Makefile.msc 9c74a66faa38fe0c75dbba9442428bf55c056e729253658dc77d409014de8ba6
+ F Makefile.msc 527b829960ac21d5489fadb5d8fe52a00dc81137c8cd67aba38a7de89a7ea80a
  F README.md 27fb76aa7eb57ed63a53bbba7292b6bf71f51125554f79f16b5d040edd1e6110
  F VERSION c6595fef606851f2bc3ebed6a7386c73751835fc909feab7c093739fa4b3c1d1
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -467,11 -464,9 +467,11 @@@ F ext/session/sessionrebase.test ccfa71
  F ext/session/sessionsize.test 6f644aff31c7f1e4871e9ff3542766e18da68fc7e587b83a347ea9820a002dd8
  F ext/session/sessionstat1.test 218d351cf9fcd6648f125a26b607b140310160184723c2666091b54450a68fb5
  F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
 -F ext/session/sqlite3session.c 1d019c5caf51936ef24c761db63552b06e0e0d951c8740bba9639b17fa0cb107
 -F ext/session/sqlite3session.h 0907de79bc13a2e3af30a6dc29acc60792a3eaf7d33d44cf52500d0f3c2b2171
 -F ext/session/test_session.c f433f68a8a8c64b0f5bc74dc725078f12483301ad4ae8375205eef790274a787
 +F ext/session/sqlite3changebatch.c d5553b79e012ee2cb06c0a96bdf9dfe19e66354390ea0036cc46c4953142d517
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
- F ext/session/sqlite3session.c edec9a0ba226ec6d9e51eb760e2ebf97c80e61e3194caa7c39e3d900c0b347c0
++F ext/session/sqlite3session.c 421854336ece362552508426d89091c1832148066f0641e8d72e22f58d9241f3
 +F ext/session/sqlite3session.h 01807bb8c8f531c23052032e9d531eec49af79b7394f8213cf5a49784325b6a8
 +F ext/session/test_session.c 226461035031632255c8098f3bcfa4ea27f0b051efd88857a2a36bcea5c294b9
  F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
  F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
  F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
@@@ -490,37 -485,37 +490,37 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c a6afe961ef3544104fa635a0c3161bfe1a34382f32e2a28706993abadedbffed
- F src/analyze.c 979b6d2cdaca992a9c9f0818de55d08fb9a4e52929a509752b52d9fd23bb86d3
- F src/attach.c a514e81758ba7b3a3a0501faf70af6cfc509de8810235db726cfc9f25165e929
+ F src/alter.c d6b32481211fd5628b31d86329df6434bfc92e3372b53215339dc8cb47408644
+ F src/analyze.c 7518b99e07c5494111fe3bd867f28f804b6c5c1ad0703ec3d116de9bab3fa516
+ F src/attach.c e3f9d9a2a4a844750f3f348f37afb244535f21382cbfcd840152cb21cb41cfaf
  F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
  F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
- F src/bitvec.c 8433d9e98dd6f2ea3286e0d2fe5d65de1bfc18a706486eb2026b01be066b5806
 -F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d
++F src/bitvec.c 3907fcbe8a0c8c2db58d97087d15cdabbf2842adb9125df9ab9ff87d3db16775
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c 76d9c81d0f93c9086e897760aeb5943796976bbf1776e5dce4117e890807d669
 -F src/btree.c 301a939b99af545ba5edf01aaadc7e19bbddc414b00f719d98b9be4307c92f88
 -F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
 -F src/btreeInt.h ee9348c4cb9077243b049edc93a82c1f32ca48baeabf2140d41362b9f9139ff7
 -F src/build.c 8bdda90f9b1189c7b0813575171b3c6b2d74b3ade57c11cb4383776781ea9335
++F src/btree.c 0d9794d3bd7569afc7585e37ee740cbe549ab7ed6f976faf819859f11e3d4c96
 +F src/btree.h 900067641b64d619e6e2a93bd115c952a52f41d3bee32e551e2a4ceee05fc431
- F src/btreeInt.h 1e9f10107a4ec5d2940ae5b859242ae83b81402986724bed08b8491a5ea64a4d
- F src/build.c 6d705a9d15b4d4766e7d145c603564481c2186cdb5c407b06c08574d11878a60
- F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
++F src/btreeInt.h 3f19f0be5af0b68cff55e58df4b11e7a0692d9e8a820ceaeba4084659a86cf28
++F src/build.c d4aa88855609a36e3785a061b9416ba7225d09e93b859f5f29cf58edf7183fa2
+ F src/callback.c 106b585da1edd57d75fa579d823a5218e0bf37f191dbf7417eeb4a8a9a267dbc
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c 8159d5f706551861c18ec6c8f6bdf105e15ea00367f05d9ab65d31a1077facc1
- F src/date.c 467848d8187382764e37fd7678d6825cdfb90d9e564648527ed832e999ea7b85
+ F src/date.c fa928630fecf1d436cdc7a7a5c950c781709023ca782c21b7a43cc7361a9451e
  F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
  F src/dbstat.c 861e08690fcb0f2ee1165eff0060ea8d4f3e2ea10f80dab7d32ad70443a6ff2d
- F src/delete.c 3ce6af6b64c8b476de51ccc32da0cb3142d42e65754e1d8118addf65b8bcba15
- F src/expr.c ebc76aa98b9bcd556c2855942c18f4d2f52c6504c13f7285413026bdd1c7bbf5
+ F src/delete.c 0c151975fa99560767d7747f9b60543d0093d9f8b89f13d2d6058e9c83ad19e7
+ F src/expr.c 529f7eca2821e874a375b1b318e697d62cb28f56069677c93f587f2de5dceb54
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
- F src/fkey.c 1905af1821b88321e1bb9d6a69e704495b6844a9b6c29398d40117cc251e893c
- F src/func.c f2516e2bf3b806a8afe38cb7e245708a09981ef596f410fa47310a4ef47c8d75
- F src/global.c 612ea60c9acbcb45754c2ed659b4a56936a06814718e969636fedc7e3b889808
+ F src/fkey.c 187b67af20c5795953a592832c5d985e4313fe503ebd8f95e3e9e9ad5a730bb5
 -F src/func.c 1cfb09d7ffca81238eccefdb0293e1f5b7cfebbd1816dfad5ec6024742a7496b
++F src/func.c a5dce8a8ff85310e2c88262a25bcded0a7e92be9a4bda24bbf6eab78e99c2f13
+ F src/global.c 59bfd5705a623f0b45e91622699953cfd1be2c176e78d8ff610463f2ea4ec51b
  F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
  F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
  F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c 16fa4b66709db6db5bb31475f2321d0a839269765aa2461a520c151c385e8b9d
+ F src/insert.c b32e2dcbca838cb8acd4777a59243db4bcea53089e3181b0ea3e4dc75b43aeff
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
  F src/loadext.c 0aa9e7f08e168e3874cb54984408e3976dafdf5616d511952c425b5ac088ea3e
- F src/main.c 80a5018291ab7d28565ac0ccd08d955d2b659b157d21aa2a64eff6416f11954d
 -F src/main.c bfe067d61ebbd0e6eb023f1fb6b353021e621cf1657e061d629064a740bfbf6f
++F src/main.c 7128184e581e79689a283647e804dbbbaff88bdf1fe7e77046adbb39b1d37b38
  F src/malloc.c ef796bcc0e81d845d59a469f1cf235056caf9024172fd524e32136e65593647b
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@@ -540,28 -535,28 +540,28 @@@ F src/os.c 91fc69f95ef0528368174dca20f0
  F src/os.h 26890f540b475598cd9881dcc68931377b8d429d3ea3e2eeb64470cde64199f8
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c 3e7b5ba36dd853de04f5b14a023ce3bc929297c63815d8c4a988e193fdb69135
 -F src/os_unix.c feac74a0ba7652c405ba30f61d9e738be717d15899f2915a129ef160a3e5b26b
++F src/os_unix.c 63d998a28fc6d71e4333db3bf42ddbf674b375826ad1bad2f4305552bb4a5a25
  F src/os_win.c 77d39873836f1831a9b0b91894fec45ab0e9ca8e067dc8c549e1d1eca1566fe9
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 931ff72248684e85924f1ddf99cdb23c25c44197c16a82699c19a7a547e1322f
 -F src/pager.c b84bb7384dea4bd80c8472d68c749655c4ed4919bb9555bfa80e79184fd00767
 -F src/pager.h 9d38ac4b9f0e1361f7ddb6aa0675a54f5e4f085703108d3aafe7868872113f92
 -F src/parse.y 0bd7971a7489bbf6c3726f1b50da6e508bdff8fa493e9cc3f5a96b12cbb2361e
++F src/pager.c bdb6b50eb01ad554b40234695cf4ad8b2cbe1be70e333f7e32394fd109a5b65a
 +F src/pager.h 034a193e53d6649bdb641aa996e38094dbb7cbe365d8c10eba871a38a0f5ebb3
- F src/parse.y 6a20fbf70d4eeb36bd7030b96d55ed4da83b728eff4467f21ddfedb4c04ef073
++F src/parse.y 59631359574901cc5cd4780939a6740f6bc597bd473334e744c1a1c32d9adef3
  F src/pcache.c 084e638432c610f95aea72b8509f0845d2791293f39d1b82f0c0a7e089c3bb6b
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c 54881292a9a5db202b2c0ac541c5e3ef9a5e8c4f1c1383adb2601d5499a60e65
- F src/pragma.c 70d3d477a3c27b7e6471204b786624abc1bf55ec9ceafd775dc8b592e794fbcb
- F src/pragma.h e6951efe2304341b3830219adad899e20e0b0e3e29bb99bb0a2383eb2e59b97d
+ F src/pragma.c fdcc0d3350cbfa54b21f506f9b0fd87171d86ca661a32413097c3d55660f55c4
 -F src/pragma.h 87330ed2fbfa2a1274de93ca0ab850fba336189228cb256089202c3b52766fad
++F src/pragma.h f98354c48571c490927029510566839bf9e7242569bfbb48032dafeb008481d2
  F src/prepare.c 8f07616db04337057b8498b72d051ee90f73c54615c2e908c05404cef1e060b7
  F src/printf.c 5901672228f305f7d493cbc4e7d76a61a5caecdbc1cd06b1f9ec42ea4265cf8d
 -F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
 +F src/random.c c6e61d041f230d46c658e6dfe7165fc1ecb0093d5fe28cfe74f389d261dc3af8
- F src/resolve.c b9e60afa56d0484ee573aba54d9e73603736236df33d2ae3421b4cd0367d907d
+ F src/resolve.c ae65c88f5d0d4bc0052b203773d407efa2387c2bd6b202f87178006c7bb8632c
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 586b6adc13c80ef67252bc74b3663ad3af3fce9ae931ac6d1446427da827afdf
- F src/shell.c.in 923671ae56ad899db71296d0ebefea9c85e7e52ef087c8a097f3f3a3a3ade98c
- F src/sqlite.h.in 8b9e5003e969aa28b726f855dbd5dfc96ae33a239031e2ee6215eea2c2ada050
 -F src/select.c 32d25b5af6c708aa63373c78c2e59681910387a7a78c08ec3086cadc77d41627
++F src/select.c 8c2341a9802e0979092d920544823a778f4c2bddf59d323d5e4ed6204ab50550
+ F src/shell.c.in e80fe5118fc3b942c1becc67ebfca6a887dbab9295e0bd5b6da61c4375baa637
 -F src/sqlite.h.in f0c1ecb5af508aa8e970cd8bc0ec851e6c380b81825038d458846c2fcdfcef50
++F src/sqlite.h.in 024a062670b27cd9ff7aeb5f63d341a6d32b95ebf5eff08c13bb07322f3d004a
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510
- F src/sqliteInt.h 9e0abe82c74ea868a05c1b415adb5eef3921618b1322d485e08a9d8b7c91aaaf
 -F src/sqliteInt.h df3bc11691f5977041efb0d16fcd2b5e10e97bc5f8231edd3fbc0ed24978be30
++F src/sqliteInt.h d8a5d7c8d55454e56c92e873bd6b0388d8cff335c8cd95713c8abc844de5c024
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
  F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@@ -621,33 -616,33 +621,33 @@@ F src/test_window.c cdae419fdcea5bad6dc
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
  F src/tokenize.c bae853ad129d1129c063de8630a3e99e306283bc40146f359b1bb91be2c08f1e
- F src/treeview.c 43f88d0fd19976a60aee6867959213b438593276f1e8179048df85f416a1ab19
+ F src/treeview.c 9dfdb7ff7f6645d0a6458dbdf4ffac041c071c4533a6db8bb6e502b979ac67bc
  F src/trigger.c 3f612ce5f0858b6c23460a3c799d01f408b49b0b29d931d8b8e6fc224a8667de
 -F src/update.c 69c4c10bc6873a80c0a77cb578f9fc60ee90003d03f9530bc3370fa24615772d
 +F src/update.c dc362b5c6b459cb1915cadb94270f1f0de68657a82293eb5ce9aaf880d0af1ba
  F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
- F src/util.c 3f27a1eae01c8bbbb8cdef2f26bd8e6a2a7db08106ef7c3dcc990787a5da6e86
+ F src/util.c 30df8356e231dad33be10bb27897655002668343280004ba28c734489414a167
 -F src/vacuum.c 454973a59fb20bb982efc2df568a098616db6328a0491b6e84e2e07f7333db45
 -F src/vdbe.c 12a68a7335cb6a305fe4f58bdf3b7ddbc670d725acb3c757759be5f78d0c1ac0
 +F src/vacuum.c a02ce4cb7c45741675bac31528b4bb7b8821727cf3306ade2b06361b4704b248
- F src/vdbe.c b515546f4f974e1a67b0939cd95df845c864aae8a33edb84ddf757e063d4828c
++F src/vdbe.c 2f180b062f09334c61b76a2bd3c7054f99643d3be85d2e28558e4bbcb2a301c8
  F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
  F src/vdbeInt.h 38206c8dd6b60ff03d9fd4f626b1b4fd0eef7cdc44f2fc2c1973b0f932a3f26b
- F src/vdbeapi.c aa5aaf2c37676b83af5724c6cd8207a3064ed46a217fd180957f75ac84f7a2a5
- F src/vdbeaux.c d27f21b5292f3fa693620396691ed735c20628c85d30dbd8e56b2f3e9dbb6779
- F src/vdbeblob.c 60a7694760e35b2bba166cf49eb6a1eb0b31581102b49de78008ca3032406065
- F src/vdbemem.c 0e830c2aab24241eed85bd4c8a5bd8c9b959081316477440bfffb35089ba7d0b
+ F src/vdbeapi.c 7b83468feb1d42a09d4c2e5241a3eaa3d1f138e289a843cba9fd3f1dad95ca67
 -F src/vdbeaux.c a57c760d1897f1b72f6fae26983df363db7a2c42d88721187e907f2c84862b42
++F src/vdbeaux.c ec21bd1475c69543d961b241b51ad4321342ae1ec1d64969063efbb3db7d23a0
+ F src/vdbeblob.c 292e96c01c4219fca71d74e1002906d43eb232af4bd83f7552a3faec741f3eb8
+ F src/vdbemem.c 8be0af1060012520381d3296fcb1718e80cd5b99ce04f51f7e1c4dba4072caac
  F src/vdbesort.c cd5130f683706c1a43e165a74187745fb3351cb56052cf9dc91de820634bbde2
  F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823
  F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
- F src/vtab.c c289aa504f278f23b64cb33c95d284495c5f405bd363b419d31c92c61c14df1f
+ F src/vtab.c d07cc24dd84b0b51bf05adb187b0d2e6b0cac56cfbc0197995a26d4f8fa5c7e2
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 -F src/wal.c cf63450f720845d309b4c6050b59861c423c71fbc86c6dd853dfb5ce274ffa9e
 -F src/wal.h d01234e828943e002040c22a7e017642962f9fd9b2dc142fa599769ae4e459e9
 +F src/wal.c 8e8fb6d6451ca8fa6b633d3bd8625214c8eab925de09fe9314a43f997f534872
 +F src/wal.h 7a733af13b966ecb81872ce397e862116b3575ea53245b90b139a2873ee87825
- F src/walker.c 7342becedf3f8a26f9817f08436bdf8b56ad69af83705f6b9320a0ad3092c2ac
- F src/where.c d9215db24449143da844ab86c727bbbef94ad45c53cc17bc0051386472db5789
- F src/whereInt.h 9248161dd004f625ce5d3841ca9b99fed3fc8d61522cf76340fc5217dbe1375b
- F src/wherecode.c 0208553a0602146b5640747c0e3f7a8c785108c2d06a160b69f23491e9dc781e
- F src/whereexpr.c e5fdac355deef93a821f03b90770f92f2be833e92bbdeff8ac1b6c2ae1f74356
- F src/window.c f27e34e896f84e0bedec32b027d4531f224971ce3e16f8e1d97a968875ddcec1
+ F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
+ F src/where.c ecabef93b0f14442a73eca205fc960428984d75fbdc7d60226b7fc9cac127187
+ F src/whereInt.h 83877a75a1bce056ea44aff02f1dfa958ad1d6038c213ddadb8652003b45151d
+ F src/wherecode.c a1d79cc5a11f44b079bf2352e542ddb265f84cfa6c835d40a9f195dbe5fff83e
+ F src/whereexpr.c 17bdbf4f5b490e70a18635498f0b910a558f953a9bf80af7f19cbde6e60e6825
+ F src/window.c 0dff6fedf61493490d21ced5d7a7b4321d4c0db6c8123f0179c46080a860850a
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
  F test/affinity3.test eecb0dabee4b7765a8465439d5e99429279ffba23ca74a7eae270a452799f9e7
@@@ -826,7 -810,7 +826,7 @@@ F test/corruptJ.test 4d5ccc4bf959464229
  F test/corruptK.test 5b4212fe346699831c5ad559a62c54e11c0611bdde1ea8423a091f9c01aa32af
  F test/corruptL.test 7d3440831ca24ba64305583c4d4506d417d3f89f5775c0b7cc8102db078f8ff5
  F test/corruptM.test 7d574320e08c1b36caa3e47262061f186367d593a7e305d35f15289cc2c3e067
- F test/corruptN.test b8fd041aabfc0a3ff173f38bdefa907c02dfe58f7e639c79bac7e2e5791c958a
 -F test/corruptN.test 14962dc3f5567b5722a24d166bf143bec790673476f7b0932d82609210d1becd
++F test/corruptN.test 89d078b7c5c5197f4fca14b4ed1d45196fcad52aa22439ffbc61baac758a56b6
  F test/cost.test b11cdbf9f11ffe8ef99c9881bf390e61fe92baf2182bad1dbe6de59a7295c576
  F test/count.test 5364003488249957750a5f15ee42ca1cd7b100b1131c2dc71fff266a1250bf55
  F test/countofview.test e17d6e6688cf74f22783c9ec6e788c0790ee4fbbaee713affd00b1ac0bb39b86
@@@ -1290,7 -1275,8 +1291,7 @@@ F test/pagesize.test 5769fc62d8c890a83a
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test 81a3bf923b4ee2bf673c2b10b5751db1ffe05f84e021d1ce93025cd96f5474ad
 -F test/permutations.test bceeee7ff77e371ce105773dda13111333cdaeb9c72311751febf39ac5b313a6
++F test/permutations.test c1dc4c94de2bf592e27b9ac7baed0ab27fd8a7c34f395a2e3c2df47e09950649
  F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
  F test/pragma.test cae534c12a033a5c319ccc94f50b32811acdef9f67bf19a82ff42697caccd69f
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@@@ -1891,7 -1874,7 +1891,7 @@@ F tool/mkmsvcmin.tcl 6ecab9fe22c2c8de4d
  F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
  F tool/mkopcodeh.tcl 130b88697da6ec5b89b41844d955d08fb62c2552e889dec8c7bcecb28d8f50bd
  F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
- F tool/mkpragmatab.tcl 9e0f8690f36b059bac0f60abedcdcf0a57ea91ee501ba586bfd90fcf986d8361
 -F tool/mkpragmatab.tcl de206c64b6e9ac8cd5e3cbd0ffe456f07d5710605ef8385d677e60ce3335ea12
++F tool/mkpragmatab.tcl 6c5c676b10f9ccac33b38b2b27d3b0578561f5c39137410e1e616ac3b79a4316
  F tool/mkshellc.tcl df5d249617f9cc94d5c48eb0401673eb3f31f383ecbc54e8a13ca3dd97e89450
  F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
  F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
@@@ -1960,7 -1941,7 +1960,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 47a9b75981e7e2d2eeb14f83f994c51d2c70d2f5537c02f6028896dd7b4d62ed 127173e0baba8839d5922a2537dc42e6bb64ed1499b0700bf3e95d42c2f260b3
- R d7410c21987a774296e6d2247d9c4328
 -P 127173e0baba8839d5922a2537dc42e6bb64ed1499b0700bf3e95d42c2f260b3 e162da3ab4c183b67872be004035c48fc8f20084bc5757aec27410ce23a36631
 -R 88c1b4961d8cde29aa45dba302686b03
++P bce02eaa0c379d9b90bfaa766fd24d7dd2f009f840ee18cc4f2c7d7b6f7aa368 7e2bc836f6aedfd69588f5723f8797f11ee6437d3b63ffc43c88d40e3baadb1c
++R f4152daac42142b94ccc7b507134c638
  U drh
- Z b35109e6c6dab7470836fa974e5c6f3e
 -Z 41a95deae9a1d22d0281c1b2931e3d87
++Z 1e248306ce0f5d31350280fb98581cfa
diff --cc manifest.uuid
index 2c33992d9de9caed7db92b1c2729b6eca0c2611f,3431523532da7ca1b4c735a79509204d703eb20a..c0bd673208ba7072311226c36548af826f4805fd
@@@ -1,1 -1,1 +1,1 @@@
- bce02eaa0c379d9b90bfaa766fd24d7dd2f009f840ee18cc4f2c7d7b6f7aa368
 -7e2bc836f6aedfd69588f5723f8797f11ee6437d3b63ffc43c88d40e3baadb1c
++1958e6facaaca8e695ae3d7e79acdba0025d6221653397ea45f9b8daa56c8d9b
diff --cc src/bitvec.c
Simple merge
diff --cc src/btree.c
index 83ad662ef23a8c7172816000a5154f5c873dfa3e,bd28efa14ce2cf400470f46ece8bc92397cf9ec9..451e274d6bdf9fd339254bc24bd34ad0531cb11c
@@@ -10026,8 -9549,9 +10018,10 @@@ static int clearDatabasePage
    }
    rc = getAndInitPage(pBt, pgno, &pPage, 0, 0);
    if( rc ) return rc;
-   if( pPage->bBusy ){
 +  setMempageRoot(pPage, pgnoRoot);
+   if( (pBt->openFlags & BTREE_SINGLE)==0 
+    && sqlite3PagerPageRefcount(pPage->pDbPage)!=1
+   ){
      rc = SQLITE_CORRUPT_BKPT;
      goto cleardatabasepage_out;
    }
diff --cc src/btreeInt.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/func.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
Simple merge
diff --cc src/pragma.h
Simple merge
diff --cc src/select.c
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
Simple merge
Simple merge
Simple merge