From: drh Date: Fri, 6 Dec 2019 19:07:44 +0000 (+0000) Subject: Early detection and reporting of too few columns in an rtree CREATE VIRTUAL X-Git-Tag: version-3.31.0~253 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5102cf8df5147aa9f230334d4d0d5b4555957943;p=thirdparty%2Fsqlite.git Early detection and reporting of too few columns in an rtree CREATE VIRTUAL TABLE statement. FossilOrigin-Name: ef73107f475e40e6bdd8b722e96992070f81fd2b7a3cb718ec8f251c89ca3e81 --- diff --git a/ext/rtree/rtree.c b/ext/rtree/rtree.c index 5944a7ef80..4eae4c09f9 100644 --- a/ext/rtree/rtree.c +++ b/ext/rtree/rtree.c @@ -3706,8 +3706,8 @@ static int rtreeInit( }; assert( RTREE_MAX_AUX_COLUMN<256 ); /* Aux columns counted by a u8 */ - if( argc>RTREE_MAX_AUX_COLUMN+3 ){ - *pzErr = sqlite3_mprintf("%s", aErrMsg[3]); + if( argc<6 || argc>RTREE_MAX_AUX_COLUMN+3 ){ + *pzErr = sqlite3_mprintf("%s", aErrMsg[2 + (argc>=6)]); return SQLITE_ERROR; } diff --git a/ext/rtree/rtree1.test b/ext/rtree/rtree1.test index 85075854ed..447ef5dadd 100644 --- a/ext/rtree/rtree1.test +++ b/ext/rtree/rtree1.test @@ -112,6 +112,9 @@ for {set nCol 1} {$nCol<[llength $cols]} {incr nCol} { catchsql { DROP TABLE t1 } } +do_catchsql_test rtree-1.3.1000 { + CREATE VIRTUAL TABLE t1000 USING rtree; +} {1 {Too few columns for an rtree table}} # Like execsql except display output as integer where that can be # done without loss of information. diff --git a/manifest b/manifest index 4ca14c1840..ffa53fc918 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C In\sthe\srtree\sextension,\sactively\ssuppress\sextra\stokens\son\sthe\scolumn\snames,\nand\sbe\spedantic\sabout\scolumn\saffinities.\s\sTicket\s[367a86e28859f1ff] -D 2019-12-06T13:10:29.260 +C Early\sdetection\sand\sreporting\sof\stoo\sfew\scolumns\sin\san\srtree\sCREATE\sVIRTUAL\nTABLE\sstatement. +D 2019-12-06T19:07:44.980 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -380,9 +380,9 @@ F ext/repair/test/checkindex01.test b530f141413b587c9eb78ff734de6bb79bc3515c3350 F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 F ext/rtree/geopoly.c c591164125808f8bba9659e92665b78412cd263e654b6f05294f3a8da7cdd9fb -F ext/rtree/rtree.c f1dace13854706121ec2369d5685d90e83dcfd1698585b0fd4a99f021a44da32 +F ext/rtree/rtree.c cb9d3634d9e198136f24eada199feb3ce146048b47a58e21e24c8aadf2c253ba F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412 -F ext/rtree/rtree1.test 686216b4181f64b1d27e786fbea053a9fb27cddb983d9bfe4bebb6e5f0d30d90 +F ext/rtree/rtree1.test 4092a8bd2b5eafc4fafe4fe9024249c12b13e4bab23c2c3eaff57412fdf805fa F ext/rtree/rtree2.test 9d9deddbb16fd0c30c36e6b4fdc3ee3132d765567f0f9432ee71e1303d32603d F ext/rtree/rtree3.test 4ee5d7df86040efe3d8d84f141f2962a7745452200a7cba1db06f86d97050499 F ext/rtree/rtree4.test 304de65d484540111b896827e4261815e5dca4ce28eeecd58be648cd73452c4b @@ -1852,7 +1852,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 62f2235adf796c72882b26313489cf49804ec3ec4972e0eee5034176cbb07f84 -R 1b112b7a4f0b3a3e64226b121a4ea4a7 +P 97fb5a72f91a44d579466e67c33aa862384c4d1c95c2010cf4ae9dbd172bbcfb +R a5df17bc4bd57a47c10dfaaa183b435c U drh -Z e237feeb1e17ed643316e435de3125ba +Z 9d3d6a264e3c59291c05378e70901570 diff --git a/manifest.uuid b/manifest.uuid index eaa19a1242..05dc70ffe8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -97fb5a72f91a44d579466e67c33aa862384c4d1c95c2010cf4ae9dbd172bbcfb \ No newline at end of file +ef73107f475e40e6bdd8b722e96992070f81fd2b7a3cb718ec8f251c89ca3e81 \ No newline at end of file