From: drh <> Date: Thu, 4 Feb 2021 23:20:13 +0000 (+0000) Subject: Change the RETURNING algorithm so that outputs accumulate in an ephemeral X-Git-Tag: version-3.35.0~111 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70bd2124ed8dba89ee3ad2ccb25c5686b1d0ead5;p=thirdparty%2Fsqlite.git Change the RETURNING algorithm so that outputs accumulate in an ephemeral table until all modifications have been completed, and only then do results start being returned. This should help prevent problems with interleaved sqlite3_step() calls on two separate DML statements. It also seems to be closer to how PostgreSQL works, which might prevent compatibility problems. FossilOrigin-Name: c4615eb28c3dd2d473daf104f32e60d02799f3158d9d275a899c39129cc71401 --- 70bd2124ed8dba89ee3ad2ccb25c5686b1d0ead5 diff --cc manifest index cb5c4da361,a65876b333..6a7da7c071 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Add\sNEVER()\sto\sa\sbranch\sthat\scheck-in\s[5d54d9fd40638138]\sapparently\smade\nunreachable. - D 2021-02-04T13:52:34.346 -C Remove\sdead\scode.\s\sFix\sRETURNING\sfor\sINSERT\sinto\sa\svirtual\stable. -D 2021-02-04T22:59:19.826 ++C Change\sthe\sRETURNING\salgorithm\sso\sthat\soutputs\saccumulate\sin\san\sephemeral\ntable\suntil\sall\smodifications\shave\sbeen\scompleted,\sand\sonly\sthen\sdo\sresults\nstart\sbeing\sreturned.\s\sThis\sshould\shelp\sprevent\sproblems\swith\sinterleaved\nsqlite3_step()\scalls\son\stwo\sseparate\sDML\sstatements.\s\sIt\salso\sseems\sto\sbe\ncloser\sto\show\sPostgreSQL\sworks,\swhich\smight\sprevent\scompatibility\sproblems. ++D 2021-02-04T23:20:13.904 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -1899,7 -1899,7 +1899,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 0f34f241d37cc4f31dc657a6fc33815fa5e24298487121cb27c29118524b8ee7 - R cff545e4a39efc504a1ff4bec6444fd1 -P 757b74ba0fd64634a365bd73955181191767ad8816a33a362e32ece250299a51 ++P 5c8e6296aa9f69a092364524b716ba894f113f7f1e6024b9a2eaa01c239e65c1 dbfa38699c87ab4bf390666e411dda8d375c7b53b9b4fb131adacbf575867a72 + R 88d822e5d89f75ce7408ba510079f31a ++T +closed dbfa38699c87ab4bf390666e411dda8d375c7b53b9b4fb131adacbf575867a72 U drh - Z e8f529c01cdfd85106db62be4d9db740 -Z c8bf85f0968e78afc9da5bd08d2fe521 ++Z a2b37659b7969f20723dc948c328e70a diff --cc manifest.uuid index 0cefd72434,8d669b7bff..abc996f2a3 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 5c8e6296aa9f69a092364524b716ba894f113f7f1e6024b9a2eaa01c239e65c1 -dbfa38699c87ab4bf390666e411dda8d375c7b53b9b4fb131adacbf575867a72 ++c4615eb28c3dd2d473daf104f32e60d02799f3158d9d275a899c39129cc71401