From: drh <> Date: Sun, 28 Jun 2026 19:05:29 +0000 (+0000) Subject: Mark shadow tables when registering a new virtual table that already exists X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a38e6fdf96b7630e8eecb5544e5d4af3ce8f9593;p=thirdparty%2Fsqlite.git Mark shadow tables when registering a new virtual table that already exists after the schema has loaded. Test cases in TH3. [bugs:/info/2026-06-26T12:45:51Z|Bug 2026-06-26T12:45:51Z]. FossilOrigin-Name: 3e80958a7052a123f4599d64baa8cc31a761e5a58d04c75ca38f2a375d247808 --- diff --git a/manifest b/manifest index 76a1026643..841ae9f46d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sincorrect\sheader\scomment\son\sthe\ssqlite3ShadowTableName()\sfunction.\nComment\schagne\sonly.\sNo\schanges\sto\scode. -D 2026-06-28T16:40:34.591 +C Mark\sshadow\stables\swhen\sregistering\sa\snew\svirtual\stable\sthat\salready\sexists\nafter\sthe\sschema\shas\sloaded.\s\sTest\scases\sin\sTH3.\n[bugs:/info/2026-06-26T12:45:51Z|Bug\s2026-06-26T12:45:51Z]. +D 2026-06-28T19:05:29.919 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -816,7 +816,7 @@ F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2 F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70 F src/vdbetrace.c 49e689f751505839742f4a243a1a566e57d5c9eaf0d33bbaa26e2de3febf7b41 F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3 -F src/vtab.c d7f87f68af90e535d7b4a2c01580b4ca1d1df24f8c68283d71dbba15a661800a +F src/vtab.c 1fa9e01d3da114a634a6ba1f36de8a3af6381b675cbbca399f0de64934e50ac6 F src/vxworks.h 9d18819c5235b49c2340a8a4d48195ec5d5afb637b152406de95a9436beeaeab F src/wal.c abfd99239725a258af4f733681b24dd7a9ee298babe389a36d29c197e2443ebf F src/wal.h ba252daaa94f889f4b2c17c027e823d9be47ce39da1d3799886bbd51f0490452 @@ -2210,8 +2210,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 130d4d10dae5957c2be50696545157cd98b6a976affa0c887ff9e1c9e17e97ab -R 4d000597c5dc1fdf4238809b178a45b8 +P b5af1a5c7fc8c84e077eb3aa23fbb8712fcaf5143c228db4042f3d811fa6beaf +R 3eb1b598f9b12592279a05927c62035b U drh -Z 9c60afb3256cec4db5080588b3f09bdf +Z 2093212e730828c30bc09ce27259a526 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 5f76247ad1..37204d3f0d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b5af1a5c7fc8c84e077eb3aa23fbb8712fcaf5143c228db4042f3d811fa6beaf +3e80958a7052a123f4599d64baa8cc31a761e5a58d04c75ca38f2a375d247808 diff --git a/src/vtab.c b/src/vtab.c index 24a91d36a4..e1b911c797 100644 --- a/src/vtab.c +++ b/src/vtab.c @@ -722,6 +722,8 @@ int sqlite3VtabCallConnect(Parse *pParse, Table *pTab){ if( rc!=SQLITE_OK ){ sqlite3ErrorMsg(pParse, "%s", zErr); pParse->rc = rc; + }else{ + sqlite3MarkAllShadowTablesOf(db, pTab); } sqlite3DbFree(db, zErr); }