]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem caused by a small SQLITE_LIMIT_LENGTH value and a CREATE TABLE with... toobig-fix
authordan <dan@noemail.net>
Tue, 9 Apr 2019 20:50:44 +0000 (20:50 +0000)
committerdan <dan@noemail.net>
Tue, 9 Apr 2019 20:50:44 +0000 (20:50 +0000)
FossilOrigin-Name: 9b5d408864920b302f2d21abcae1d90f1e0cd68b18262136554ba0e6219d6025

manifest
manifest.uuid
src/build.c
test/sqllimits1.test

index 9e5f589190fc74e0bbca5747264700b359f135da..83d55b46a81572a188e134635e26b5b4a0f305db 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Use\san\sunsigned\sinteger\sto\scount\sfree\spages\sin\sbtree.c:freePage2().
-D 2019-04-09T01:26:31.828
+C Fix\sa\sproblem\scaused\sby\sa\ssmall\sSQLITE_LIMIT_LENGTH\svalue\sand\sa\sCREATE\sTABLE\swith\sa\svery\slarge\sname.
+D 2019-04-09T20:50:44.500
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -461,7 +461,7 @@ F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
 F src/btree.c 958939f608e351a36756e3749596472baa0e5aae54eebd14e6beffe7a68aafc7
 F src/btree.h c11446f07ec0e9dc85af8041cb0855c52f5359c8b2a43e47e02a685282504d89
 F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f
-F src/build.c cb2cddfbb2a3844e38c3d2232cda6791314d12f7f0abd8ece11ff9370b3d2ef1
+F src/build.c 82954fd1865a07a42bf933e88994209cf3c0a1324abf5549feaa65739a76f01a
 F src/callback.c 25dda5e1c2334a367b94a64077b1d06b2553369f616261ca6783c48bcb6bda73
 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 F src/ctime.c 109e58d00f62e8e71ee1eb5944ac18b90171c928ab2e082e058056e1137cc20b
@@ -1343,7 +1343,7 @@ F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
 F test/spellfix4.test 51c7c26514ade169855c66bcf130bd5acfb4d7fd090cc624645ab275ae6a41fb
 F test/sqldiff1.test 28cd737cf1b0078b1ec1bbf425e674c47785835e
-F test/sqllimits1.test a74ee2a3740b9f9c2437c246d8fb77354862a142
+F test/sqllimits1.test 264f4b0f941800ba139d25e33ee919c5d95fea06dfbe8ac291d6811a30984ca5
 F test/sqllog.test 6af6cb0b09f4e44e1917e06ce85be7670302517a
 F test/stat.test f8f1279ffffabe6df825723af18cc6e0ae70a893
 F test/statfault.test f525a7bf633e50afd027700e9a486090684b1ac1
@@ -1814,7 +1814,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 80704a16f6dbbeacc65fa36a3623df10292a28aeacf9e2c1d2891258479e3b89
-R a7a6409815e913c81ead1cceeb888162
-U drh
-Z 73949e4ba438719f8cc0421fc3433e7f
+P 8820408597341344b308277ce6ef41b47c7514d6c613520789b05ee52cbedae8
+R 2f506e721a232e262678db15afc60ed4
+T *branch * toobig-fix
+T *sym-toobig-fix *
+T -sym-trunk *
+U dan
+Z 7e6db43cc67f0e6d83b039093a6c4e8b
index c86bc19d8f85e3d183fd698b40bf719d20ed930b..b8993fff80c93145c8fcafd23bc1e280825e30a9 100644 (file)
@@ -1 +1 @@
-8820408597341344b308277ce6ef41b47c7514d6c613520789b05ee52cbedae8
\ No newline at end of file
+9b5d408864920b302f2d21abcae1d90f1e0cd68b18262136554ba0e6219d6025
\ No newline at end of file
index 77954d029184890f745753a95126c88bca6bc351..e452b01146c3d2372e689d290bb7276552e1f3f1 100644 (file)
@@ -3222,6 +3222,8 @@ void sqlite3CreateIndex(
     for(pLoop=pTab->pIndex, n=1; pLoop; pLoop=pLoop->pNext, n++){}
     zName = sqlite3MPrintf(db, "sqlite_autoindex_%s_%d", pTab->zName, n);
     if( zName==0 ){
+      if( db->mallocFailed==0 ) pParse->rc = SQLITE_TOOBIG;
+      pParse->nErr++;
       goto exit_create_index;
     }
 
index 9508b5233dc7d931acae7d16e9fdb10521068814..9bbe6c70006de1b03cea265079a147e08729a814 100644 (file)
@@ -889,4 +889,14 @@ do_catchsql_test sqllimits1.17.0 {
 foreach {key value} [array get saved] {
   catch {set $key $value}
 }
+
+#-------------------------------------------------------------------------
+# At one point the following caused an assert() to fail.
+#
+sqlite3_limit db SQLITE_LIMIT_LENGTH 10000
+set nm [string repeat x 10000]
+do_catchsql_test sqllimits1-17.1 "
+  CREATE TABLE $nm (x PRIMARY KEY)
+" {1 {string or blob too big}}
+
 finish_test