patch from Terry Brown <terry_n_brown at yahoo.com> to add -N option to mdb-export

This commit is contained in:
Brian Bruns
2010-08-03 20:09:37 -04:00
parent 4f73e1b295
commit 5ac44b69d9
+7 -2
View File
@@ -72,9 +72,10 @@ main(int argc, char **argv)
char quote_text = 1; char quote_text = 1;
char *insert_dialect = NULL; char *insert_dialect = NULL;
char sanitize = 0; char sanitize = 0;
char *namespace = "";
int opt; int opt;
while ((opt=getopt(argc, argv, "HQq:X:d:D:R:I:S"))!=-1) { while ((opt=getopt(argc, argv, "HQq:X:d:D:R:I:N:S"))!=-1) {
switch (opt) { switch (opt) {
case 'H': case 'H':
header_row = 0; header_row = 0;
@@ -104,6 +105,9 @@ main(int argc, char **argv)
case 'X': case 'X':
escape_char = (char *) g_strdup(optarg); escape_char = (char *) g_strdup(optarg);
break; break;
case 'N':
namespace = (char *) g_strdup(optarg);
break;
default: default:
break; break;
} }
@@ -134,6 +138,7 @@ main(int argc, char **argv)
fprintf(stderr," -S Sanitize names (replace spaces etc. with underscore)\n"); fprintf(stderr," -S Sanitize names (replace spaces etc. with underscore)\n");
fprintf(stderr," -q <char> Use <char> to wrap text-like fields. Default is \".\n"); fprintf(stderr," -q <char> Use <char> to wrap text-like fields. Default is \".\n");
fprintf(stderr," -X <char> Use <char> to escape quoted characters within a field. Default is doubling.\n"); fprintf(stderr," -X <char> Use <char> to escape quoted characters within a field. Default is doubling.\n");
fprintf(stderr," -N <namespace> Prefix identifiers with namespace\n");
g_free (delimiter); g_free (delimiter);
g_free (row_delimiter); g_free (row_delimiter);
g_free (quote_char); g_free (quote_char);
@@ -198,7 +203,7 @@ main(int argc, char **argv)
quoted_name = sanitize_name(argv[optind + 1]); quoted_name = sanitize_name(argv[optind + 1]);
else else
quoted_name = mdb->default_backend->quote_name(argv[optind + 1]); quoted_name = mdb->default_backend->quote_name(argv[optind + 1]);
fprintf(stdout, "INSERT INTO %s (", quoted_name); fprintf(stdout, "INSERT INTO %s%s (", namespace, quoted_name);
free(quoted_name); free(quoted_name);
for (j=0;j<table->num_cols;j++) { for (j=0;j<table->num_cols;j++) {
if (j>0) fprintf(stdout, ", "); if (j>0) fprintf(stdout, ", ");