]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Have sqlite3session_diff() automatically attach tables to session objects, as it...
authordan <Dan Kennedy>
Tue, 8 Apr 2025 15:58:19 +0000 (15:58 +0000)
committerdan <Dan Kennedy>
Tue, 8 Apr 2025 15:58:19 +0000 (15:58 +0000)
FossilOrigin-Name: ec1641858ec48d96f5a2ddce4575ebd40a18932d69831fdb4eafc9acf508f216

ext/session/sessionD.test
ext/session/sqlite3session.c
manifest
manifest.uuid

index 9fccbfa96f0264b54751b164dc64e5f44074b4b9..f60fbabc2a5c3a04b6470e2abcd5ecf9df78b3f1 100644 (file)
@@ -230,4 +230,32 @@ do_catchsql_test 4.5.2 {
   SELECT * FROM ixua.i8;
 } {1 {no such table: ixua.i8}}
 
+#-------------------------------------------------------------------------
+# Test that sqlite3session_diff() really does automatically attach tables,
+# as documented.
+#
+reset_db
+forcedelete test.db2
+do_execsql_test 4.0 {
+  ATTACH 'test.db2' AS two;
+  CREATE TABLE two.t1(a PRIMARY KEY, b, c);
+  CREATE TABLE t1(a PRIMARY KEY, b, c);
+
+  INSERT INTO two.t1 VALUES(1, 2, 3), (4, 5, 6), (7, 8, 9);
+}
+
+do_test 4.1 {
+  sqlite3session S db main
+  S attach t8
+  S diff two t1
+} {}
+
+do_changeset_test 4.2 S {
+  {DELETE t1 0 X.. {i 1 i 2 i 3} {}} 
+  {DELETE t1 0 X.. {i 4 i 5 i 6} {}}
+  {DELETE t1 0 X.. {i 7 i 8 i 9} {}}
+}
+
+S delete
+
 finish_test
index 7d6f21255b0fcefccd6e3984b76a3beec71efb52..6c386f42e2006d129626d759db0c4e4243959b12 100644 (file)
@@ -2216,7 +2216,9 @@ int sqlite3session_diff(
     SessionTable *pTo;            /* Table zTbl */
 
     /* Locate and if necessary initialize the target table object */
+    pSession->bAutoAttach++;
     rc = sessionFindTable(pSession, zTbl, &pTo);
+    pSession->bAutoAttach--;
     if( pTo==0 ) goto diff_out;
     if( sessionInitTable(pSession, pTo, pSession->db, pSession->zDb) ){
       rc = pSession->rc;
index aa15323e07ece3791f2893b7c43bc3499c6c55db..7b327aaaccd36f1e975a673d9cddddfc7feb4100 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Reduce\sthe\sdelay\scaused\sby\santi-virus\sretries\sin\sWindows\swhen\sattempting\sto\nopen\sa\sdatabase\sfile\swith\sinsufficient\spermission.
-D 2025-03-26T22:23:22.787
+C Have\ssqlite3session_diff()\sautomatically\sattach\stables\sto\ssession\sobjects,\sas\sit\shas\salways\sbeen\sdocumented\sto\sdo.
+D 2025-04-08T15:58:19.760
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -588,7 +588,7 @@ F ext/session/session9.test 4e3aff62d6b4294498ddbe309076de06f4fddffad4fe5f5a6c03
 F ext/session/sessionA.test 1feeab0b8e03527f08f2f1defb442da25480138f
 F ext/session/sessionB.test c4fb7f8a688787111606e123a555f18ee04f65bb9f2a4bb2aa71d55ce4e6d02c
 F ext/session/sessionC.test f8a5508bc059ae646e5ec9bdbca66ad24bc92fe99fda5790ac57e1f59fce2fdf
-F ext/session/sessionD.test f5c6a762d00bc6ca9d561695c322ba8ecca2bed370486707ef37cf565d2f6c73
+F ext/session/sessionD.test 9d5d1d07bfc2de8400cd8607297dcd405e2889ccae58ae17db054de5fcae37ab
 F ext/session/sessionE.test b2010949c9d7415306f64e3c2072ddabc4b8250c98478d3c0c4d064bce83111d
 F ext/session/sessionF.test d37ed800881e742c208df443537bf29aa49fd56eac520d0f0c6df3e6320f3401
 F ext/session/sessionG.test 3efe388282d641b65485b5462e67851002cd91a282dc95b685d085eb8efdad0a
@@ -616,7 +616,7 @@ F ext/session/sessionrowid.test 85187c2f1b38861a5844868126f69f9ec62223a03449a98a
 F ext/session/sessionsize.test 8fcf4685993c3dbaa46a24183940ab9f5aa9ed0d23e5fb63bfffbdb56134b795
 F ext/session/sessionstat1.test 5e718d5888c0c49bbb33a7a4f816366db85f59f6a4f97544a806421b85dc2dec
 F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
-F ext/session/sqlite3session.c 8011b9531c7dd8dce55226def022f3303ce40d0b45966877f2c35185f4b1c3fc
+F ext/session/sqlite3session.c b0f44e89facdf03feacd040b18b6fb04a5cc55095be8b688f3cbb1412eeab993
 F ext/session/sqlite3session.h aa5de3ec8ef0e5313e9f65dafd69e8ba292d170f07b57da9200c040068dab061
 F ext/session/test_session.c 12e0a2c15fd60f92da4bb29c697c9177ff0c0dbcdc5129a54c47e999f147937a
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
@@ -2215,9 +2215,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 1f98fc07fdf06d699ffbf1521b0b5e937a582017e4325bd994b488e06becbecc ccdd67ad9a508530ccfcec582410768c24bca4eb8b05939577fb99a50dd44b15
-R 6c2ac8039a69021b5d572668708823ae
-T +closed ccdd67ad9a508530ccfcec582410768c24bca4eb8b05939577fb99a50dd44b15
-U drh
-Z 0d5fc73351502e2a61a26190ba1c4a5b
+P d25c8a6222d4e3f20c137b1490572ad491d9c404ff12947d5867c3e00fcb615c
+R 13e264ccaec04013121101913f0528fa
+U dan
+Z c782dc2350defbb4dda4222346152588
 # Remove this line to create a well-formed Fossil manifest.
index 35e8e088e607c568f0b006800139ab8c6e4a18b9..c9ba77d5210f8964da18f4eaf8d5f7770f189b78 100644 (file)
@@ -1 +1 @@
-d25c8a6222d4e3f20c137b1490572ad491d9c404ff12947d5867c3e00fcb615c
+ec1641858ec48d96f5a2ddce4575ebd40a18932d69831fdb4eafc9acf508f216