-C Add\sthe\s".repair"\scommand\sto\sthe\scommand-line\sshell.
-D 2014-02-06T00:49:12.328
+C Rename\sthe\s'.repair'\sshell\scommand\sto\s'.clone'.
+D 2014-02-06T01:15:29.192
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
F src/select.c b78f5e62c283aca2e38657938bc1fec1051df728
-F src/shell.c c128bf92b3ed268d8ec6f0df275a5d737edf2968
+F src/shell.c da0a97d984a7f59441d052925f3b83189c532bf7
F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P 4a4dd371a72b7d475185923bebb4cd9bd83e1bd9
-R 235c07c6649435d22d14c7aa202be2ed
-U drh
-Z b9d162ba79528a4d7df551b82e7b6e75
+P d1dfadea87ecf18eeb6d2f21769deaa97473ca0e
+R f560d9f23cc9db65e30e7982b2e54ef7
+U mistachkin
+Z 4d9ab8dffd5cac0331ab06f34b9616ca
".prompt MAIN CONTINUE Replace the standard prompts\n"
".quit Exit this program\n"
".read FILENAME Execute SQL in FILENAME\n"
- ".repair NEWDB Recover data into NEWDB from a corrupt database\n"
+ ".clone NEWDB Clone data into NEWDB from the existing database\n"
".restore ?DB? FILE Restore content of DB (default \"main\") from FILE\n"
".schema ?TABLE? Show the CREATE statements\n"
" If TABLE specified, only show tables matching\n"
/*
** Try to transfer data for table zTable
*/
-static void tryToRepairData(
+static void tryToCloneData(
struct callback_data *p,
sqlite3 *newDb,
const char *zTable
** Try to transfer all rows of the schema that match zWhere. For
** each row, invoke xForEach() on the object defined by that row.
*/
-static void tryToRepairSchema(
+static void tryToCloneSchema(
struct callback_data *p,
sqlite3 *newDb,
const char *zWhere,
** as possible out of the main database (which might be corrupt) and write it
** into zNewDb.
*/
-static void tryToRepair(struct callback_data *p, const char *zNewDb){
+static void tryToClone(struct callback_data *p, const char *zNewDb){
int rc;
sqlite3 *newDb = 0;
if( access(zNewDb,0)==0 ){
sqlite3_errmsg(newDb));
}else{
sqlite3_exec(newDb, "BEGIN EXCLUSIVE;", 0, 0, 0);
- tryToRepairSchema(p, newDb, "type='table'", tryToRepairData);
- tryToRepairSchema(p, newDb, "type!='table'", 0);
+ tryToCloneSchema(p, newDb, "type='table'", tryToCloneData);
+ tryToCloneSchema(p, newDb, "type!='table'", 0);
sqlite3_exec(newDb, "COMMIT;", 0, 0, 0);
}
sqlite3_close(newDb);
test_breakpoint();
}else
+ if( c=='c' && strncmp(azArg[0], "clone", n)==0 && nArg>1 && nArg<3 ){
+ tryToClone(p, azArg[1]);
+ }else
+
if( c=='d' && n>1 && strncmp(azArg[0], "databases", n)==0 && nArg==1 ){
struct callback_data data;
char *zErrMsg = 0;
}
}else
- if( c=='r' && strncmp(azArg[0], "repair", n)==0 && nArg>1 && nArg<3 ){
- tryToRepair(p, azArg[1]);
- }else
-
if( c=='r' && n>=3 && strncmp(azArg[0], "restore", n)==0 && nArg>1 && nArg<4){
const char *zSrcFile;
const char *zDb;