From 8bc4cbce6b454a174ee0cfc955da66125f31f789 Mon Sep 17 00:00:00 2001 From: larrybr Date: Fri, 10 Sep 2021 00:58:46 +0000 Subject: [PATCH 1/4] Speed-up CLI's processing for huge block comments, for any content FossilOrigin-Name: c4568f9f458bad16bd4481f1f6f5e7b6f39f5ccf23f2b05890078577ce2ab9a2 --- manifest | 17 +++-- manifest.uuid | 2 +- src/shell.c.in | 169 ++++++++++++++++++++++++++++++++++--------------- 3 files changed, 130 insertions(+), 58 deletions(-) diff --git a/manifest b/manifest index 34f8d53906..79ef6d71e9 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\sa\sNEVER()\sin\sbtree\sthat\sis\ssometimes\sreachable.\ndbsqlfuzz\sb9140023005430654c8fe544cf0a082ef8d561c1. -D 2021-09-09T19:19:02.452 +C Speed-up\sCLI's\sprocessing\sfor\shuge\sblock\scomments,\sfor\sany\scontent +D 2021-09-10T00:58:46.038 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -545,7 +545,7 @@ F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c F src/resolve.c 42b94d37a54200707a95566eff4f7e8a380e32d080016b699f23bd79a73a5028 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c b2c48dfc02b486fd2da2be1605503615958ba1997d40d994c2946975d0150a31 -F src/shell.c.in af6c3a4942c17a5e28cd47cc111d2f6d6946388c1ff0f5a402208e3f28b666bf +F src/shell.c.in a9db850f1254f281a59042d180d2c6c8f3208cc8455e140600c3d95481c6c168 F src/sqlite.h.in 4e977a5e2ed1a9e8987ff65a2cab5f99a4298ebf040ea5ff636e1753339ff45a F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510 @@ -1922,7 +1922,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 3ebfe7128a20b270de65ebf4620f62e34ea6cc46b472cc52aed96af504eb9637 -R 18891cf2bf7f46de337f5e14da9a6bc6 -U drh -Z 418794be93dd5023a367639347086d0f +P 6844ede29e1dac93a392dfb1e7e676bb9d0a2e7bbec0a4a5804ffc2025a99b66 +R 5477d1fa459b11493c202e9f0cfe1148 +T *branch * speedy_cli +T *sym-speedy_cli * +T -sym-trunk * +U larrybr +Z b7d7b6be2bca4895f81d545876286c4b diff --git a/manifest.uuid b/manifest.uuid index 377fbd2779..13f0ec0131 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6844ede29e1dac93a392dfb1e7e676bb9d0a2e7bbec0a4a5804ffc2025a99b66 \ No newline at end of file +c4568f9f458bad16bd4481f1f6f5e7b6f39f5ccf23f2b05890078577ce2ab9a2 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index 438119c08f..dd261613d5 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -10598,38 +10598,109 @@ meta_command_exit: return rc; } -/* -** Return TRUE if a semicolon occurs anywhere in the first N characters -** of string z[]. +/* Line scan result and intermediate states (supporting scan resumption) */ -static int line_contains_semicolon(const char *z, int N){ - int i; - for(i=0; ilineno = 0; while( errCnt==0 || !bail_on_error || (p->in==0 && stdin_is_interactive) ){ @@ -10745,14 +10815,17 @@ static int process_input(ShellState *p){ seenInterrupt = 0; } p->lineno++; - if( _all_whitespace(zLine) ){ - if( nSql==0 ){ - if( ShellHasFlag(p, SHFLG_Echo) ) - printf("%s\n", zLine); - continue; - } - }else{ - bAllWhite = 0; + if( QSS_STATE(qss)==QSS_InPlain + && line_is_command_terminator(zLine) + && line_is_complete(zSql, nSql) ){ + memcpy(zLine,";",2); + } + qss = quickscan(zLine, qss); + if( QSS_PLAINWHITE(qss) && nSql==0 ){ + if( ShellHasFlag(p, SHFLG_Echo) ) + printf("%s\n", zLine); + /* Just swallow leading whitespace */ + continue; } if( zLine && (zLine[0]=='.' || zLine[0]=='#') && nSql==0 ){ if( ShellHasFlag(p, SHFLG_Echo) ) printf("%s\n", zLine); @@ -10766,9 +10839,6 @@ static int process_input(ShellState *p){ } continue; } - if( line_is_command_terminator(zLine) && line_is_complete(zSql, nSql) ){ - memcpy(zLine,";",2); - } nLine = strlen30(zLine); if( nSql+nLine+2>=nAlloc ){ /* Grow buffer by half-again increments when big. */ @@ -10789,8 +10859,7 @@ static int process_input(ShellState *p){ memcpy(zSql+nSql, zLine, nLine+1); nSql += nLine; } - if( nSql && line_contains_semicolon(&zSql[nSqlPrior], nSql-nSqlPrior) - && sqlite3_complete(zSql) ){ + if( nSql && QSS_STATE(qss)==QSS_EndingSemi && sqlite3_complete(zSql) ){ errCnt += runOneSqlLine(p, zSql, p->in, startline); nSql = 0; if( p->outCount ){ @@ -10800,12 +10869,12 @@ static int process_input(ShellState *p){ clearTempFile(p); } p->bSafeMode = p->bSafeModePersist; - }else if( nSql && bAllWhite ){ + }else if( nSql && QSS_PLAINWHITE(qss) ){ if( ShellHasFlag(p, SHFLG_Echo) ) printf("%s\n", zSql); nSql = 0; } } - if( nSql && !bAllWhite ){ + if( nSql && QSS_PLAINDARK(qss) ){ errCnt += runOneSqlLine(p, zSql, p->in, startline); } free(zSql); From a96bbe9af6c8a68d36de13ebfe18fd31bc3d968d Mon Sep 17 00:00:00 2001 From: larrybr Date: Fri, 10 Sep 2021 19:45:22 +0000 Subject: [PATCH 2/4] Make CLI prescan handle goofy identifier delimiters too. Streamline code. FossilOrigin-Name: 968aed690ba7240f8a256f5ba679cc971f432ff9af0ff99744824af79b952545 --- manifest | 15 ++++------ manifest.uuid | 2 +- src/shell.c.in | 81 ++++++++++++++++++++------------------------------ 3 files changed, 39 insertions(+), 59 deletions(-) diff --git a/manifest b/manifest index 79ef6d71e9..d55b456136 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Speed-up\sCLI's\sprocessing\sfor\shuge\sblock\scomments,\sfor\sany\scontent -D 2021-09-10T00:58:46.038 +C Make\sCLI\sprescan\shandle\sgoofy\sidentifier\sdelimiters\stoo.\sStreamline\scode. +D 2021-09-10T19:45:22.999 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -545,7 +545,7 @@ F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c F src/resolve.c 42b94d37a54200707a95566eff4f7e8a380e32d080016b699f23bd79a73a5028 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c b2c48dfc02b486fd2da2be1605503615958ba1997d40d994c2946975d0150a31 -F src/shell.c.in a9db850f1254f281a59042d180d2c6c8f3208cc8455e140600c3d95481c6c168 +F src/shell.c.in f857f13def27b87c6759a537b4d53b30c5c232736b8b31040ba3eb49714a0de3 F src/sqlite.h.in 4e977a5e2ed1a9e8987ff65a2cab5f99a4298ebf040ea5ff636e1753339ff45a F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510 @@ -1922,10 +1922,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 6844ede29e1dac93a392dfb1e7e676bb9d0a2e7bbec0a4a5804ffc2025a99b66 -R 5477d1fa459b11493c202e9f0cfe1148 -T *branch * speedy_cli -T *sym-speedy_cli * -T -sym-trunk * +P c4568f9f458bad16bd4481f1f6f5e7b6f39f5ccf23f2b05890078577ce2ab9a2 +R eb5e78e09aa48719a67382400efc7d61 U larrybr -Z b7d7b6be2bca4895f81d545876286c4b +Z d182a98bc0a685d688796d8bc75a9046 diff --git a/manifest.uuid b/manifest.uuid index 13f0ec0131..b2cde8ca43 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c4568f9f458bad16bd4481f1f6f5e7b6f39f5ccf23f2b05890078577ce2ab9a2 \ No newline at end of file +968aed690ba7240f8a256f5ba679cc971f432ff9af0ff99744824af79b952545 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index dd261613d5..9ea31a0926 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -10601,15 +10601,18 @@ meta_command_exit: /* Line scan result and intermediate states (supporting scan resumption) */ typedef enum { - QSS_InPlain = 0, QSS_InString, QSS_InDquote, - QSS_InBlockComment, QSS_EndingSemi, - QSS_NoDark = 0, QSS_HasDark = 1<<3, - QSS_ScanMask = 0x7, QSS_DarkMask = 1<<3 + QSS_InPlain = 0, QSS_InQuote = 1, QSS_InBlockComment = 2, + QSS_NoDark = 0, QSS_HasDark = 1<<2, QSS_EndingSemi = 1<<3, + QSS_ScanMask = 0x3, QSS_DarkMask = 1<<2, + QSS_CharShift = 4, QSS_StateMask = ((1<> QSS_CharShift; + while (cin = *zLine++){ + if( cin==cLeave ){ goto InPlainSet; - }else{ - ++zLine; - } - } - } - break; - case QSS_InDquote: - InDquote: - while (cin = *zLine++){ - if( cin=='"' ){ - if( *zLine!='"' ){ - goto InPlainSet; - }else{ - ++zLine; } } } @@ -10689,16 +10681,7 @@ static QuickScanState quickscan(char *zLine, QuickScanState qss){ } } break; - case QSS_EndingSemi: - EndingSemi: - while (cin = *zLine++){ - if( !IsSpace(cin) && cin!=';' ){ - --zLine; - goto InPlain; - } - } - break; - default: assert(0); + default:; } return qss; } @@ -10716,7 +10699,7 @@ static int line_is_command_terminator(char *zLine){ zLine += 2; /* SQL Server */ else return 0; - return quickscan(zLine,QSS_NoDark)==QSS_NoDark; + return quickscan(zLine,QSS_Start)==QSS_Start; } /* @@ -10859,7 +10842,7 @@ static int process_input(ShellState *p){ memcpy(zSql+nSql, zLine, nLine+1); nSql += nLine; } - if( nSql && QSS_STATE(qss)==QSS_EndingSemi && sqlite3_complete(zSql) ){ + if( nSql && QSS_SEMITERM(qss) && sqlite3_complete(zSql) ){ errCnt += runOneSqlLine(p, zSql, p->in, startline); nSql = 0; if( p->outCount ){ From 8d463ce13537245c906ed68ec599e29e0e217e9f Mon Sep 17 00:00:00 2001 From: larrybr Date: Sat, 11 Sep 2021 02:42:04 +0000 Subject: [PATCH 3/4] CLI prescanner made to match SQLite's rules for delimited identifiers. Tests begun. FossilOrigin-Name: 15b105c520968855ad960d8929f80af9e9bedc155237af9af1956f7b546947f2 --- manifest | 17 +++++++++-------- manifest.uuid | 2 +- src/shell.c.in | 6 ++++-- test/shell3.test | 37 +++++++++++++++++++++++++++++++++++++ tool/replace.tcl | 2 +- 5 files changed, 52 insertions(+), 12 deletions(-) diff --git a/manifest b/manifest index d55b456136..fcc91d8197 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Make\sCLI\sprescan\shandle\sgoofy\sidentifier\sdelimiters\stoo.\sStreamline\scode. -D 2021-09-10T19:45:22.999 +C CLI\sprescanner\smade\sto\smatch\sSQLite's\srules\sfor\sdelimited\sidentifiers.\sTests\sbegun. +D 2021-09-11T02:42:04.707 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -545,7 +545,7 @@ F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c F src/resolve.c 42b94d37a54200707a95566eff4f7e8a380e32d080016b699f23bd79a73a5028 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92 F src/select.c b2c48dfc02b486fd2da2be1605503615958ba1997d40d994c2946975d0150a31 -F src/shell.c.in f857f13def27b87c6759a537b4d53b30c5c232736b8b31040ba3eb49714a0de3 +F src/shell.c.in be7cd92c042b5e16bfd727404c5b2ec72c8e177ee2e092da6fe3ea031bbf8ece F src/sqlite.h.in 4e977a5e2ed1a9e8987ff65a2cab5f99a4298ebf040ea5ff636e1753339ff45a F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510 @@ -1373,7 +1373,7 @@ F test/shared_err.test 32634e404a3317eeb94abc7a099c556a346fdb8fb3858dbe222a4cbb8 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304 F test/shell1.test 56a7358a2a05e850e9e4aa24629db9c8975e8038dbe8debd2d95be22a5f03612 F test/shell2.test e242a9912f44f4c23c3d1d802a83e934e84c853b -F test/shell3.test ac8c2b744014c3e9a0e26bfd829ab65f00923dc1a91ffd044863e9423cc91494 +F test/shell3.test 1586a163e7918775d3c25530bf84200453f30a77cc338490389114a67352f4d9 F test/shell4.test 3ed6c4b42fd695efcbc25d69ef759dbb15855ca8e52ba6c5ee076f8b435f48be F test/shell5.test 84a30b55722a95a5b72989e691c469a999ca7591e7aa00b7fabc783ea5c9a6fe F test/shell6.test 1ceb51b2678c472ba6cf1e5da96679ce8347889fe2c3bf93a0e0fa73f00b00d3 @@ -1868,7 +1868,7 @@ F tool/offsets.c 8ed2b344d33f06e71366a9b93ccedaa38c096cc1dbd4c3c26ad08c611528584 F tool/omittest.tcl 3d222272b1d840b4e3d67bff0cb743ce3f633faddadb3702b2056b726775db8f F tool/opcodesum.tcl 740ed206ba8c5040018988129abbf3089a0ccf4a F tool/pagesig.c ff0ca355fd3c2398e933da5e22439bbff89b803b -F tool/replace.tcl 60f91e8dd06ab81f74d213ecbd9c9945f32ac048 +F tool/replace.tcl 937c931ad560688e85bdd6258bdc754371bb1e2732e1fb28ef441e44c9228fce F tool/restore_jrnl.tcl 6957a34f8f1f0f8285e07536225ec3b292a9024a F tool/rollback-test.c 9fc98427d1e23e84429d7e6d07d9094fbdec65a5 F tool/run-speed-test.sh f95d19fd669b68c4c38b6b475242841d47c66076 @@ -1922,7 +1922,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P c4568f9f458bad16bd4481f1f6f5e7b6f39f5ccf23f2b05890078577ce2ab9a2 -R eb5e78e09aa48719a67382400efc7d61 +P 968aed690ba7240f8a256f5ba679cc971f432ff9af0ff99744824af79b952545 +Q +2dd61dd97b0326b59b0bc3c83b4d4b9acf811c5acae4d1003e7525ba7a26daf5 +R 646f691d304e0a026b7432ed79848447 U larrybr -Z d182a98bc0a685d688796d8bc75a9046 +Z d0aaf8bc6b08262fe824a57812c4fb12 diff --git a/manifest.uuid b/manifest.uuid index b2cde8ca43..75e634258e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -968aed690ba7240f8a256f5ba679cc971f432ff9af0ff99744824af79b952545 \ No newline at end of file +15b105c520968855ad960d8929f80af9e9bedc155237af9af1956f7b546947f2 \ No newline at end of file diff --git a/src/shell.c.in b/src/shell.c.in index 9ea31a0926..712169cde6 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -10625,7 +10625,6 @@ static QuickScanState quickscan(char *zLine, QuickScanState qss){ case QSS_InPlain: InPlainSet: qss = QSS_SETV(qss, QSS_InPlain); - InPlain: while (cin = *zLine++){ if( IsSpace(cin) ) continue; @@ -10667,7 +10666,10 @@ static QuickScanState quickscan(char *zLine, QuickScanState qss){ char cLeave = qss >> QSS_CharShift; while (cin = *zLine++){ if( cin==cLeave ){ - goto InPlainSet; + if(*zLine==cLeave && cLeave!=']') + ++zLine; + else + goto InPlainSet; } } } diff --git a/test/shell3.test b/test/shell3.test index 63c30a2682..714a4781ea 100644 --- a/test/shell3.test +++ b/test/shell3.test @@ -18,6 +18,7 @@ # # shell3-1.*: Basic tests for running SQL statments from command line. # shell3-2.*: Basic tests for running SQL file from command line. +# shell3-3.*: Basic tests for processing odd SQL constructs. # set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -26,6 +27,7 @@ db close forcedelete test.db test.db-journal test.db-wal sqlite3 db test.db + # There are inconsistencies in command-line argument quoting on Windows. # In particular, individual applications are responsible for command-line # parsing in Windows, not the shell. Depending on whether the sqlite3.exe @@ -98,4 +100,39 @@ do_test shell3-2.7 { catchcmd "foo.db" "CREATE TABLE" } {1 {Error: near line 1: incomplete input}} + +#---------------------------------------------------------------------------- +# shell3-3.*: Basic tests for processing odd SQL constructs. +# + +# Run combinations of odd identifiers, comments, semicolon placement +do_test shell3-3.1 { + forcedelete foo.db + set rc [ catchcmd "foo.db" {CREATE TABLE t1(" +a--. +" --x +); CREATE TABLE t2("a[""b""]"); +.header on +INSERT INTO t1 VALUES (' +x''y'); +INSERT INTO t2 VALUES (' +/*. +.*/ x +''y'); +SELECT * from t1 limit 1; +SELECT * from t2 limit 1; +} ] + set fexist [file exist foo.db] + list $rc $fexist +} {{0 { +a--. + + +x'y +a["b"] + +/*. +.*/ x +'y}} 1} + finish_test diff --git a/tool/replace.tcl b/tool/replace.tcl index 5a1ac5983c..e87cb922f2 100644 --- a/tool/replace.tcl +++ b/tool/replace.tcl @@ -9,7 +9,7 @@ fconfigure stderr -translation binary -encoding binary set mode [string tolower [lindex $argv 0]] set from [lindex $argv 1] set to [lindex $argv 2] -if {$mode ni [list exact regsub include]} {exit 1} +if {-1 == [lsearch -exact [list exact regsub include] $mode]} {exit 1} if {[string length $from]==0} {exit 2} while {![eof stdin]} { set line [gets stdin] From 6b7e47fa585d2fc9e63bada61e0da8b929523e9e Mon Sep 17 00:00:00 2001 From: larrybr Date: Sun, 19 Sep 2021 18:31:55 +0000 Subject: [PATCH 4/4] Adjust shell tests for *Nix and Windows test platform anomaly FossilOrigin-Name: 577544c5a2f193e00e5ca55b7feae96568198019573b9b0b37e2bf4300d6d524 --- manifest | 12 ++++++------ manifest.uuid | 2 +- test/shell2.test | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/manifest b/manifest index 2524fc7ae7..990a0ef0bc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Sync\sw/trunk,\sfurther\sstreamline\sshell's\sresumable\sprescan. -D 2021-09-18T21:35:22.366 +C Adjust\sshell\stests\sfor\s*Nix\sand\sWindows\stest\splatform\sanomaly +D 2021-09-19T18:31:55.750 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1375,7 +1375,7 @@ F test/sharedB.test 16cc7178e20965d75278f410943109b77b2e645e F test/shared_err.test 32634e404a3317eeb94abc7a099c556a346fdb8fb3858dbe222a4cbb8926a939 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304 F test/shell1.test 56a7358a2a05e850e9e4aa24629db9c8975e8038dbe8debd2d95be22a5f03612 -F test/shell2.test e242a9912f44f4c23c3d1d802a83e934e84c853b +F test/shell2.test a03b835a9e7dcc1f79b471e4d62e0c85bdc4cb954a00820702603f1409553caf F test/shell3.test 1586a163e7918775d3c25530bf84200453f30a77cc338490389114a67352f4d9 F test/shell4.test 3ed6c4b42fd695efcbc25d69ef759dbb15855ca8e52ba6c5ee076f8b435f48be F test/shell5.test 84a30b55722a95a5b72989e691c469a999ca7591e7aa00b7fabc783ea5c9a6fe @@ -1925,7 +1925,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 15b105c520968855ad960d8929f80af9e9bedc155237af9af1956f7b546947f2 99d6bb22e8735681443bfe67287aa15ce2c57d0d63e304abf8aa01fde50dd021 -R 49a56387d26f2bce27d3217e1e0550b1 +P 9e00f9f7c03c192a3fb6b22851db0626515c59daac5ce6520229c42c838bf5b7 +R a262f509a9bdc0e9fae37cb35e7b774a U larrybr -Z f54f51b048cd8993f1718034d535befc +Z c20e0c055c38369d11323498c4dfd701 diff --git a/manifest.uuid b/manifest.uuid index 0573cfc715..3d8514f057 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9e00f9f7c03c192a3fb6b22851db0626515c59daac5ce6520229c42c838bf5b7 \ No newline at end of file +577544c5a2f193e00e5ca55b7feae96568198019573b9b0b37e2bf4300d6d524 \ No newline at end of file diff --git a/test/shell2.test b/test/shell2.test index 2de6bf7514..4f2f4f3f63 100644 --- a/test/shell2.test +++ b/test/shell2.test @@ -43,10 +43,10 @@ do_test shell2-1.1.1 { # Shell silently ignores extra parameters. # Ticket [f5cb008a65]. do_test shell2-1.2.1 { - set rc [catch { eval exec $CLI \":memory:\" \"select+3\" \"select+4\" } msg] - list $rc $msg + catchcmdex {:memory: "select+3" "select+4"} } {0 {3 -4}} +4 +}} # Test a problem reported on the mailing list. The shell was at one point # returning the generic SQLITE_ERROR message ("SQL error or missing database") @@ -123,7 +123,7 @@ SELECT * FROM foo;} # NB. whitespace is important do_test shell2-1.4.5 { forcedelete foo.db - catchcmd "foo.db" {.echo ON + catchcmdex "foo.db" {.echo ON CREATE TABLE foo1(a); INSERT INTO foo1(a) VALUES(1); CREATE TABLE foo2(b); @@ -155,7 +155,7 @@ SELECT * FROM foo2; # NB. whitespace is important do_test shell2-1.4.6 { forcedelete foo.db - catchcmd "foo.db" {.echo ON + catchcmdex "foo.db" {.echo ON .headers ON CREATE TABLE foo1(a); INSERT INTO foo1(a) VALUES(1);