]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fail a schema parse if a virtual table or view has a positive integer
authordrh <>
Mon, 11 Oct 2021 15:54:05 +0000 (15:54 +0000)
committerdrh <>
Mon, 11 Oct 2021 15:54:05 +0000 (15:54 +0000)
rootpage.

FossilOrigin-Name: 02656760406add06303afc94eaf9f2be021cbdbc7ac1ca79b139a7d2de9c0dc5

manifest
manifest.uuid
src/build.c

index 541b6d884a1d6e7582a3ba1cfb8ddfd185d3c41f..1644eb92a80341e286dbdb51751a61f94acb4b8f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Use\sthe\sIsOrdinaryTable()\smacro,\snot\sa\stest\sof\stnum,\sto\sdistinguish\stables\nfrom\sviews\sand\svirtual\stables.
-D 2021-10-11T15:21:42.574
+C Fail\sa\sschema\sparse\sif\sa\svirtual\stable\sor\sview\shas\sa\spositive\sinteger\nrootpage.
+D 2021-10-11T15:54:05.911
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -493,7 +493,7 @@ F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
 F src/btree.c 472cc43a2631d9bd917475e0a0ab43949ae27c8541473a90b55c51011f6121cc
 F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
 F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae0
-F src/build.c 46df621d2426fe04494ad83d86d2edb5f79f6a14a4595981e4de2502f172794e
+F src/build.c f70d6375ea5b78daac5b1d24eab53ed7b81c3e68a17dff9581c50c0c06180e00
 F src/callback.c 106b585da1edd57d75fa579d823a5218e0bf37f191dbf7417eeb4a8a9a267dbc
 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 F src/ctime.c 8159d5f706551861c18ec6c8f6bdf105e15ea00367f05d9ab65d31a1077facc1
@@ -1928,7 +1928,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 2e475fecadc6d9e9a0537435827f56a5c7345f69a9b713d7812da4c9a0f27a96
-R 23dee1b3cc387091f13965964f5dc241
+P 6189b7809d774bf697d14e27a4bd961df5c318d261dce97db7801ce83f12c59a
+R 9cb4b9fb9bb00a6c6989d7c18493c0e3
 U drh
-Z 74c39a96d037d547a4b8ace527c80bd7
+Z a0f3b0022c1e0519582697c7b0ed76b0
index e04a1c374cdd098a04c44df3c0e074e0c5c1be66..a137e5c2da085bd6509c13c17c10265b3e17ada3 100644 (file)
@@ -1 +1 @@
-6189b7809d774bf697d14e27a4bd961df5c318d261dce97db7801ce83f12c59a
\ No newline at end of file
+02656760406add06303afc94eaf9f2be021cbdbc7ac1ca79b139a7d2de9c0dc5
\ No newline at end of file
index 1bf0827121aea4f1b03321773420156844486514..55d336c38f44f3f1a7a2d86f8df78e69fcd4e389 100644 (file)
@@ -2586,7 +2586,7 @@ void sqlite3EndTable(
   ** table itself.  So mark it read-only.
   */
   if( db->init.busy ){
-    if( pSelect ){
+    if( pSelect || (!IsOrdinaryTable(p) && db->init.newTnum) ){
       sqlite3ErrorMsg(pParse, "");
       return;
     }