- C Fix\sa\sstale\srequirement\smark.
- D 2022-05-10T17:42:55.876
-C The\sunix\sinterface\snow\sresolves\sall\ssymbolic\slinks\sin\sfilenames\sbefore\nactually\susing\sthose\sfilenames.
-D 2022-05-11T17:57:43.566
++C Change\s.echo\son\seffect\sso\sthat\sSQL\sis\sechoed\sbefore\sprepare.\sThis\sslightly\salters\sechoed\soutput\swhen\smultiple\sSQL\sstatements\sare\ssubmitted\sat\sonce.\sAlso\ssync\swith\strunk.
++D 2022-05-11T19:59:31.774
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
F src/resolve.c e9ee235c4151d2b7fa47435a219bfd30bf516a804d2f004639858087ebf3137b
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c cd17de0cab436f0efc4cfeeeef1b8e03c41c40335ec757eff68e341e6a3f763f
- F src/shell.c.in af2e55dbd1b3d1ea5b8c677f815ec8180aefef22299996f8ae64090d02d51aca
+ F src/select.c 5096a2e8ab0511a413e7f5e45453fea4102d99c5636c46792581ae67899a76d7
-F src/shell.c.in 0ad33896c3e79a9578c507c8f0589290cbc98b0af1f31ca0cf8ddbb7601e60ef
++F src/shell.c.in cf90e67622f3d1a1874a4080ac1ab6b9393a09ca4cf7d820b45a62ff2429a6c0
F src/sqlite.h.in 2a35f62185eb5e7ecc64a2f68442b538ce9be74f80f28a00abc24837edcf1c17
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h f49e28c25bd941e79794db5415fdf7b202deb3bc072ed6f1ed273d578703684e
F test/sharedB.test 16cc7178e20965d75278f410943109b77b2e645e
F test/shared_err.test 32634e404a3317eeb94abc7a099c556a346fdb8fb3858dbe222a4cbb8926a939
F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304
- F test/shell1.test eb2a7b768a1a20d70a8a205b11a8e3fd94b7f8d98d45aa9fb90433202609b0c3
- F test/shell2.test 7a3a23a9f57b99453f1679b1fe8072cb30e382a622874c0c4d97695fadb0a787
- F test/shell3.test a50628ab1d78d90889d9d3f32fb2c084ee15674771e96afe954aaa0accd1de3c
- F test/shell4.test 8f6c0fce4abed19a8a7f7262517149812a04caa905d01bdc8f5e92573504b759
- F test/shell5.test 78a7a8516b1e7de560748881424f621321549023d3e5f7ed2e1c56497f64c06c
+ F test/shell1.test e4b4de56f454708e0747b52915135baa2cbfec4965406d6eaf02a4a5c22a9880
-F test/shell2.test 7a3a23a9f57b99453f1679b1fe8072cb30e382a622874c0c4d97695fadb0a787
++F test/shell2.test c536c2aab4852608f8a606262330797abc4d964a4c2c782a7760f54ea1f17a6a
+ F test/shell3.test 91febeac0412812bf6370abb8ed72700e32bf8f9878849414518f662dfd55e8a
+ F test/shell4.test 7dc8a515705bc093d8ffe381670e8fa7a969661e8ed177c35c847e3c6dfc35e2
+ F test/shell5.test c8b6c54f26ec537f8558273d7ed293ca3725ef42e6b12b8f151718628bd1473b
F test/shell6.test 1ceb51b2678c472ba6cf1e5da96679ce8347889fe2c3bf93a0e0fa73f00b00d3
F test/shell7.test 115132f66d0463417f408562cc2cf534f6bbc6d83a6d50f0072a9eb171bae97f
- F test/shell8.test 388471d16e4de767333107e30653983f186232c0e863f4490bb230419e830aae
+ F test/shell8.test 3fd093d481aaa94dc77fb73f1044c1f19c7efe3477a395cc4f7450133bc54915
F test/shmlock.test 3dbf017d34ab0c60abe6a44e447d3552154bd0c87b41eaf5ceacd408dd13fda5
F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3
F test/show_speedtest1_rtree.tcl 32e6c5f073d7426148a6936a0408f4b5b169aba5
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P b7285f92bb9bfd8471e51ee5b6dbd7030b1f731683876e8ecca4a8c033688736
- R 72fca0ee51c12a7f90dd5313ccb28616
-P df842ebc796a2b0c913d19d873e88d048808dc5283465271369e302a680317e4 c3da4c1611cebd9f9d695892a3ffddc47d5f0db1a1ea8bd2b4f83ef7673b68de
-R 692b7f3944f60c275f9ba394269455ca
-T +closed c3da4c1611cebd9f9d695892a3ffddc47d5f0db1a1ea8bd2b4f83ef7673b68de
--U drh
- Z 747367051d653b31d41a6b7e7bda4d15
-Z 68d76aedfae717687d8131de0b7511d9
++P 3eda4030f73384abf18b97cd8a4606e10b23e382d1b72dff7526aebfde23e0af d55273e36e312336b8fc77dc771657d3b2c3437fbbd79f3be37701982560d634
++R aa68945421e08aa1a970b0abab882c1b
++U larrybr
++Z c1c6d0984d4c87f2c4cc513f1bf72524
# Remove this line to create a well-formed Fossil manifest.
- 3eda4030f73384abf18b97cd8a4606e10b23e382d1b72dff7526aebfde23e0af
-d55273e36e312336b8fc77dc771657d3b2c3437fbbd79f3be37701982560d634
++c1eff632c41809214edea2850a93852fff66da3ca0dc393e8fe55e0976d422fd
#define SHFLG_PreserveRowid 0x00000008 /* .dump preserves rowid values */
#define SHFLG_Newlines 0x00000010 /* .dump --newline flag */
#define SHFLG_CountChanges 0x00000020 /* .changes setting */
-#define SHFLG_Echo 0x00000040 /* .echo or --echo setting */
+#define SHFLG_Echo 0x00000040 /* .echo on/off, or --echo setting */
- #define SHFLG_EchoSql 0x00000080 /* .echo sql, before prepare */
- #define SHFLG_HeaderSet 0x00000100 /* showHeader has been specified */
- #define SHFLG_DumpDataOnly 0x00000200 /* .dump show data only */
- #define SHFLG_DumpNoSys 0x00000400 /* .dump omits system tables */
+ #define SHFLG_HeaderSet 0x00000080 /* showHeader has been specified */
+ #define SHFLG_DumpDataOnly 0x00000100 /* .dump show data only */
+ #define SHFLG_DumpNoSys 0x00000200 /* .dump omits system tables */
/*
** Macros for testing and setting shellFlgs
pArg->cnt = 0;
}
-- /* echo the sql statement if echo on */
-- if( pArg && ShellHasFlag(pArg, SHFLG_Echo) ){
-- utf8_printf(pArg->out, "%s\n", zStmtSql ? zStmtSql : zSql);
-- }
-
/* Show the EXPLAIN QUERY PLAN if .eqp is on */
if( pArg && pArg->autoEQP && sqlite3_stmt_isexplain(pStmt)==0 ){
sqlite3_stmt *pExplain;
int i;
int savedShowHeader = p->showHeader;
int savedShellFlags = p->shellFlgs;
- ShellClearFlag(p,
+ ShellClearFlag(p,
- SHFLG_PreserveRowid|SHFLG_Newlines|SHFLG_Echo|SHFLG_EchoSql
+ SHFLG_PreserveRowid|SHFLG_Newlines|SHFLG_Echo
|SHFLG_DumpDataOnly|SHFLG_DumpNoSys);
for(i=1; i<nArg; i++){
if( azArg[i][0]=='-' ){
goto meta_command_exit;
}
utf8_printf(p->out, "%12.12s: %s\n","echo",
- (ShellHasFlag(p, SHFLG_EchoSql))
- ? "sql" : azBool[ShellHasFlag(p, SHFLG_Echo)]);
- azBool[ShellHasFlag(p, SHFLG_Echo)]);
++ azBool[ShellHasFlag(p, SHFLG_Echo)]);
utf8_printf(p->out, "%12.12s: %s\n","eqp", azBool[p->autoEQP&3]);
utf8_printf(p->out, "%12.12s: %s\n","explain",
p->mode==MODE_Explain ? "on" : p->autoExplain ? "auto" : "off");
return 0;
}
++static void echo_group_input(ShellState *p, const char *zDo){
++ if( ShellHasFlag(p, SHFLG_Echo) ) utf8_printf(p->out, "%s\n", zDo);
++}
/*
** Read input from *in and process it. If *in==0 then input
}
qss = quickscan(zLine, qss);
if( QSS_PLAINWHITE(qss) && nSql==0 ){
-- if( ShellHasFlag(p, SHFLG_Echo) )
-- printf("%s\n", zLine);
/* Just swallow single-line whitespace */
++ echo_group_input(p, zLine);
qss = QSS_Start;
continue;
}
if( zLine && (zLine[0]=='.' || zLine[0]=='#') && nSql==0 ){
-- if( ShellHasFlag(p, SHFLG_Echo) ) printf("%s\n", zLine);
++ echo_group_input(p, zLine);
if( zLine[0]=='.' ){
rc = do_meta_command(zLine, p);
if( rc==2 ){ /* exit requested */
nSql += nLine;
}
if( nSql && QSS_SEMITERM(qss) && sqlite3_complete(zSql) ){
++ echo_group_input(p, zSql);
errCnt += runOneSqlLine(p, zSql, p->in, startline);
nSql = 0;
if( p->outCount ){
p->bSafeMode = p->bSafeModePersist;
qss = QSS_Start;
}else if( nSql && QSS_PLAINWHITE(qss) ){
-- if( ShellHasFlag(p, SHFLG_Echo) ) printf("%s\n", zSql);
++ echo_group_input(p, zSql);
nSql = 0;
qss = QSS_Start;
}
}
if( nSql ){
/* This may be incomplete. Let the SQL parser deal with that. */
++ echo_group_input(p, zSql);
errCnt += runOneSqlLine(p, zSql, p->in, startline);
}
free(zSql);
INSERT INTO foo1(a) VALUES(1);
CREATE TABLE foo2(b);
INSERT INTO foo2(b) VALUES(1);
--SELECT * FROM foo1;
++SELECT * FROM foo1; SELECT * FROM foo2;
1
--SELECT * FROM foo2;
1
--INSERT INTO foo1(a) VALUES(2);
--INSERT INTO foo2(b) VALUES(2);
--SELECT * FROM foo1;
++INSERT INTO foo1(a) VALUES(2); INSERT INTO foo2(b) VALUES(2);
++SELECT * FROM foo1; SELECT * FROM foo2;
1
2
--SELECT * FROM foo2;
1
2
}}
INSERT INTO foo1(a) VALUES(1);
CREATE TABLE foo2(b);
INSERT INTO foo2(b) VALUES(1);
--SELECT * FROM foo1;
++SELECT * FROM foo1; SELECT * FROM foo2;
a
1
--SELECT * FROM foo2;
b
1
--INSERT INTO foo1(a) VALUES(2);
--INSERT INTO foo2(b) VALUES(2);
--SELECT * FROM foo1;
++INSERT INTO foo1(a) VALUES(2); INSERT INTO foo2(b) VALUES(2);
++SELECT * FROM foo1; SELECT * FROM foo2;
a
1
2
--SELECT * FROM foo2;
b
1
2