]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the --lib option to the sqldiff.exe command-line utility.
authordrh <drh@noemail.net>
Mon, 4 May 2015 13:25:56 +0000 (13:25 +0000)
committerdrh <drh@noemail.net>
Mon, 4 May 2015 13:25:56 +0000 (13:25 +0000)
FossilOrigin-Name: a117e8f6bd60ed7f6e4cdcd2ee8d624fe040f7ab

manifest
manifest.uuid
tool/sqldiff.c

index 5a6a6d5db1eac0b1be31b986f50d1470a4f94d5a..d12240778cce3aa6023fc9de57d5ff2ebaf0abb2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\s'y'\sflag\sto\sthe\sfts3/4\smatchinfo()\sfunction.
-D 2015-05-04T12:29:50.452
+C Add\sthe\s--lib\soption\sto\sthe\ssqldiff.exe\scommand-line\sutility.
+D 2015-05-04T13:25:56.940
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e628c50e237251fc7e768bef14ee7e822ad69e69
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -1245,7 +1245,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c
-F tool/sqldiff.c 8999f959c2305a908b50e44bc636bdbfe04aa06c
+F tool/sqldiff.c 81fff1d5fb5fdd2ed34256089a9fea7829913341
 F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
 F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
 F tool/symbols.sh fec58532668296d7c7dc48be9c87f75ccdb5814f
@@ -1256,7 +1256,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 34a722a2f3331c35211526c9ec055d4d9175c965 92941609af74044b3078e020324a37b04a0638b0
-R 71ef49d23aad2e8535dc13355beddfea
-U dan
-Z bf853cedbb560aa2e1e2dcc7ad4c0efb
+P aef1e8f47123e2e865432a0abf194dea4f23447a
+R 927b0afcec8578dc0050734afa2fcb42
+U drh
+Z 43417b5f51de3c57f1ade1ee8f794bde
index db0c756ed7c36b09c0ea97964c9ffe4a22c6c86f..7f69cd286dad1f4c9511d7284f35cfbb795da60f 100644 (file)
@@ -1 +1 @@
-aef1e8f47123e2e865432a0abf194dea4f23447a
\ No newline at end of file
+a117e8f6bd60ed7f6e4cdcd2ee8d624fe040f7ab
\ No newline at end of file
index ac64ecf90d3d398d030b5e12ca4ab1f15db9a5db..bfe72c4f5004adae21ed9d0eaf4f12e4c57067e7 100644 (file)
@@ -1116,6 +1116,7 @@ static void showHelp(void){
 "Output SQL text that would transform DB1 into DB2.\n"
 "Options:\n"
 "  --changeset FILE      Write a CHANGESET into FILE\n"
+"  -L|--lib LIBRARY      Load an SQLite extension library\n"
 "  --primarykey          Use schema-defined PRIMARY KEYs\n"
 "  --schema              Show only differences in the schema\n"
 "  --summary             Show only a summary of the differences\n"
@@ -1134,6 +1135,8 @@ int main(int argc, char **argv){
   char *zTab = 0;
   FILE *out = stdout;
   void (*xDiff)(const char*,FILE*) = diff_one_table;
+  int nExt = 0;
+  const char **azExt = 0;
 
   g.zArgv0 = argv[0];
   for(i=1; i<argc; i++){
@@ -1142,17 +1145,25 @@ int main(int argc, char **argv){
       z++;
       if( z[0]=='-' ) z++;
       if( strcmp(z,"changeset")==0 ){
+        if( i==argc-1 ) cmdlineError("missing argument to %s", argv[i]);
         out = fopen(argv[++i], "wb");
         if( out==0 ) cmdlineError("cannot open: %s", argv[i]);
         xDiff = changeset_one_table;
       }else
       if( strcmp(z,"debug")==0 ){
+        if( i==argc-1 ) cmdlineError("missing argument to %s", argv[i]);
         g.fDebug = strtol(argv[++i], 0, 0);
       }else
       if( strcmp(z,"help")==0 ){
         showHelp();
         return 0;
       }else
+      if( strcmp(z,"lib")==0 || strcmp(z,"L")==0 ){
+        if( i==argc-1 ) cmdlineError("missing argument to %s", argv[i]);
+        azExt = realloc(azExt, sizeof(azExt[0])*(nExt+1));
+        if( azExt==0 ) cmdlineError("out of memory");
+        azExt[nExt++] = argv[++i];
+      }else
       if( strcmp(z,"primarykey")==0 ){
         g.bSchemaPK = 1;
       }else
@@ -1163,6 +1174,7 @@ int main(int argc, char **argv){
         xDiff = summarize_one_table;
       }else
       if( strcmp(z,"table")==0 ){
+        if( i==argc-1 ) cmdlineError("missing argument to %s", argv[i]);
         zTab = argv[++i];
       }else
       {
@@ -1187,6 +1199,14 @@ int main(int argc, char **argv){
   if( rc || zErrMsg ){
     cmdlineError("\"%s\" does not appear to be a valid SQLite database", zDb1);
   }
+  sqlite3_enable_load_extension(g.db, 1);
+  for(i=0; i<nExt; i++){
+    rc = sqlite3_load_extension(g.db, azExt[i], 0, &zErrMsg);
+    if( rc || zErrMsg ){
+      cmdlineError("error loading %s: %s", azExt[i], zErrMsg);
+    }
+  }
+  free(azExt);
   zSql = sqlite3_mprintf("ATTACH %Q as aux;", zDb2);
   rc = sqlite3_exec(g.db, zSql, 0, 0, &zErrMsg);
   if( rc || zErrMsg ){