aboutsummaryrefslogtreecommitdiff
path: root/tool/sqldiff.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2015-11-13 13:15:42 +0000
committerdrh <drh@noemail.net>2015-11-13 13:15:42 +0000
commit05d4ebf6c3652eda096ceddd755db37d89ebca41 (patch)
tree4690cb06c9057224a3ebb72a4029c2f3449260d4 /tool/sqldiff.c
parentd63fbb71033ca228c2dd8c1dec113cd2289e0d37 (diff)
downloadsqlite-05d4ebf6c3652eda096ceddd755db37d89ebca41.tar.gz
sqlite-05d4ebf6c3652eda096ceddd755db37d89ebca41.zip
Add the --transaction option to the sqldiff tool.
FossilOrigin-Name: 8882d1f3ef0fc53d7c19918c3af43c5bdd79e88f
Diffstat (limited to 'tool/sqldiff.c')
-rw-r--r--tool/sqldiff.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tool/sqldiff.c b/tool/sqldiff.c
index 90a53fe16..0f406d8a0 100644
--- a/tool/sqldiff.c
+++ b/tool/sqldiff.c
@@ -1741,6 +1741,7 @@ static void showHelp(void){
" --schema Show only differences in the schema\n"
" --summary Show only a summary of the differences\n"
" --table TAB Show only differences in table TAB\n"
+" --transaction Show SQL output inside a transaction\n"
);
}
@@ -1757,6 +1758,8 @@ int main(int argc, char **argv){
void (*xDiff)(const char*,FILE*) = diff_one_table;
int nExt = 0;
char **azExt = 0;
+ int useTransaction = 0;
+ int neverUseTransaction = 0;
g.zArgv0 = argv[0];
sqlite3_config(SQLITE_CONFIG_SINGLETHREAD);
@@ -1770,6 +1773,7 @@ int main(int argc, char **argv){
out = fopen(argv[++i], "wb");
if( out==0 ) cmdlineError("cannot open: %s", argv[i]);
xDiff = changeset_one_table;
+ neverUseTransaction = 1;
}else
if( strcmp(z,"debug")==0 ){
if( i==argc-1 ) cmdlineError("missing argument to %s", argv[i]);
@@ -1803,6 +1807,9 @@ int main(int argc, char **argv){
if( i==argc-1 ) cmdlineError("missing argument to %s", argv[i]);
zTab = argv[++i];
}else
+ if( strcmp(z,"transaction")==0 ){
+ useTransaction = 1;
+ }else
{
cmdlineError("unknown option: %s", argv[i]);
}
@@ -1845,6 +1852,8 @@ int main(int argc, char **argv){
cmdlineError("\"%s\" does not appear to be a valid SQLite database", zDb2);
}
+ if( neverUseTransaction ) useTransaction = 0;
+ if( useTransaction ) printf("BEGIN TRANSACTION;\n");
if( zTab ){
xDiff(zTab, out);
}else{
@@ -1862,6 +1871,7 @@ int main(int argc, char **argv){
}
sqlite3_finalize(pStmt);
}
+ if( useTransaction ) printf("COMMIT;\n");
/* TBD: Handle trigger differences */
/* TBD: Handle view differences */