]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid returning an SQLITE_SCHEMA error from within sqlite3session_diff() if the schem...
authordrh <>
Wed, 20 May 2026 11:56:17 +0000 (11:56 +0000)
committerdrh <>
Wed, 20 May 2026 11:56:17 +0000 (11:56 +0000)
FossilOrigin-Name: 15fb7ffe4be49d5242c47bef1b3cad5c923cd7f500896058db4dd257bc7b3924

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

index 54e9a62151dc3099ee84610779855d8647870afe..21852a5e83fae3f349c78386399dcd71df03a51d 100644 (file)
@@ -228,5 +228,30 @@ do_execsql_test 3.8 {
   SELECT * FROM c1;
 } {two}
 
+#-------------------------------------------------------------------------
+reset_db
+
+do_execsql_test 4.0 {
+  CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c INTEGER);
+  ATTACH ':memory:' AS aux;
+  CREATE TABLE aux.t1(a INTEGER PRIMARY KEY, b TEXT, c INTEGER);
+}
+
+do_test 4.1 {
+  sqlite3session S db main
+  S diff aux t1
+} {}
+
+do_test 4.2 {
+  sqlite3changeset_apply_v2 -ignorenoop -noaction db "" conflict 
+} {}
+
+breakpoint
+do_test 4.3 {
+  S diff aux t1
+} {}
+
+S delete
+
 finish_test
 
index b37a91071ba1bfa3046145b1ff598d3fbad38717..1083a1d593058550a88e49cafbc5478d5bd1919f 100644 (file)
@@ -2137,7 +2137,7 @@ static int sessionDiffFindNew(
     rc = SQLITE_NOMEM;
   }else{
     sqlite3_stmt *pStmt;
-    rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
+    rc = sqlite3_prepare_v2(pSession->db, zStmt, -1, &pStmt, 0);
     if( rc==SQLITE_OK ){
       SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
       pDiffCtx->pStmt = pStmt;
@@ -2200,7 +2200,7 @@ static int sessionDiffFindModified(
       rc = SQLITE_NOMEM;
     }else{
       sqlite3_stmt *pStmt;
-      rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
+      rc = sqlite3_prepare_v2(pSession->db, zStmt, -1, &pStmt, 0);
 
       if( rc==SQLITE_OK ){
         SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
index 4cf77c7e991cb6eba290342d378b5a725079f2d1..8a549b908bed239ee028677abb7bcba30c8b92d5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Increase\sthe\spatch\slevel\sto\s3.53.2
-D 2026-05-20T10:04:04.557
+C Avoid\sreturning\san\sSQLITE_SCHEMA\serror\sfrom\swithin\ssqlite3session_diff()\sif\sthe\sschema\shas\sbeen\srecently\smodified.
+D 2026-05-20T11:56:17.730
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -564,7 +564,7 @@ F ext/session/sessionfault2.test b0d6a7c1d7398a7e800d84657404909c7d385965ea8576d
 F ext/session/sessionfault3.test 9397819ec25b0960c5bc03c78613f9cb5cacc970f83e817aec1775c2a839a787
 F ext/session/sessioninvert.test 9018f6a7387ac745084b6374c5e1aa14d648b372e6e1181cfab3df632b662d26 x
 F ext/session/sessionmem.test f2a735db84a3e9e19f571033b725b0b2daf847f3f28b1da55a0c1a4e74f1de09
-F ext/session/sessionnoact.test 4c7ae5c7d351cb5323bca62b6b095592ad24bd90a6713c178b62ab0063d23e19
+F ext/session/sessionnoact.test 2cf060c12a7a23e663f0ec796561e58638c5c10a846653d37be886414b06ddc9
 F ext/session/sessionnoop.test a9366a36a95ef85f8a3687856ebef46983df399541174cb1ede2ee53b8011bc7
 F ext/session/sessionnoop2.test 2d8146321785bdc7cee8966d984560184cfca83fd46da2ff81ea883d6e977b36
 F ext/session/sessionrebase.test 702378bdcb5062f1106e74457beca8797d09c113a81768734a58b197b5b334e2
@@ -572,7 +572,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 48b5585ea444c9646294d86f16ad3efa28dd19632dd3e295557c1ab40c447a4c
+F ext/session/sqlite3session.c e26a3c4352387809f505acd2186d7f6b024260503402a136e0fe7b36a9a4d60c
 F ext/session/sqlite3session.h 063e7bf7be2fff874456f452a224b5b3013b25682d108933b0351c93a1279b9c
 F ext/session/test_session.c 2a02a68b522e2f3d4a64b2a4733af54b0f3e500769aeccd5bcbdd440103db069
 F ext/wasm/GNUmakefile 68c750f173106d9d63f12c1edf1256c6f4bad9894b155da5db64322f4912de4b
@@ -2198,8 +2198,9 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P fad98805b7d73abf0cf17919397ac50757a2b888354fcf42b72640a12f32926c
-R b9343f7a0e5c27d681ed6de3418b3ad0
+P 076d214410fc8aba38c7ada60a985adc6773e51a13add19cbd07a91375b483fd
+Q +20110547a117912be68d91bc006e92c45beffde16c6bcdf062bf8971c9a9a864
+R aaf8355752711c7f37588352a1634c6a
 U drh
-Z e3824ba0ca5c578431a3f54cb06b78af
+Z e7da809403b56f7bc4f88c2926b4561c
 # Remove this line to create a well-formed Fossil manifest.
index 65113d3897d787f308574ec7047f813f4b40813a..bed3e2bfd0ba9ebaf8a4622fa92549135fd2f98a 100644 (file)
@@ -1 +1 @@
-076d214410fc8aba38c7ada60a985adc6773e51a13add19cbd07a91375b483fd
+15fb7ffe4be49d5242c47bef1b3cad5c923cd7f500896058db4dd257bc7b3924