From: drh Date: Wed, 12 Feb 2020 20:50:20 +0000 (+0000) Subject: Increase the default upper bound on the number of parameters in a single X-Git-Tag: version-3.32.0~164 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=efdba1a8b3c6c967e7fae9c1989c40d420ce64cc;p=thirdparty%2Fsqlite.git Increase the default upper bound on the number of parameters in a single SQL statement to 32766 (from 999). FossilOrigin-Name: 2def75693a8ae002375aff80db0e6c970c75f75e8b6ba64f2c518712badb0ae8 --- diff --git a/manifest b/manifest index c16742ddf2..d22800fa59 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C When\sdetermining\swhether\san\s==\sor\sIS\sconstraint\sin\sa\sWHERE\sclause\smakes\san\sORDER\sBY\sterm\sredundant,\sconsider\sthe\scollation\ssequence\sused\sby\sthe\s==\sor\sIS\scomparison,\snot\sthe\scollation\ssequence\sof\sthe\scomparison\sexpression\sitself.\sPossible\sfix\sfor\s[fb8c538a8f]. -D 2020-02-12T11:57:35.462 +C Increase\sthe\sdefault\supper\sbound\son\sthe\snumber\sof\sparameters\sin\sa\ssingle\nSQL\sstatement\sto\s32766\s(from\s999). +D 2020-02-12T20:50:20.663 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -533,11 +533,11 @@ F src/resolve.c f0781c9e180028b279bc4ff079ad54f4727223d470c8d2343643fcaf79b67740 F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93 F src/select.c 28defa337bd913e4d1c6430016e0669bae42778ebe94dbdd855d12de073aa8da F src/shell.c.in c2e20c43a44fb5588a6c27ce60589538fbf4794fd7686f5b2598eca22eaae1fa -F src/sqlite.h.in 572ea78b08ee90529d7588cea966c350afbf9624fdf133378edb346a233c6625 +F src/sqlite.h.in 0d9ef312509cb7c8445f4dc25fedfe103c147668a78a36a607a1064f1e0612a4 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 27951f294f29cd875c6027f2707d644ef99f469bd97514568b5a8581a114db8c -F src/sqliteInt.h ce2038197482723e6da107447d95e4d3a1afcfd630c955b6abef5dc9ff597567 -F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b +F src/sqliteInt.h f5011c0f42a7f2d943ebc13819efb41f48c7730e5ad0111a52340e71c08d7383 +F src/sqliteLimit.h 95cb8479ca459496d9c1c6a9f76b38aee12203a56ce1092fe13e50ae2454c032 F src/status.c 9ff2210207c6c3b4d9631a8241a7d45ab1b26a0e9c84cb07a9b5ce2de9a3b278 F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34 F src/tclsqlite.c d0aa320416efe88c4dbb0156ed6c494f2f9958871a940e46984ee57b3e7fcc50 @@ -1858,7 +1858,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 7d8dcfb95cea732e7588e7505bf80a171dd2e371b164c9435c6ac286060df6df -R 59c1d18e534e5edddd3bf258cd0125ab -U dan -Z c51e7fa10130f64133da39d0e8b36324 +P 16aed5d0c63dcdc2054dbb8a4b6b992476640433bf81e19301e6db5a3fc82633 +R 609d391b7d0a11e157e71c995c0e5807 +U drh +Z 0b06c4e19232243f80d66b8f3a5aacb0 diff --git a/manifest.uuid b/manifest.uuid index 59f56c0a20..54cdee59f3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -16aed5d0c63dcdc2054dbb8a4b6b992476640433bf81e19301e6db5a3fc82633 \ No newline at end of file +2def75693a8ae002375aff80db0e6c970c75f75e8b6ba64f2c518712badb0ae8 \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 367242bf27..0537ab69f1 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -4199,7 +4199,7 @@ typedef struct sqlite3_context sqlite3_context; ** [sqlite3_bind_parameter_index()] API if desired. ^The index ** for "?NNN" parameters is the value of NNN. ** ^The NNN value must be between 1 and the [sqlite3_limit()] -** parameter [SQLITE_LIMIT_VARIABLE_NUMBER] (default value: 999). +** parameter [SQLITE_LIMIT_VARIABLE_NUMBER] (default value: 32766). ** ** ^The third argument is the value to bind to the parameter. ** ^If the third parameter to sqlite3_bind_text() or sqlite3_bind_text16() diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 76b37cb695..4040f01a49 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -2512,10 +2512,10 @@ struct AggInfo { ** it uses less memory in the Expr object, which is a big memory user ** in systems with lots of prepared statements. And few applications ** need more than about 10 or 20 variables. But some extreme users want -** to have prepared statements with over 32767 variables, and for them +** to have prepared statements with over 32766 variables, and for them ** the option is available (at compile-time). */ -#if SQLITE_MAX_VARIABLE_NUMBER<=32767 +#if SQLITE_MAX_VARIABLE_NUMBER<32767 typedef i16 ynVar; #else typedef int ynVar; diff --git a/src/sqliteLimit.h b/src/sqliteLimit.h index 28e7a41cc3..a7302575c5 100644 --- a/src/sqliteLimit.h +++ b/src/sqliteLimit.h @@ -131,9 +131,12 @@ /* ** The maximum value of a ?nnn wildcard that the parser will accept. +** If the value exceeds 32767 then extra space is required for the Expr +** structure. But otherwise, we believe that the number can be as large +** as a signed 32-bit integer can hold. */ #ifndef SQLITE_MAX_VARIABLE_NUMBER -# define SQLITE_MAX_VARIABLE_NUMBER 999 +# define SQLITE_MAX_VARIABLE_NUMBER 32766 #endif /* Maximum page size. The upper bound on this value is 65536. This a limit