From 8e50d65aaf255c6db0631cfab8dc2b5329b5bb08 Mon Sep 17 00:00:00 2001 From: drh Date: Sat, 23 May 2020 17:56:49 +0000 Subject: [PATCH 01/12] Improved bytecode comment. FossilOrigin-Name: 9224f1543b51a674ad6d7db8e90d97e1b0d1abe68bed3417820ebd09d27270f9 --- manifest | 15 ++++++--------- manifest.uuid | 2 +- src/insert.c | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index e020405f88..0c8b492aff 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Version\s3.32.0 -D 2020-05-22T17:46:16.912 +C Improved\sbytecode\scomment. +D 2020-05-23T17:56:49.281 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -494,7 +494,7 @@ F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19 F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38 F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144 F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 -F src/insert.c 8e4211d04eb460c0694d486c6ba1c068d468c6f653c3f237869a802ad82854de +F src/insert.c 92b07a7f7e682114948ce59fd6511ffec7672b508cc343a804ef6afee21b6c11 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa F src/loadext.c 421310045bd78afefb772294a99e50f37d87ae578786a6169074e6291e30d969 F src/main.c 97d962ab1f830540043042e41085c5b85636a60e6ed95002c1a56b64f7eb6a0b @@ -1866,10 +1866,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 ce36b6d1331edba5a921fef32553e2470a79bdb1f62d2cfd81190691c83d5b06 -R b5a877f3e2a7ab538bc565ffd2aae787 -T +bgcolor * #d0c0ff -T +sym-release * -T +sym-version-3.32.0 * +P 5998789c9c744bce92e4cff7636bba800a75574243d6977e1fc8281e360f8d5a +R 46f8cad64628f73fad5fb35bbcf77d33 U drh -Z 4af13806b6e302c99aeddae94a54c013 +Z 4863066a6f020b85f58b052a58cecb44 diff --git a/manifest.uuid b/manifest.uuid index d9fa627cdb..ad075ce08f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -5998789c9c744bce92e4cff7636bba800a75574243d6977e1fc8281e360f8d5a \ No newline at end of file +9224f1543b51a674ad6d7db8e90d97e1b0d1abe68bed3417820ebd09d27270f9 \ No newline at end of file diff --git a/src/insert.c b/src/insert.c index f4049fb3de..287caeb0ff 100644 --- a/src/insert.c +++ b/src/insert.c @@ -1944,7 +1944,7 @@ void sqlite3GenerateConstraintChecks( sqlite3TableAffinity(v, pTab, regNewData+1); bAffinityDone = 1; } - VdbeNoopComment((v, "uniqueness check for %s", pIdx->zName)); + VdbeNoopComment((v, "prep index %s", pIdx->zName)); iThisCur = iIdxCur+ix; From dd6c33d372f3b83f4fe57904c2bd5ebba5c38018 Mon Sep 17 00:00:00 2001 From: drh Date: Sat, 23 May 2020 19:58:07 +0000 Subject: [PATCH 02/12] Limit the "precision" of floating-point to text conversions in the printf() function to 100,000,000. Fix for ticket [23439ea582241138]. FossilOrigin-Name: d08d3405878d394e08e5d3af281246edfbd81ca74cc8d16458808591512fb93d --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/printf.c | 12 ++++++++++++ test/printf.test | 7 +++++++ 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index 0c8b492aff..05284619de 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improved\sbytecode\scomment. -D 2020-05-23T17:56:49.281 +C Limit\sthe\s"precision"\sof\sfloating-point\sto\stext\sconversions\sin\sthe\sprintf()\nfunction\sto\s100,000,000.\s\sFix\sfor\sticket\s[23439ea582241138]. +D 2020-05-23T19:58:07.338 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -529,7 +529,7 @@ F src/pcache1.c 6596e10baf3d8f84cc1585d226cf1ab26564a5f5caf85a15757a281ff977d51a F src/pragma.c 1b0db48177e52b256c003b8dc6ac708b1079a82cded944a23820574586a4731f F src/pragma.h 8168e588536bffd95319451f34e9a754dc37d205ebe433031a7813c5b286beae F src/prepare.c 8d4d6c8aa6afefc48027c54b41cdf134b4d6bc2fc4badbe483ad7fd9e1728a28 -F src/printf.c ebf563cff3122f6a61149964b738b470196d3619df31d6a720d0ff72fcfd7c7b +F src/printf.c c558075d06f0c83b0471499cebd30ef979e600709cde1e2b744abadcf52c7ba2 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c d36a2b1639e1c33d7b508abfd3452a63e7fd81737f6f3940bfef085fca6f21f4 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 @@ -1246,7 +1246,7 @@ F test/pragma4.test 10c624e45a83c0096a82a7579a5ff658542391d3b77355192da6572c8c17 F test/pragma5.test 7b33fc43e2e41abf17f35fb73f71b49671a380ea92a6c94b6ce530a25f8d9102 F test/pragmafault.test 275edaf3161771d37de60e5c2b412627ac94cef11739236bec12ed1258b240f8 F test/prefixes.test b524a1c44bffec225b9aec98bd728480352aa8532ac4c15771fb85e8beef65d9 -F test/printf.test 0300699733e53101b2ce48800518427249edd4053bb50fa0621c6607482f0fdb +F test/printf.test 1e0e469f5f8a09afa8a182f34647e3d9b8c01978cbbe2313a194ccc3a8471506 F test/printf2.test 30b5dd0b4b992dc5626496846ecce17ff592cacbcb11c3e589f3ac4d7e129dae F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc @@ -1866,7 +1866,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 5998789c9c744bce92e4cff7636bba800a75574243d6977e1fc8281e360f8d5a -R 46f8cad64628f73fad5fb35bbcf77d33 +P 9224f1543b51a674ad6d7db8e90d97e1b0d1abe68bed3417820ebd09d27270f9 +R 6f18c0d227a8684c188f3f9391d707f5 U drh -Z 4863066a6f020b85f58b052a58cecb44 +Z 72d530f720119a1c4278481f4c5a947d diff --git a/manifest.uuid b/manifest.uuid index ad075ce08f..f6ed5310c7 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9224f1543b51a674ad6d7db8e90d97e1b0d1abe68bed3417820ebd09d27270f9 \ No newline at end of file +d08d3405878d394e08e5d3af281246edfbd81ca74cc8d16458808591512fb93d \ No newline at end of file diff --git a/src/printf.c b/src/printf.c index fd42bd2bca..4505a5675e 100644 --- a/src/printf.c +++ b/src/printf.c @@ -194,6 +194,13 @@ static char *printfTempBuf(sqlite3_str *pAccum, sqlite3_int64 n){ #endif #define etBUFSIZE SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */ +/* +** Hard limit on the precision of floating-point conversions. +*/ +#ifndef SQLITE_PRINTF_PRECISION_LIMIT +# define SQLITE_FP_PRECISION_LIMIT 100000000 +#endif + /* ** Render a string given by "fmt" into the StrAccum object. */ @@ -515,6 +522,11 @@ void sqlite3_str_vappendf( length = 0; #else if( precision<0 ) precision = 6; /* Set default precision */ +#ifdef SQLITE_FP_PRECISION_LIMIT + if( precision>SQLITE_FP_PRECISION_LIMIT ){ + precision = SQLITE_FP_PRECISION_LIMIT; + } +#endif if( realvalue<0.0 ){ realvalue = -realvalue; prefix = '-'; diff --git a/test/printf.test b/test/printf.test index d099da8fa2..d6acacb0f0 100644 --- a/test/printf.test +++ b/test/printf.test @@ -3777,4 +3777,11 @@ foreach ::iRepeat {0 1} { } } +# 2020-05-23 +# ticket 23439ea582241138 +# +do_execsql_test printf-16.1 { + SELECT printf('%.*g',2147483647,0.01); +} {0.01} + finish_test From 16dc07f7568bb2063d159fb41ab68ccf749c5e84 Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 24 May 2020 00:30:38 +0000 Subject: [PATCH 03/12] Minor fix to a comment. No code changes. FossilOrigin-Name: efdbb2b499bda8ffcfe54f5d6ece08a2c58fe7a490d9550785d806bd404abb8c --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/sqliteInt.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index 05284619de..099dc3f987 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Limit\sthe\s"precision"\sof\sfloating-point\sto\stext\sconversions\sin\sthe\sprintf()\nfunction\sto\s100,000,000.\s\sFix\sfor\sticket\s[23439ea582241138]. -D 2020-05-23T19:58:07.338 +C Minor\sfix\sto\sa\scomment.\s\sNo\scode\schanges. +D 2020-05-24T00:30:38.726 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -538,7 +538,7 @@ F src/shell.c.in cf2d24f54412c06e5fb34af7fabc748651125e1dceac29b740e91f06d23447b F src/sqlite.h.in 74342b41e9d68ff9e56b192009046f8dd0aa2bd76ce1a588f330de614ba61de7 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197 -F src/sqliteInt.h 8878a88c18a013d1843638001d7fc56a8f99740f151fc7597b1641b61accf58c +F src/sqliteInt.h 9b05097d99ecbda6d5d5f6cad1a40a5113ef3534f0b4b78047ede65416f7c5b4 F src/sqliteLimit.h 95cb8479ca459496d9c1c6a9f76b38aee12203a56ce1092fe13e50ae2454c032 F src/status.c 9ff2210207c6c3b4d9631a8241a7d45ab1b26a0e9c84cb07a9b5ce2de9a3b278 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 @@ -1866,7 +1866,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 9224f1543b51a674ad6d7db8e90d97e1b0d1abe68bed3417820ebd09d27270f9 -R 6f18c0d227a8684c188f3f9391d707f5 +P d08d3405878d394e08e5d3af281246edfbd81ca74cc8d16458808591512fb93d +R 6de336218c279399d0b1ec9bc6cc973c U drh -Z 72d530f720119a1c4278481f4c5a947d +Z 8cca70ea822ec140677c69f2076a66bc diff --git a/manifest.uuid b/manifest.uuid index f6ed5310c7..c9350f0acd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d08d3405878d394e08e5d3af281246edfbd81ca74cc8d16458808591512fb93d \ No newline at end of file +efdbb2b499bda8ffcfe54f5d6ece08a2c58fe7a490d9550785d806bd404abb8c \ No newline at end of file diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 2b1c483192..f82efca956 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -2486,7 +2486,7 @@ struct Token { ** code for a SELECT that contains aggregate functions. ** ** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iColumn field is the index in +** pointer to this structure. The Expr.iAgg field is the index in ** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate ** code for that node. ** From ca74fbf6f164ad6fa9c6bd79050dc57cdcd69388 Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 24 May 2020 02:05:04 +0000 Subject: [PATCH 04/12] Improvements to parse-tree tracing logic. No changes in deliverable code. FossilOrigin-Name: f7e5a68a7ebbb97a5beb050a75b3b4cf2fd6adc54653da993a8950fb3a5799f7 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/select.c | 2 +- src/treeview.c | 5 +++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index 099dc3f987..afe251ac7f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Minor\sfix\sto\sa\scomment.\s\sNo\scode\schanges. -D 2020-05-24T00:30:38.726 +C Improvements\sto\sparse-tree\stracing\slogic.\s\sNo\schanges\sin\sdeliverable\scode. +D 2020-05-24T02:05:04.435 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -533,7 +533,7 @@ F src/printf.c c558075d06f0c83b0471499cebd30ef979e600709cde1e2b744abadcf52c7ba2 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c d36a2b1639e1c33d7b508abfd3452a63e7fd81737f6f3940bfef085fca6f21f4 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 -F src/select.c ee4b02ad8047c35891b7a612091beec21ae7a0155290dcbefb0824aed20c46f3 +F src/select.c 7fe2902639a13d54f1a9ba140326804dca493c1c0c299005c2b48408fdcf0763 F src/shell.c.in cf2d24f54412c06e5fb34af7fabc748651125e1dceac29b740e91f06d23447b6 F src/sqlite.h.in 74342b41e9d68ff9e56b192009046f8dd0aa2bd76ce1a588f330de614ba61de7 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -598,7 +598,7 @@ F src/test_window.c cdae419fdcea5bad6dcd9368c685abdad6deb59e9fc8b84b153de513d394 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c F src/tokenize.c eee7bae3ec0bc4abee951554bf46a8ba567c0f7752ac90c820ed8afff4c612dc -F src/treeview.c 82c6391a3ba76215d4185fd4719a56ec4caf186a40c8a7b6e6ba4ae4467c2742 +F src/treeview.c 9df54af6e5830fd527496e62ae0148e1ba33197205d8e232c2826537d42d4063 F src/trigger.c 4ada1037cc99777f647a882cdacbd1a4deb6567b69daf02946286401b88cdc04 F src/update.c 3199098455830fc2d8c8fc4ae3ec2ea513eef64339ae9a7048db62b21169bc7a F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78 @@ -1866,7 +1866,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 d08d3405878d394e08e5d3af281246edfbd81ca74cc8d16458808591512fb93d -R 6de336218c279399d0b1ec9bc6cc973c +P efdbb2b499bda8ffcfe54f5d6ece08a2c58fe7a490d9550785d806bd404abb8c +R 6dd20f3d976336460f5c02d76543f7db U drh -Z 8cca70ea822ec140677c69f2076a66bc +Z bccbcc790188c841772c26b7434cfbf8 diff --git a/manifest.uuid b/manifest.uuid index c9350f0acd..676441a5bc 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -efdbb2b499bda8ffcfe54f5d6ece08a2c58fe7a490d9550785d806bd404abb8c \ No newline at end of file +f7e5a68a7ebbb97a5beb050a75b3b4cf2fd6adc54653da993a8950fb3a5799f7 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 869984ff4b..20295e1c43 100644 --- a/src/select.c +++ b/src/select.c @@ -6422,7 +6422,7 @@ int sqlite3Select( #if SELECTTRACE_ENABLED if( sqlite3SelectTrace & 0x400 ){ int ii; - SELECTTRACE(0x400,pParse,p,("After aggregate analysis:\n")); + SELECTTRACE(0x400,pParse,p,("After aggregate analysis %p:\n", &sAggInfo)); sqlite3TreeViewSelect(0, p, 0); for(ii=0; iiop==TK_AGG_FUNCTION ){ - sqlite3TreeViewLine(pView, "AGG_FUNCTION%d %Q%s", - pExpr->op2, pExpr->u.zToken, zFlgs); + sqlite3TreeViewLine(pView, "AGG_FUNCTION%d %Q%s iAgg=%d agg=%p", + pExpr->op2, pExpr->u.zToken, zFlgs, + pExpr->iAgg, pExpr->pAggInfo); }else if( pExpr->op2!=0 ){ const char *zOp2; char zBuf[8]; From e40cc16b472071f553700c7208394e6cf73d5688 Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 24 May 2020 03:01:36 +0000 Subject: [PATCH 05/12] Move some utility Walker callbacks into the walker.c source file, as they seem to belong there better. FossilOrigin-Name: dac438236f7c5419d4e7e094e8b3f19f83cd3b1a18bc8acb14aee90d4514fa3c --- manifest | 18 +++++++++--------- manifest.uuid | 2 +- src/expr.c | 13 ++----------- src/select.c | 23 ----------------------- src/sqliteInt.h | 3 +++ src/walker.c | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 52 insertions(+), 44 deletions(-) diff --git a/manifest b/manifest index afe251ac7f..96ec7abd69 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improvements\sto\sparse-tree\stracing\slogic.\s\sNo\schanges\sin\sdeliverable\scode. -D 2020-05-24T02:05:04.435 +C Move\ssome\sutility\sWalker\scallbacks\sinto\sthe\swalker.c\ssource\sfile,\sas\sthey\nseem\sto\sbelong\sthere\sbetter. +D 2020-05-24T03:01:36.080 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -485,7 +485,7 @@ F src/date.c b29b349d277e3d579dcc295b24c0a2caed83fd8f090a9f7cbe6070c0fd662384 F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a F src/dbstat.c 793deaf88a0904f88285d93d6713c636d55ede0ffd9f08d10f4ea825531d367f F src/delete.c 88047c8e59878c920fce14582bc1dde4d81157d1ca5ffdf36c2907e6d41996c4 -F src/expr.c 8eed44d9de8a3b0fe1c9809bb75a02b65488774c8ba8685512d8f63adade18e5 +F src/expr.c 30bdb15abfa93d32862160795c3cb25d87489186ac0e34020eb2894767c80b42 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 4b575423b0a5d4898b1a7868ce985cf1a8ad91c741c9abbb108ff02536d20f41 F src/func.c 2333eb4277f55a5efdc12ef754e7d7ec9105d257b2fd00301d23ce1e8fa67dc0 @@ -533,12 +533,12 @@ F src/printf.c c558075d06f0c83b0471499cebd30ef979e600709cde1e2b744abadcf52c7ba2 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c d36a2b1639e1c33d7b508abfd3452a63e7fd81737f6f3940bfef085fca6f21f4 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 -F src/select.c 7fe2902639a13d54f1a9ba140326804dca493c1c0c299005c2b48408fdcf0763 +F src/select.c e2a59548681bf1c407132863ae87bf2444aca5543867c21d9d09aa07f44aef5d F src/shell.c.in cf2d24f54412c06e5fb34af7fabc748651125e1dceac29b740e91f06d23447b6 F src/sqlite.h.in 74342b41e9d68ff9e56b192009046f8dd0aa2bd76ce1a588f330de614ba61de7 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197 -F src/sqliteInt.h 9b05097d99ecbda6d5d5f6cad1a40a5113ef3534f0b4b78047ede65416f7c5b4 +F src/sqliteInt.h 37f74544c8e2f59a16d1b13e6847bc02fb3fcbbfae4d6e6342c7a94c3a3984a5 F src/sqliteLimit.h 95cb8479ca459496d9c1c6a9f76b38aee12203a56ce1092fe13e50ae2454c032 F src/status.c 9ff2210207c6c3b4d9631a8241a7d45ab1b26a0e9c84cb07a9b5ce2de9a3b278 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 @@ -619,7 +619,7 @@ F src/vtab.c 7b452592ed2ee95dedb1f323d557cebede5a6f3b4558b21a5dca527e6ae9b12c F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c 17ea0a319d3ead17ef3b16aa30f10f2626056893effea7e609a20a6661ffec1b F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a -F src/walker.c 7c429c694abd12413a5c17aec9f47cfe9eba6807e6b0a32df883e8e3a14835ed +F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049 F src/where.c 9546c82056e8cdb27291f98cf1adca5d271240b399bb97b32f77fc2bea6146c9 F src/whereInt.h 6b874aa15f94e43a2cec1080be64d955b04deeafeac90ffb5d6975c0d511be3c F src/wherecode.c 7b939de85d65cc4b4bfa197513136b9e0ae03167e3b82842ca5a0ba1055ba65d @@ -1866,7 +1866,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 efdbb2b499bda8ffcfe54f5d6ece08a2c58fe7a490d9550785d806bd404abb8c -R 6dd20f3d976336460f5c02d76543f7db +P f7e5a68a7ebbb97a5beb050a75b3b4cf2fd6adc54653da993a8950fb3a5799f7 +R dbe8893e129b18dae1c69a78f2ea7c07 U drh -Z bccbcc790188c841772c26b7434cfbf8 +Z bac4c0e757f80b1b93a3ee3b61a5b760 diff --git a/manifest.uuid b/manifest.uuid index 676441a5bc..7928f1c7f9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f7e5a68a7ebbb97a5beb050a75b3b4cf2fd6adc54653da993a8950fb3a5799f7 \ No newline at end of file +dac438236f7c5419d4e7e094e8b3f19f83cd3b1a18bc8acb14aee90d4514fa3c \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index 7205f8628a..83dd8b1ab3 100644 --- a/src/expr.c +++ b/src/expr.c @@ -5867,15 +5867,6 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ } return WRC_Continue; } -static int analyzeAggregatesInSelect(Walker *pWalker, Select *pSelect){ - UNUSED_PARAMETER(pSelect); - pWalker->walkerDepth++; - return WRC_Continue; -} -static void analyzeAggregatesInSelectEnd(Walker *pWalker, Select *pSelect){ - UNUSED_PARAMETER(pSelect); - pWalker->walkerDepth--; -} /* ** Analyze the pExpr expression looking for aggregate functions and @@ -5889,8 +5880,8 @@ static void analyzeAggregatesInSelectEnd(Walker *pWalker, Select *pSelect){ void sqlite3ExprAnalyzeAggregates(NameContext *pNC, Expr *pExpr){ Walker w; w.xExprCallback = analyzeAggregate; - w.xSelectCallback = analyzeAggregatesInSelect; - w.xSelectCallback2 = analyzeAggregatesInSelectEnd; + w.xSelectCallback = sqlite3WalkerDepthIncrease; + w.xSelectCallback2 = sqlite3WalkerDepthDecrease; w.walkerDepth = 0; w.u.pNC = pNC; w.pParse = 0; diff --git a/src/select.c b/src/select.c index 20295e1c43..534dfbc01b 100644 --- a/src/select.c +++ b/src/select.c @@ -5229,29 +5229,6 @@ static int selectExpander(Walker *pWalker, Select *p){ return WRC_Continue; } -/* -** No-op routine for the parse-tree walker. -** -** When this routine is the Walker.xExprCallback then expression trees -** are walked without any actions being taken at each node. Presumably, -** when this routine is used for Walker.xExprCallback then -** Walker.xSelectCallback is set to do something useful for every -** subquery in the parser tree. -*/ -int sqlite3ExprWalkNoop(Walker *NotUsed, Expr *NotUsed2){ - UNUSED_PARAMETER2(NotUsed, NotUsed2); - return WRC_Continue; -} - -/* -** No-op routine for the parse-tree walker for SELECT statements. -** subquery in the parser tree. -*/ -int sqlite3SelectWalkNoop(Walker *NotUsed, Select *NotUsed2){ - UNUSED_PARAMETER2(NotUsed, NotUsed2); - return WRC_Continue; -} - #if SQLITE_DEBUG /* ** Always assert. This xSelectCallback2 implementation proves that the diff --git a/src/sqliteInt.h b/src/sqliteInt.h index f82efca956..122e26ad73 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -3725,6 +3725,9 @@ int sqlite3WalkSelectFrom(Walker*, Select*); int sqlite3ExprWalkNoop(Walker*, Expr*); int sqlite3SelectWalkNoop(Walker*, Select*); int sqlite3SelectWalkFail(Walker*, Select*); +int sqlite3WalkerDepthIncrease(Walker*,Select*); +void sqlite3WalkerDepthDecrease(Walker*,Select*); + #ifdef SQLITE_DEBUG void sqlite3SelectWalkAssert2(Walker*, Select*); #endif diff --git a/src/walker.c b/src/walker.c index 48d7ddbf3d..7649036f56 100644 --- a/src/walker.c +++ b/src/walker.c @@ -207,3 +207,40 @@ int sqlite3WalkSelect(Walker *pWalker, Select *p){ }while( p!=0 ); return WRC_Continue; } + +/* Increase the walkerDepth when entering a subquery, and +** descrease when leaving the subquery. +*/ +int sqlite3WalkerDepthIncrease(Walker *pWalker, Select *pSelect){ + UNUSED_PARAMETER(pSelect); + pWalker->walkerDepth++; + return WRC_Continue; +} +void sqlite3WalkerDepthDecrease(Walker *pWalker, Select *pSelect){ + UNUSED_PARAMETER(pSelect); + pWalker->walkerDepth--; +} + + +/* +** No-op routine for the parse-tree walker. +** +** When this routine is the Walker.xExprCallback then expression trees +** are walked without any actions being taken at each node. Presumably, +** when this routine is used for Walker.xExprCallback then +** Walker.xSelectCallback is set to do something useful for every +** subquery in the parser tree. +*/ +int sqlite3ExprWalkNoop(Walker *NotUsed, Expr *NotUsed2){ + UNUSED_PARAMETER2(NotUsed, NotUsed2); + return WRC_Continue; +} + +/* +** No-op routine for the parse-tree walker for SELECT statements. +** subquery in the parser tree. +*/ +int sqlite3SelectWalkNoop(Walker *NotUsed, Select *NotUsed2){ + UNUSED_PARAMETER2(NotUsed, NotUsed2); + return WRC_Continue; +} From c37577bb2dfb602a5cdbba8322a01b548c34c185 Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 24 May 2020 03:38:37 +0000 Subject: [PATCH 06/12] When rewriting a query for window functions, if the rewrite changes the depth of TK_AGG_FUNCTION nodes, be sure to adjust the Expr.op2 field appropriately. Fix for ticket [7a5279a25c57adf1] FossilOrigin-Name: ad7bb70af9bb68d192137188bb2528f1e9e43ad164c925174ca1dafc9e1f5339 --- manifest | 16 ++++++++-------- manifest.uuid | 2 +- src/resolve.c | 2 ++ src/window.c | 23 +++++++++++++++++++++++ test/window1.test | 16 ++++++++++++++++ 5 files changed, 50 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 96ec7abd69..3bd2ba543d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Move\ssome\sutility\sWalker\scallbacks\sinto\sthe\swalker.c\ssource\sfile,\sas\sthey\nseem\sto\sbelong\sthere\sbetter. -D 2020-05-24T03:01:36.080 +C When\srewriting\sa\squery\sfor\swindow\sfunctions,\sif\sthe\srewrite\schanges\sthe\ndepth\sof\sTK_AGG_FUNCTION\snodes,\sbe\ssure\sto\sadjust\sthe\sExpr.op2\sfield\nappropriately.\s\sFix\sfor\sticket\s[7a5279a25c57adf1] +D 2020-05-24T03:38:37.646 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -531,7 +531,7 @@ F src/pragma.h 8168e588536bffd95319451f34e9a754dc37d205ebe433031a7813c5b286beae F src/prepare.c 8d4d6c8aa6afefc48027c54b41cdf134b4d6bc2fc4badbe483ad7fd9e1728a28 F src/printf.c c558075d06f0c83b0471499cebd30ef979e600709cde1e2b744abadcf52c7ba2 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 -F src/resolve.c d36a2b1639e1c33d7b508abfd3452a63e7fd81737f6f3940bfef085fca6f21f4 +F src/resolve.c c2008519a0654f1e7490e9281ed0397d0f14bb840d81f0b96946248afcbdb25d F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c e2a59548681bf1c407132863ae87bf2444aca5543867c21d9d09aa07f44aef5d F src/shell.c.in cf2d24f54412c06e5fb34af7fabc748651125e1dceac29b740e91f06d23447b6 @@ -624,7 +624,7 @@ F src/where.c 9546c82056e8cdb27291f98cf1adca5d271240b399bb97b32f77fc2bea6146c9 F src/whereInt.h 6b874aa15f94e43a2cec1080be64d955b04deeafeac90ffb5d6975c0d511be3c F src/wherecode.c 7b939de85d65cc4b4bfa197513136b9e0ae03167e3b82842ca5a0ba1055ba65d F src/whereexpr.c 264d58971eaf8256eb5b0917bcd7fc7a1f1109fdda183a8382308a1b18a2dce7 -F src/window.c 194fc168626f186a2b90dfe5edb534ab164cbeb6c4906177bfcdd5c188a0b53d +F src/window.c 66c5fd1e48af7581cf90b97700268294f4da4037f120f367715f912e1148d3f9 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627 F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d @@ -1727,7 +1727,7 @@ F test/win32heap.test 10fd891266bd00af68671e702317726375e5407561d859be1aa04696f2 F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972 F test/win32longpath.test 4baffc3acb2e5188a5e3a895b2b543ed09e62f7c72d713c1feebf76222fe9976 F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc -F test/window1.test a3504d44a3a125e35c53358cde1457d55bfc487bbe00f4c86bfed3a0bcc02140 +F test/window1.test 502a3e72fce895aaaa633bbe709f6de3c24eed3ecb8098ab9fb8b47584b4452c F test/window2.tcl 492c125fa550cda1dd3555768a2303b3effbeceee215293adf8871efc25f1476 F test/window2.test e466a88bd626d66edc3d352d7d7e1d5531e0079b549ba44efb029d1fbff9fd3c F test/window3.tcl acea6e86a4324a210fd608d06741010ca83ded9fde438341cb978c49928faf03 @@ -1866,7 +1866,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 f7e5a68a7ebbb97a5beb050a75b3b4cf2fd6adc54653da993a8950fb3a5799f7 -R dbe8893e129b18dae1c69a78f2ea7c07 +P dac438236f7c5419d4e7e094e8b3f19f83cd3b1a18bc8acb14aee90d4514fa3c +R 29b2a5afa5bc78735afdeb2a8382bf79 U drh -Z bac4c0e757f80b1b93a3ee3b61a5b760 +Z 337b069bd9531722136b7b0d8a6208d2 diff --git a/manifest.uuid b/manifest.uuid index 7928f1c7f9..610cf66762 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -dac438236f7c5419d4e7e094e8b3f19f83cd3b1a18bc8acb14aee90d4514fa3c \ No newline at end of file +ad7bb70af9bb68d192137188bb2528f1e9e43ad164c925174ca1dafc9e1f5339 \ No newline at end of file diff --git a/src/resolve.c b/src/resolve.c index 60fed0b109..aff6dbeadb 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -24,6 +24,8 @@ ** ** incrAggFunctionDepth(pExpr,n) is the main routine. incrAggDepth(..) ** is a helper function - a callback for the tree walker. +** +** See also the sqlite3WindowExtraAggFuncDepth() routine in window.c */ static int incrAggDepth(Walker *pWalker, Expr *pExpr){ if( pExpr->op==TK_AGG_FUNCTION ) pExpr->op2 += pWalker->u.n; diff --git a/src/window.c b/src/window.c index f168cf55b2..77ec8a02e0 100644 --- a/src/window.c +++ b/src/window.c @@ -916,6 +916,23 @@ static ExprList *exprListAppendList( return pList; } +/* +** When rewriting a query, if the new subquery in the FROM clause +** contains TK_AGG_FUNCTION nodes that refer to an outer query, +** then we have to increase the Expr->op2 values of those nodes +** due to the extra subquery layer that was added. +** +** See also the incrAggDepth() routine in resolve.c +*/ +static int sqlite3WindowExtraAggFuncDepth(Walker *pWalker, Expr *pExpr){ + if( pExpr->op==TK_AGG_FUNCTION + && pExpr->op2>=pWalker->walkerDepth + ){ + pExpr->op2++; + } + return WRC_Continue; +} + /* ** If the SELECT statement passed as the second argument does not invoke ** any SQL window functions, this function is a no-op. Otherwise, it @@ -1025,6 +1042,7 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){ p->pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0); if( p->pSrc ){ Table *pTab2; + Walker w; p->pSrc->a[0].pSelect = pSub; sqlite3SrcListAssignCursors(pParse, p->pSrc); pSub->selFlags |= SF_Expanded; @@ -1040,6 +1058,11 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){ pTab->tabFlags |= TF_Ephemeral; p->pSrc->a[0].pTab = pTab; pTab = pTab2; + memset(&w, 0, sizeof(w)); + w.xExprCallback = sqlite3WindowExtraAggFuncDepth; + w.xSelectCallback = sqlite3WalkerDepthIncrease; + w.xSelectCallback2 = sqlite3WalkerDepthDecrease; + sqlite3WalkSelect(&w, pSub); } }else{ sqlite3SelectDelete(db, pSub); diff --git a/test/window1.test b/test/window1.test index 25a76b9247..677297fc89 100644 --- a/test/window1.test +++ b/test/window1.test @@ -1727,5 +1727,21 @@ do_execsql_test 52.4 { 4 938 938 4 } +# 2020-05-23 +# ticket 7a5279a25c57adf1 +# +reset_db +do_execsql_test 53.0 { + CREATE TABLE a(c UNIQUE); + INSERT INTO a VALUES(4),(0),(9),(-9); + SELECT a.c + FROM a + JOIN a AS b ON a.c=4 + JOIN a AS e ON a.c=e.c + WHERE a.c=(SELECT (SELECT coalesce(lead(2) OVER(),0) + sum(d.c)) + FROM a AS d + WHERE a.c); +} {4 4 4 4} + finish_test From e859e43bb87baa49cd3cdbbf81b4cbc9fe93d1de Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 24 May 2020 12:36:20 +0000 Subject: [PATCH 07/12] Version number to 3.32.1. FossilOrigin-Name: 56e5063c326ffbfd3e3cb6f2b05718412aca2cb183274bfe11f5666effdd04b9 --- VERSION | 2 +- configure | 18 +++++++++--------- manifest | 14 +++++++------- manifest.uuid | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/VERSION b/VERSION index cac6068cfc..1367bf750d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.32.0 +3.32.1 diff --git a/configure b/configure index e44efa9380..854b2460a6 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sqlite 3.32.0. +# Generated by GNU Autoconf 2.69 for sqlite 3.32.1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -726,8 +726,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.32.0' -PACKAGE_STRING='sqlite 3.32.0' +PACKAGE_VERSION='3.32.1' +PACKAGE_STRING='sqlite 3.32.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1467,7 +1467,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.32.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.32.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1532,7 +1532,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.32.0:";; + short | recursive ) echo "Configuration of sqlite 3.32.1:";; esac cat <<\_ACEOF @@ -1659,7 +1659,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.32.0 +sqlite configure 3.32.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2078,7 +2078,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.32.0, which was +It was created by sqlite $as_me 3.32.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -12243,7 +12243,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.32.0, which was +This file was extended by sqlite $as_me 3.32.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12309,7 +12309,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sqlite config.status 3.32.0 +sqlite config.status 3.32.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/manifest b/manifest index 3bd2ba543d..4b5b59e03a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C When\srewriting\sa\squery\sfor\swindow\sfunctions,\sif\sthe\srewrite\schanges\sthe\ndepth\sof\sTK_AGG_FUNCTION\snodes,\sbe\ssure\sto\sadjust\sthe\sExpr.op2\sfield\nappropriately.\s\sFix\sfor\sticket\s[7a5279a25c57adf1] -D 2020-05-24T03:38:37.646 +C Version\snumber\sto\s3.32.1. +D 2020-05-24T12:36:20.131 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -7,7 +7,7 @@ F Makefile.in 376f53999defeb32b7ad2626fd58aae8f3694c38ab7ee30c2289e0d0525a9238 F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241 F Makefile.msc 8d00aeba2609bb498dded5eead2890126321f02e292573bf29bf2d18487d37bd F README.md 1514a365ffca3c138e00c5cc839906108a01011a6b082bad19b09781e3aa498a -F VERSION 980d78a2ce04a1fd0ebefbaabd665f7f9186563820629ee29c6e350e96f19b52 +F VERSION 7d1da8465e06354a9ffb67a9ef3f933552767d8e239b507cb2a08ba417048322 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 @@ -34,7 +34,7 @@ F autoconf/tea/win/rules.vc c511f222b80064096b705dbeb97060ee1d6b6d63 F config.guess 883205ddf25b46f10c181818bf42c09da9888884af96f79e1719264345053bd6 F config.h.in 6376abec766e9a0785178b1823b5a587e9f1ccbc F config.sub c2d0260f17f3e4bc0b6808fccf1b291cb5e9126c14fc5890efc77b9fd0175559 -F configure 4bbb5f13998f2faf929b9ae708aea9fbcb08a46cb6dd3150e36c3f09c0a05a75 x +F configure 4705718305e176b707e65047b69dca834fe7bc5475584e30fe1f63c8e33751b8 x F configure.ac 798a24cee2879325ca5b688a618199eb32cc77ed8136edbaa43d9137b470d54e F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd @@ -1866,7 +1866,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 dac438236f7c5419d4e7e094e8b3f19f83cd3b1a18bc8acb14aee90d4514fa3c -R 29b2a5afa5bc78735afdeb2a8382bf79 +P ad7bb70af9bb68d192137188bb2528f1e9e43ad164c925174ca1dafc9e1f5339 +R 9b4861350c19f604797570d532809e1e U drh -Z 337b069bd9531722136b7b0d8a6208d2 +Z bbda9cc25034e5e4447ce8684480d98d diff --git a/manifest.uuid b/manifest.uuid index 610cf66762..4d5c18c3a9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ad7bb70af9bb68d192137188bb2528f1e9e43ad164c925174ca1dafc9e1f5339 \ No newline at end of file +56e5063c326ffbfd3e3cb6f2b05718412aca2cb183274bfe11f5666effdd04b9 \ No newline at end of file From 91960aa53ff5b08f28b9edb627d8a1b62231e125 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 25 May 2020 12:02:12 +0000 Subject: [PATCH 08/12] Make sure variable declarations are at start of scope even when SQLITE_ENABLE_SNAPSHOT is used. FossilOrigin-Name: a77ceaf6ba934b1d73c90b8980191a65d02ad6ce1e11e6baf573b3a132685545 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/wal.c | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 4b5b59e03a..b0791595ca 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Version\snumber\sto\s3.32.1. -D 2020-05-24T12:36:20.131 +C Make\ssure\svariable\sdeclarations\sare\sat\sstart\sof\sscope\seven\swhen\nSQLITE_ENABLE_SNAPSHOT\sis\sused. +D 2020-05-25T12:02:12.498 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -617,7 +617,7 @@ F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143 F src/vdbevtab.c ee5b4c902fdda2230f9503ac7b84c6d614c91e8f6f4dc1633e2e8dfef8ffb144 F src/vtab.c 7b452592ed2ee95dedb1f323d557cebede5a6f3b4558b21a5dca527e6ae9b12c F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 -F src/wal.c 17ea0a319d3ead17ef3b16aa30f10f2626056893effea7e609a20a6661ffec1b +F src/wal.c 04c3d2a673192016a671eb051a1900945a8c7331f4378636a8bfb70e8e596c84 F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049 F src/where.c 9546c82056e8cdb27291f98cf1adca5d271240b399bb97b32f77fc2bea6146c9 @@ -1866,7 +1866,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 ad7bb70af9bb68d192137188bb2528f1e9e43ad164c925174ca1dafc9e1f5339 -R 9b4861350c19f604797570d532809e1e +P 56e5063c326ffbfd3e3cb6f2b05718412aca2cb183274bfe11f5666effdd04b9 +R 01324a5a46d5370d11de237fae1d2b79 U drh -Z bbda9cc25034e5e4447ce8684480d98d +Z 4612882d193bb7431c4c9f4670ae6370 diff --git a/manifest.uuid b/manifest.uuid index 4d5c18c3a9..3f74ebb5d8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -56e5063c326ffbfd3e3cb6f2b05718412aca2cb183274bfe11f5666effdd04b9 \ No newline at end of file +a77ceaf6ba934b1d73c90b8980191a65d02ad6ce1e11e6baf573b3a132685545 \ No newline at end of file diff --git a/src/wal.c b/src/wal.c index 63dee82330..52087e1296 100644 --- a/src/wal.c +++ b/src/wal.c @@ -2846,12 +2846,14 @@ int sqlite3WalSnapshotRecover(Wal *pWal){ int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ int rc; /* Return code */ int cnt = 0; /* Number of TryBeginRead attempts */ +#ifdef SQLITE_ENABLE_SNAPSHOT + int bChanged = 0; + WalIndexHdr *pSnapshot = pWal->pSnapshot; +#endif assert( pWal->ckptLock==0 ); #ifdef SQLITE_ENABLE_SNAPSHOT - int bChanged = 0; - WalIndexHdr *pSnapshot = pWal->pSnapshot; if( pSnapshot ){ if( memcmp(pSnapshot, &pWal->hdr, sizeof(WalIndexHdr))!=0 ){ bChanged = 1; From efc752b131cd2745e1bd71ae1511303150478b07 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 25 May 2020 12:49:58 +0000 Subject: [PATCH 09/12] Fix minor compile issues with optional extensions. FossilOrigin-Name: 3261ee9ec26bbeaa64190c12556a1d8146270b6660c70004830bd38c1b5b63f4 --- ext/misc/sqlar.c | 1 + ext/misc/vfsstat.c | 2 +- manifest | 14 +++++++------- manifest.uuid | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ext/misc/sqlar.c b/ext/misc/sqlar.c index 8b90f9d1d8..47cb68ff60 100644 --- a/ext/misc/sqlar.c +++ b/ext/misc/sqlar.c @@ -17,6 +17,7 @@ #include "sqlite3ext.h" SQLITE_EXTENSION_INIT1 #include +#include /* ** Implementation of the "sqlar_compress(X)" SQL function. diff --git a/ext/misc/vfsstat.c b/ext/misc/vfsstat.c index 7b5102a5a1..186ed788fc 100644 --- a/ext/misc/vfsstat.c +++ b/ext/misc/vfsstat.c @@ -811,7 +811,7 @@ int sqlite3_vfsstat_init( if( rc==SQLITE_OK ){ rc = vstatRegister(db, pzErrMsg, pApi); if( rc==SQLITE_OK ){ - rc = sqlite3_auto_extension(vstatRegister); + rc = sqlite3_auto_extension((void(*)(void))vstatRegister); } } if( rc==SQLITE_OK ) rc = SQLITE_OK_LOAD_PERMANENTLY; diff --git a/manifest b/manifest index b0791595ca..f699358d39 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Make\ssure\svariable\sdeclarations\sare\sat\sstart\sof\sscope\seven\swhen\nSQLITE_ENABLE_SNAPSHOT\sis\sused. -D 2020-05-25T12:02:12.498 +C Fix\sminor\scompile\sissues\swith\soptional\sextensions. +D 2020-05-25T12:49:58.975 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -317,7 +317,7 @@ F ext/misc/sha1.c c8f2253c8792ffab9517695ea7d88c079f0395a5505eefef5c8198fe184ed5 F ext/misc/shathree.c 135b7c145db4a09b1650c3e7aff9cb538763a9a361e834c015dd1aaf8d5c9a00 F ext/misc/showauth.c 732578f0fe4ce42d577e1c86dc89dd14a006ab52 F ext/misc/spellfix.c 94df9bbfa514a563c1484f684a2df3d128a2f7209a84ca3ca100c68a0163e29f -F ext/misc/sqlar.c c9e5d58544e1506135806a1e0f525f92d4bb6bb125348dce469d778fb334fbce +F ext/misc/sqlar.c 0ace5d3c10fe736dc584bf1159a36b8e2e60fab309d310cd8a0eecd9036621b6 F ext/misc/stmt.c 35063044a388ead95557e4b84b89c1b93accc2f1c6ddea3f9710e8486a7af94a F ext/misc/templatevtab.c 8a16a91a5ceaccfcbd6aaaa56d46828806e460dd194965b3f77bf38f14b942c4 F ext/misc/totype.c fa4aedeb07f66169005dffa8de3b0a2b621779fd44f85c103228a42afa71853b @@ -326,7 +326,7 @@ F ext/misc/unionvtab.c 36237f0607ca954ac13a4a0e2d2ac40c33bc6e032a5f55f431713061e F ext/misc/urifuncs.c f71360d14fa9e7626b563f1f781c6148109462741c5235ac63ae0f8917b9c751 F ext/misc/uuid.c 5bb2264c1b64d163efa46509544fd7500cb8769cb7c16dd52052da8d961505cf F ext/misc/vfslog.c 3b25c2f56ba60788db247287be6ab024b53c4afffd412b4876db563389be0d35 -F ext/misc/vfsstat.c 77b5b4235c9f7f11eddf82487c0a422944ac2f132dafd5af3be7a68a057b1cdb +F ext/misc/vfsstat.c 389ea13983d3af926504c314f06a83cc858d5adc24b40af74aaed1fece00c118 F ext/misc/vtablog.c 5538acd0c8ddaae372331bee11608d76973436b77d6a91e8635cfc9432fba5ae F ext/misc/vtshim.c 1976e6dd68dd0d64508c91a6dfab8e75f8aaf6cd F ext/misc/wholenumber.c 520f34c3099e5b7d546f13708607dc2fa173c46b68952eecf0d19cd675fec85e @@ -1866,7 +1866,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 56e5063c326ffbfd3e3cb6f2b05718412aca2cb183274bfe11f5666effdd04b9 -R 01324a5a46d5370d11de237fae1d2b79 +P a77ceaf6ba934b1d73c90b8980191a65d02ad6ce1e11e6baf573b3a132685545 +R 4196412a957656021e354dac48b171f2 U drh -Z 4612882d193bb7431c4c9f4670ae6370 +Z 047ce2029fbbe737be54b5d1a4d5fdc1 diff --git a/manifest.uuid b/manifest.uuid index 3f74ebb5d8..a5fa9fad94 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a77ceaf6ba934b1d73c90b8980191a65d02ad6ce1e11e6baf573b3a132685545 \ No newline at end of file +3261ee9ec26bbeaa64190c12556a1d8146270b6660c70004830bd38c1b5b63f4 \ No newline at end of file From 0934d640456bb168a8888ae388643c5160afe501 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 25 May 2020 15:19:52 +0000 Subject: [PATCH 10/12] Defensive code that tries to prevent a recurrence of problems like the one described in ticket [7a5279a25c57adf1] FossilOrigin-Name: 572105de1d44bca4f18c99d373458889163611384eebbc9659474874ee1701f4 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/expr.c | 10 ++++++++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index f699358d39..a59fff912d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sminor\scompile\sissues\swith\soptional\sextensions. -D 2020-05-25T12:49:58.975 +C Defensive\scode\sthat\stries\sto\sprevent\sa\srecurrence\sof\sproblems\slike\sthe\none\sdescribed\sin\sticket\s[7a5279a25c57adf1] +D 2020-05-25T15:19:52.511 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -485,7 +485,7 @@ F src/date.c b29b349d277e3d579dcc295b24c0a2caed83fd8f090a9f7cbe6070c0fd662384 F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a F src/dbstat.c 793deaf88a0904f88285d93d6713c636d55ede0ffd9f08d10f4ea825531d367f F src/delete.c 88047c8e59878c920fce14582bc1dde4d81157d1ca5ffdf36c2907e6d41996c4 -F src/expr.c 30bdb15abfa93d32862160795c3cb25d87489186ac0e34020eb2894767c80b42 +F src/expr.c b46669d9fc9e0361dba6cc289901a013789e0b1dc629c4c1bc88ec9403633b38 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 4b575423b0a5d4898b1a7868ce985cf1a8ad91c741c9abbb108ff02536d20f41 F src/func.c 2333eb4277f55a5efdc12ef754e7d7ec9105d257b2fd00301d23ce1e8fa67dc0 @@ -1866,7 +1866,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 a77ceaf6ba934b1d73c90b8980191a65d02ad6ce1e11e6baf573b3a132685545 -R 4196412a957656021e354dac48b171f2 +P 3261ee9ec26bbeaa64190c12556a1d8146270b6660c70004830bd38c1b5b63f4 +R e34a1f962ac5984191c7a26f2bb9dcc0 U drh -Z 047ce2029fbbe737be54b5d1a4d5fdc1 +Z b86a7669719466f4efe7df019d717545 diff --git a/manifest.uuid b/manifest.uuid index a5fa9fad94..2e0598a04e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3261ee9ec26bbeaa64190c12556a1d8146270b6660c70004830bd38c1b5b63f4 \ No newline at end of file +572105de1d44bca4f18c99d373458889163611384eebbc9659474874ee1701f4 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index 83dd8b1ab3..c5b6783871 100644 --- a/src/expr.c +++ b/src/expr.c @@ -3811,7 +3811,10 @@ expr_code_doover: switch( op ){ case TK_AGG_COLUMN: { AggInfo *pAggInfo = pExpr->pAggInfo; - struct AggInfo_col *pCol = &pAggInfo->aCol[pExpr->iAgg]; + struct AggInfo_col *pCol; + assert( pAggInfo!=0 ); + assert( pExpr->iAgg>=0 && pExpr->iAggnColumn ); + pCol = &pAggInfo->aCol[pExpr->iAgg]; if( !pAggInfo->directMode ){ assert( pCol->iMem>0 ); return pCol->iMem; @@ -4111,7 +4114,10 @@ expr_code_doover: } case TK_AGG_FUNCTION: { AggInfo *pInfo = pExpr->pAggInfo; - if( pInfo==0 ){ + if( pInfo==0 + || NEVER(pExpr->iAgg<0) + || NEVER(pExpr->iAgg>=pInfo->nFunc) + ){ assert( !ExprHasProperty(pExpr, EP_IntValue) ); sqlite3ErrorMsg(pParse, "misuse of aggregate: %s()", pExpr->u.zToken); }else{ From b6907e299370683129fd6a7380ba052ee7b11a0e Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 25 May 2020 15:41:03 +0000 Subject: [PATCH 11/12] Extra assert() statements in the printf() logic. FossilOrigin-Name: b1b182be2ab34cec1d94c5570bc361331a34f727eb9fa4aadfabb7f1ef79f83e --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/printf.c | 4 +++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index a59fff912d..5ccf836e5d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Defensive\scode\sthat\stries\sto\sprevent\sa\srecurrence\sof\sproblems\slike\sthe\none\sdescribed\sin\sticket\s[7a5279a25c57adf1] -D 2020-05-25T15:19:52.511 +C Extra\sassert()\sstatements\sin\sthe\sprintf()\slogic. +D 2020-05-25T15:41:03.801 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -529,7 +529,7 @@ F src/pcache1.c 6596e10baf3d8f84cc1585d226cf1ab26564a5f5caf85a15757a281ff977d51a F src/pragma.c 1b0db48177e52b256c003b8dc6ac708b1079a82cded944a23820574586a4731f F src/pragma.h 8168e588536bffd95319451f34e9a754dc37d205ebe433031a7813c5b286beae F src/prepare.c 8d4d6c8aa6afefc48027c54b41cdf134b4d6bc2fc4badbe483ad7fd9e1728a28 -F src/printf.c c558075d06f0c83b0471499cebd30ef979e600709cde1e2b744abadcf52c7ba2 +F src/printf.c 94b5419ad0a17269f76a9e968ca19cf9fa37617abed2e246fc48844e511b6bc6 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c c2008519a0654f1e7490e9281ed0397d0f14bb840d81f0b96946248afcbdb25d F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 @@ -1866,7 +1866,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 3261ee9ec26bbeaa64190c12556a1d8146270b6660c70004830bd38c1b5b63f4 -R e34a1f962ac5984191c7a26f2bb9dcc0 +P 572105de1d44bca4f18c99d373458889163611384eebbc9659474874ee1701f4 +R 060d4022d9a6a2267bacd2bd89abcc90 U drh -Z b86a7669719466f4efe7df019d717545 +Z a8ddab7e601365298b675d3fa3c141bd diff --git a/manifest.uuid b/manifest.uuid index 2e0598a04e..0d03b644b5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -572105de1d44bca4f18c99d373458889163611384eebbc9659474874ee1701f4 \ No newline at end of file +b1b182be2ab34cec1d94c5570bc361331a34f727eb9fa4aadfabb7f1ef79f83e \ No newline at end of file diff --git a/src/printf.c b/src/printf.c index 4505a5675e..ae957022a1 100644 --- a/src/printf.c +++ b/src/printf.c @@ -401,6 +401,8 @@ void sqlite3_str_vappendf( ** xtype The class of the conversion. ** infop Pointer to the appropriate info struct. */ + assert( width>=0 ); + assert( precision>=(-1) ); switch( xtype ){ case etPOINTER: flag_long = sizeof(char*)==sizeof(i64) ? 2 : @@ -809,7 +811,7 @@ void sqlite3_str_vappendf( } isnull = escarg==0; if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)"); - /* For %q, %Q, and %w, the precision is the number of byte (or + /* For %q, %Q, and %w, the precision is the number of bytes (or ** characters if the ! flags is present) to use from the input. ** Because of the extra quoting characters inserted, the number ** of output characters may be larger than the precision. From d63c76fb31a0e262fb12a93b171e95a4e30c1a2e Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 25 May 2020 16:19:56 +0000 Subject: [PATCH 12/12] Version 3.32.1 FossilOrigin-Name: 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350 --- manifest | 11 +++++++---- manifest.uuid | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/manifest b/manifest index 5ccf836e5d..306c86e783 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Extra\sassert()\sstatements\sin\sthe\sprintf()\slogic. -D 2020-05-25T15:41:03.801 +C Version\s3.32.1 +D 2020-05-25T16:19:56.155 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1866,7 +1866,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 572105de1d44bca4f18c99d373458889163611384eebbc9659474874ee1701f4 +P b1b182be2ab34cec1d94c5570bc361331a34f727eb9fa4aadfabb7f1ef79f83e R 060d4022d9a6a2267bacd2bd89abcc90 +T +bgcolor * #d0c0ff +T +sym-release * +T +sym-version-3.32.1 * U drh -Z a8ddab7e601365298b675d3fa3c141bd +Z 2dade396208e30c3681b79baa530525b diff --git a/manifest.uuid b/manifest.uuid index 0d03b644b5..93007e9da7 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b1b182be2ab34cec1d94c5570bc361331a34f727eb9fa4aadfabb7f1ef79f83e \ No newline at end of file +0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350 \ No newline at end of file