From: drh Date: Thu, 19 Nov 2020 19:43:46 +0000 (+0000) Subject: Use an ephemeral table rather than a RowSet to remember rowids in the X-Git-Tag: version-3.34.0~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5dc18e33aefa9eea74cba2084120d4b76d78a654;p=thirdparty%2Fsqlite.git Use an ephemeral table rather than a RowSet to remember rowids in the two-pass UPDATE algorithm, as this uses much less memory for large UPDATEs. FossilOrigin-Name: 842c432772e6cd8464cdb7bfdb38789adeea9aa9e0486d4034cc9841f085f517 --- 5dc18e33aefa9eea74cba2084120d4b76d78a654 diff --cc manifest index 9f2eb94893,91969d914d..83d71f54b5 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C If\sa\sread()\sor\spread()\sindicates\sthat\sthe\sdatabase\sfile\sis\sunreadable\sdue\sto\nfilesystem\sdamage,\sthen\sit\sreturns\sSQLITE_IOERR_CORRUPTFS\swhich\sis\sthen\nconverted\sinto\sSQLITE_CORRUPT\sbefore\sbeing\sreturned\sto\sthe\sapplication. - D 2020-11-18T23:44:41.584 -C Claw\sback\smost\sof\sthe\sperformance\slost\sin\sthe\sprevious\scommit. -D 2020-11-17T21:26:13.913 ++C Use\san\sephemeral\stable\srather\sthan\sa\sRowSet\sto\sremember\srowids\sin\sthe\ntwo-pass\sUPDATE\salgorithm,\sas\sthis\suses\smuch\sless\smemory\sfor\slarge\sUPDATEs. ++D 2020-11-19T19:43:46.382 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -610,7 -609,7 +610,7 @@@ F src/upsert.c 2920de71b20f04fe25eb00b6 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0 F src/util.c c0c7977de7ef9b8cb10f6c85f2d0557889a658f817b0455909a49179ba4c8002 F src/vacuum.c 492422c1463c076473bae1858799c7a0a5fe87a133d1223239447c422cd26286 - F src/vdbe.c 0f4402a3f8ab7d7f37fbed04d74007f978805aa6ca09738606331e0dc7b2b614 -F src/vdbe.c 59e8caad2c5520c942ee8321a008991a0d36be2b0641fd16dd941d89e781ea97 ++F src/vdbe.c d24a43b6b1ed2dba893636a14f5e56001444ab3fd5465e3bca8ab01799840acd F src/vdbe.h 83603854bfa5851af601fc0947671eb260f4363e62e960e8a994fb9bbcd2aaa1 F src/vdbeInt.h 3ca5e9fd6e095a8b6cf6bc3587a46fc93499503b2fe48951e1034ba9e2ce2f6e F src/vdbeapi.c c5e7cb2ab89a24d7f723e87b508f21bfb1359a04db5277d8a99fd1e015c12eb9 @@@ -1885,8 -1883,7 +1885,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P 184e9d782dfbad8011b5b0043b3fd8e5a369ed7076e37e14b301483ce5ffe5db b887c7504e7edeba758f3c1203c6cc56eef499fe05e7e6c6d82939bf7d78c57f - R ca853ae029f53cda2f5e4e09a853497d - T +closed b887c7504e7edeba758f3c1203c6cc56eef499fe05e7e6c6d82939bf7d78c57f -P 4673096dd8c5ed7aed098ff518a6d01d35c40fad991b89fddd91c19a727a4308 -R 4e4cd284a246b3e7da3720d189e4cd5f ++P 849e4e14fd06eda512381f5f8aa65f75ad0a955e835da7c63526a53cf5e8f4dc df8ce2675b070fcdc338918e7652a26ffc90439fe399ceac206fadf8a93a681f ++R 5b0ca35860159e705bbb48c4cfa88f5f ++T +closed df8ce2675b070fcdc338918e7652a26ffc90439fe399ceac206fadf8a93a681f U drh - Z 9d8b812fa0a6ee7104c4c9d6ceb68cc7 -Z 9ab365bfaa4c57c68b10ad5bd403164d ++Z 0ac093dc2dc75a2b8780ce68ce6383a8 diff --cc manifest.uuid index e272363bc4,648f90e2a1..a5fa26bc92 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 849e4e14fd06eda512381f5f8aa65f75ad0a955e835da7c63526a53cf5e8f4dc -df8ce2675b070fcdc338918e7652a26ffc90439fe399ceac206fadf8a93a681f ++842c432772e6cd8464cdb7bfdb38789adeea9aa9e0486d4034cc9841f085f517