mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-04-05 20:31:00 +08:00
mdb-schema: Exit with code 1 if the requested table is not found
This commit is contained in:
parent
7893a948ce
commit
20842c642a
@ -559,7 +559,7 @@ void mdb_register_backend(MdbHandle *mdb, char *backend_name, guint32 capabiliti
|
||||
const char *table_comment_statement, const char *per_table_comment_statement,
|
||||
gchar* (*quote_schema_name)(const gchar*, const gchar*));
|
||||
int mdb_set_default_backend(MdbHandle *mdb, const char *backend_name);
|
||||
void mdb_print_schema(MdbHandle *mdb, FILE *outfile, char *tabname, char *dbnamespace, guint32 export_options);
|
||||
int mdb_print_schema(MdbHandle *mdb, FILE *outfile, char *tabname, char *dbnamespace, guint32 export_options);
|
||||
void mdb_print_col(FILE *outfile, gchar *col_val, int quote_text, int col_type, int bin_len, char *quote_char, char *escape_char, int flags);
|
||||
|
||||
/* sargs.c */
|
||||
|
@ -947,13 +947,14 @@ generate_table_schema(FILE *outfile, MdbCatalogEntry *entry, char *dbnamespace,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
int
|
||||
mdb_print_schema(MdbHandle *mdb, FILE *outfile, char *tabname, char *dbnamespace, guint32 export_options)
|
||||
{
|
||||
unsigned int i;
|
||||
char *the_relation;
|
||||
MdbCatalogEntry *entry;
|
||||
const char *charset;
|
||||
int success = (tabname == NULL);
|
||||
|
||||
/* clear unsupported options */
|
||||
export_options &= mdb->default_backend->capabilities;
|
||||
@ -981,6 +982,7 @@ mdb_print_schema(MdbHandle *mdb, FILE *outfile, char *tabname, char *dbnamespace
|
||||
if ((tabname && !strcmp(entry->object_name, tabname))
|
||||
|| (!tabname && mdb_is_user_table(entry))) {
|
||||
generate_table_schema(outfile, entry, dbnamespace, export_options);
|
||||
success = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1000,6 +1002,7 @@ mdb_print_schema(MdbHandle *mdb, FILE *outfile, char *tabname, char *dbnamespace
|
||||
} while ((the_relation=mdb_get_relationships(mdb, dbnamespace, tabname)) != NULL);
|
||||
}
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
#define MDB_BINEXPORT_MASK 0x0F
|
||||
|
@ -33,6 +33,7 @@ main (int argc, char **argv)
|
||||
int opt_comments = MDB_SHEXP_DEFAULT & MDB_SHEXP_COMMENTS;
|
||||
int opt_indexes = MDB_SHEXP_DEFAULT & MDB_SHEXP_INDEXES;
|
||||
int opt_relations = MDB_SHEXP_DEFAULT & MDB_SHEXP_RELATIONS;
|
||||
int success = 0;
|
||||
|
||||
GOptionEntry entries[] = {
|
||||
{ "table", 'T', 0, G_OPTION_ARG_STRING, &tabname, "Only create schema for named table", "table"},
|
||||
@ -107,13 +108,17 @@ main (int argc, char **argv)
|
||||
export_options |= MDB_SHEXP_INDEXES;
|
||||
if (opt_relations)
|
||||
export_options |= MDB_SHEXP_RELATIONS;
|
||||
mdb_print_schema(mdb, stdout, tabname, namespace, export_options);
|
||||
|
||||
success = mdb_print_schema(mdb, stdout, tabname, namespace, export_options);
|
||||
if (tabname && !success) {
|
||||
fprintf(stderr, "Error: No table named \"%s\" found in the database\n", tabname);
|
||||
}
|
||||
|
||||
mdb_close (mdb);
|
||||
|
||||
g_option_context_free(opt_context);
|
||||
g_free(namespace);
|
||||
g_free(tabname);
|
||||
return 0;
|
||||
return !success;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user