mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-05 15:55:57 +03:00
Updates to the command-line shell. Simplify the banner message. Add the
".save" command as an alias for ".backup". When starting with no arguments, include a banner message warning that the database is transient and in-memory and mention the ".open" command. FossilOrigin-Name: f5ad1e1bf2828c5da70c1ff944d8212036142e6f
This commit is contained in:
14
manifest
14
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fixes\sto\sthe\s"editline"\ssupport\sin\sthe\scommand-line\sshell.
|
C Updates\sto\sthe\scommand-line\sshell.\s\sSimplify\sthe\sbanner\smessage.\s\sAdd\sthe\n".save"\scommand\sas\san\salias\sfor\s".backup".\s\sWhen\sstarting\swith\sno\sarguments,\ninclude\sa\sbanner\smessage\swarning\sthat\sthe\sdatabase\sis\stransient\sand\sin-memory\nand\smention\sthe\s".open"\scommand.
|
||||||
D 2014-02-11T14:37:51.706
|
D 2014-02-11T16:22:18.453
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -220,7 +220,7 @@ F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
|
|||||||
F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6
|
F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6
|
||||||
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
|
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
|
||||||
F src/select.c 50961f0d0ab8f2d45ff29ec5f91d8db221330ca7
|
F src/select.c 50961f0d0ab8f2d45ff29ec5f91d8db221330ca7
|
||||||
F src/shell.c b1f75cfcd05b7921d74361f1cb9c01b9ca0b13df
|
F src/shell.c 3dd86bf73ccd079f0e32ef5069600586085e8239
|
||||||
F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b
|
F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b
|
||||||
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
|
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
|
||||||
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
|
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
|
||||||
@@ -803,7 +803,7 @@ F test/shared9.test 5f2a8f79b4d6c7d107a01ffa1ed05ae7e6333e21
|
|||||||
F test/sharedA.test 0cdf1a76dfa00e6beee66af5b534b1e8df2720f5
|
F test/sharedA.test 0cdf1a76dfa00e6beee66af5b534b1e8df2720f5
|
||||||
F test/shared_err.test 0079c05c97d88cfa03989b7c20a8b266983087aa
|
F test/shared_err.test 0079c05c97d88cfa03989b7c20a8b266983087aa
|
||||||
F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304
|
F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304
|
||||||
F test/shell1.test e7c0b9ebda25d5e78f0a3ea0dc4e31bb6d8098c0
|
F test/shell1.test f2a1d471e5cd2b42f7a65b166dc1ace2b8d11583
|
||||||
F test/shell2.test c57da3a381c099b02c813ba156298d5c2f5c93a3
|
F test/shell2.test c57da3a381c099b02c813ba156298d5c2f5c93a3
|
||||||
F test/shell3.test 5e8545ec72c4413a0e8d4c6be56496e3c257ca29
|
F test/shell3.test 5e8545ec72c4413a0e8d4c6be56496e3c257ca29
|
||||||
F test/shell4.test aa4eef8118b412d1a01477a53426ece169ea86a9
|
F test/shell4.test aa4eef8118b412d1a01477a53426ece169ea86a9
|
||||||
@@ -1153,7 +1153,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P c950d6c4117d076f871518e738cdf9e8c46a19fc
|
P 7989ce5f105657060a39be295255da8eff9ed56e fe284afe739c497e153ac2bc0275f7c9e862c824
|
||||||
R c9ba63de227fe5f3c297f7ef3cdd12e1
|
R 6488d4d20aaa0785dbe5d9952b0b36b8
|
||||||
U drh
|
U drh
|
||||||
Z ef37a62508215b02b96d545bd9d80c32
|
Z d484b7c22506286af852445c160c123b
|
||||||
|
@@ -1 +1 @@
|
|||||||
7989ce5f105657060a39be295255da8eff9ed56e
|
f5ad1e1bf2828c5da70c1ff944d8212036142e6f
|
36
src/shell.c
36
src/shell.c
@@ -1586,6 +1586,7 @@ static char zHelp[] =
|
|||||||
".quit Exit this program\n"
|
".quit Exit this program\n"
|
||||||
".read FILENAME Execute SQL in FILENAME\n"
|
".read FILENAME Execute SQL in FILENAME\n"
|
||||||
".restore ?DB? FILE Restore content of DB (default \"main\") from FILE\n"
|
".restore ?DB? FILE Restore content of DB (default \"main\") from FILE\n"
|
||||||
|
".save FILE Write in-memory database into FILE\n"
|
||||||
".schema ?TABLE? Show the CREATE statements\n"
|
".schema ?TABLE? Show the CREATE statements\n"
|
||||||
" If TABLE specified, only show tables matching\n"
|
" If TABLE specified, only show tables matching\n"
|
||||||
" LIKE pattern TABLE.\n"
|
" LIKE pattern TABLE.\n"
|
||||||
@@ -2155,7 +2156,9 @@ static int do_meta_command(char *zLine, struct callback_data *p){
|
|||||||
if( nArg==0 ) return 0; /* no tokens, no error */
|
if( nArg==0 ) return 0; /* no tokens, no error */
|
||||||
n = strlen30(azArg[0]);
|
n = strlen30(azArg[0]);
|
||||||
c = azArg[0][0];
|
c = azArg[0][0];
|
||||||
if( c=='b' && n>=3 && strncmp(azArg[0], "backup", n)==0 ){
|
if( (c=='b' && n>=3 && strncmp(azArg[0], "backup", n)==0)
|
||||||
|
|| (c=='s' && n>=3 && strncmp(azArg[0], "save", n)==0)
|
||||||
|
){
|
||||||
const char *zDestFile = 0;
|
const char *zDestFile = 0;
|
||||||
const char *zDb = 0;
|
const char *zDb = 0;
|
||||||
sqlite3 *pDest;
|
sqlite3 *pDest;
|
||||||
@@ -3503,6 +3506,26 @@ static void main_init(struct callback_data *data) {
|
|||||||
sqlite3_config(SQLITE_CONFIG_SINGLETHREAD);
|
sqlite3_config(SQLITE_CONFIG_SINGLETHREAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Output text to the console in a font that attracts extra attention.
|
||||||
|
*/
|
||||||
|
#ifdef _WIN32
|
||||||
|
static void printBold(const char *zText){
|
||||||
|
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
|
CONSOLE_SCREEN_BUFFER_INFO defaultScreenInfo;
|
||||||
|
GetConsoleScreenBufferInfo(out, &defaultScreenInfo);
|
||||||
|
SetConsoleTextAttribute(out,
|
||||||
|
FOREGROUND_RED|FOREGROUND_INTENSITY
|
||||||
|
);
|
||||||
|
printf("%s", zText);
|
||||||
|
SetConsoleTextAttribute(out, defaultScreenInfo.wAttributes);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void printBold(const char *zText){
|
||||||
|
printf("\033[1m%s\033[0m", zText);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Get the argument to an --option. Throw an error and die if no argument
|
** Get the argument to an --option. Throw an error and die if no argument
|
||||||
** is available.
|
** is available.
|
||||||
@@ -3523,6 +3546,7 @@ int main(int argc, char **argv){
|
|||||||
char *zFirstCmd = 0;
|
char *zFirstCmd = 0;
|
||||||
int i;
|
int i;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
int warnInmemoryDb = 0;
|
||||||
|
|
||||||
if( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)!=0 ){
|
if( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)!=0 ){
|
||||||
fprintf(stderr, "SQLite header and source version mismatch\n%s\n%s\n",
|
fprintf(stderr, "SQLite header and source version mismatch\n%s\n%s\n",
|
||||||
@@ -3617,6 +3641,7 @@ int main(int argc, char **argv){
|
|||||||
if( data.zDbFilename==0 ){
|
if( data.zDbFilename==0 ){
|
||||||
#ifndef SQLITE_OMIT_MEMORYDB
|
#ifndef SQLITE_OMIT_MEMORYDB
|
||||||
data.zDbFilename = ":memory:";
|
data.zDbFilename = ":memory:";
|
||||||
|
warnInmemoryDb = argc==1;
|
||||||
#else
|
#else
|
||||||
fprintf(stderr,"%s: Error: no database filename specified\n", Argv0);
|
fprintf(stderr,"%s: Error: no database filename specified\n", Argv0);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -3753,10 +3778,15 @@ int main(int argc, char **argv){
|
|||||||
int nHistory;
|
int nHistory;
|
||||||
printf(
|
printf(
|
||||||
"SQLite version %s %.19s\n" /*extra-version-info*/
|
"SQLite version %s %.19s\n" /*extra-version-info*/
|
||||||
"Enter \".help\" for instructions\n"
|
"Enter \".help\" for usage hints.\n",
|
||||||
"Enter SQL statements terminated with a \";\"\n",
|
|
||||||
sqlite3_libversion(), sqlite3_sourceid()
|
sqlite3_libversion(), sqlite3_sourceid()
|
||||||
);
|
);
|
||||||
|
if( warnInmemoryDb ){
|
||||||
|
printf("Connected to a ");
|
||||||
|
printBold("transient in-memory database.");
|
||||||
|
printf("\nUse \".open FILENAME\" to reopen on a "
|
||||||
|
"persistent database.\n");
|
||||||
|
}
|
||||||
zHome = find_home_dir();
|
zHome = find_home_dir();
|
||||||
if( zHome ){
|
if( zHome ){
|
||||||
nHistory = strlen30(zHome) + 20;
|
nHistory = strlen30(zHome) + 20;
|
||||||
|
@@ -105,7 +105,7 @@ do_test shell1-1.7.1 {
|
|||||||
set rc [lindex $res 0]
|
set rc [lindex $res 0]
|
||||||
list $rc \
|
list $rc \
|
||||||
[regexp {SQLite version} $res] \
|
[regexp {SQLite version} $res] \
|
||||||
[regexp {Enter SQL statements} $res]
|
[regexp {Enter ".help" for usage hints} $res]
|
||||||
} {0 1 1}
|
} {0 1 1}
|
||||||
|
|
||||||
# -batch force batch I/O
|
# -batch force batch I/O
|
||||||
|
Reference in New Issue
Block a user