]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Use an ephemeral table rather than a RowSet to remember rowids in the
authordrh <drh@noemail.net>
Thu, 19 Nov 2020 19:43:46 +0000 (19:43 +0000)
committerdrh <drh@noemail.net>
Thu, 19 Nov 2020 19:43:46 +0000 (19:43 +0000)
two-pass UPDATE algorithm, as this uses much less memory for large UPDATEs.

FossilOrigin-Name: 842c432772e6cd8464cdb7bfdb38789adeea9aa9e0486d4034cc9841f085f517

1  2 
manifest
manifest.uuid
src/vdbe.c

diff --cc manifest
index 9f2eb9489398019f2629b510c958e21fa1069556,91969d914d805458f9c3ffb8c094800db38c7bac..83d71f54b53b6b3568c766ee5cbf57d78ebcccd4
+++ 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 e272363bc486b56c9f0bc3aabb8379243c07d728,648f90e2a17fd59c50f103e7d4b80a2ff472a1c4..a5fa26bc927101dc14a837780bb0aeed539991a5
@@@ -1,1 -1,1 +1,1 @@@
- 849e4e14fd06eda512381f5f8aa65f75ad0a955e835da7c63526a53cf5e8f4dc
 -df8ce2675b070fcdc338918e7652a26ffc90439fe399ceac206fadf8a93a681f
++842c432772e6cd8464cdb7bfdb38789adeea9aa9e0486d4034cc9841f085f517
diff --cc src/vdbe.c
Simple merge