Merge pull request #321 from doraemoncito/custom-create-table-statements-standalone

Introduced customised "create table" DDL statements per database type.
This commit is contained in:
Evan Miller
2021-07-31 08:49:13 -04:00
committed by GitHub
2 changed files with 14 additions and 3 deletions

View File

@@ -227,6 +227,7 @@ typedef struct {
const char *date_fmt; const char *date_fmt;
const char *shortdate_fmt; const char *shortdate_fmt;
const char *charset_statement; const char *charset_statement;
const char *create_table_statement;
const char *drop_statement; const char *drop_statement;
const char *constaint_not_empty_statement; const char *constaint_not_empty_statement;
const char *column_comment_statement; const char *column_comment_statement;
@@ -564,7 +565,8 @@ void mdb_register_backend(MdbHandle *mdb, char *backend_name, guint32 capabiliti
const MdbBackendType *type_autonum, const MdbBackendType *type_autonum,
const char *short_now, const char *long_now, const char *short_now, const char *long_now,
const char *date_fmt, const char *shortdate_fmt, const char *date_fmt, const char *shortdate_fmt,
const char *charset_statement, const char *drop_statement, const char *constaint_not_empty_statement, const char *charset_statement, const char *create_table_statement,
const char *drop_statement, const char *constaint_not_empty_statement,
const char *column_comment_statement, const char *per_column_comment_statement, const char *column_comment_statement, const char *per_column_comment_statement,
const char *table_comment_statement, const char *per_table_comment_statement, const char *table_comment_statement, const char *per_table_comment_statement,
gchar* (*quote_schema_name)(const gchar*, const gchar*)); gchar* (*quote_schema_name)(const gchar*, const gchar*));

View File

@@ -303,6 +303,7 @@ void mdb_init_backends(MdbHandle *mdb)
NULL, NULL,
NULL, NULL,
"-- That file uses encoding %s\n", "-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE %s;\n", "DROP TABLE %s;\n",
NULL, NULL,
NULL, NULL,
@@ -317,6 +318,7 @@ void mdb_init_backends(MdbHandle *mdb)
NULL, NULL,
NULL, NULL,
"-- That file uses encoding %s\n", "-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE %s;\n", "DROP TABLE %s;\n",
"ALTER TABLE %s ADD CHECK (%s <>'');\n", "ALTER TABLE %s ADD CHECK (%s <>'');\n",
"COMMENT ON COLUMN %s.%s IS %s;\n", "COMMENT ON COLUMN %s.%s IS %s;\n",
@@ -331,6 +333,7 @@ void mdb_init_backends(MdbHandle *mdb)
NULL, NULL,
NULL, NULL,
"-- That file uses encoding %s\n", "-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE %s;\n", "DROP TABLE %s;\n",
NULL, NULL,
"COMMENT ON COLUMN %s.%s IS %s;\n", "COMMENT ON COLUMN %s.%s IS %s;\n",
@@ -345,6 +348,7 @@ void mdb_init_backends(MdbHandle *mdb)
"%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S",
"%Y-%m-%d", "%Y-%m-%d",
"SET client_encoding = '%s';\n", "SET client_encoding = '%s';\n",
"CREATE TABLE IF NOT EXISTS %s\n",
"DROP TABLE IF EXISTS %s;\n", "DROP TABLE IF EXISTS %s;\n",
"ALTER TABLE %s ADD CHECK (%s <>'');\n", "ALTER TABLE %s ADD CHECK (%s <>'');\n",
"COMMENT ON COLUMN %s.%s IS %s;\n", "COMMENT ON COLUMN %s.%s IS %s;\n",
@@ -359,6 +363,7 @@ void mdb_init_backends(MdbHandle *mdb)
"%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S",
"%Y-%m-%d", "%Y-%m-%d",
"-- That file uses encoding %s\n", "-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE IF EXISTS %s;\n", "DROP TABLE IF EXISTS %s;\n",
"ALTER TABLE %s ADD CHECK (%s <>'');\n", "ALTER TABLE %s ADD CHECK (%s <>'');\n",
NULL, NULL,
@@ -373,6 +378,7 @@ void mdb_init_backends(MdbHandle *mdb)
"%Y-%m-%d %H:%M:%S", "%Y-%m-%d %H:%M:%S",
"%Y-%m-%d", "%Y-%m-%d",
"-- That file uses encoding %s\n", "-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE IF EXISTS %s;\n", "DROP TABLE IF EXISTS %s;\n",
NULL, NULL,
NULL, NULL,
@@ -386,7 +392,9 @@ void mdb_register_backend(MdbHandle *mdb, char *backend_name, guint32 capabiliti
const MdbBackendType *backend_type, const MdbBackendType *type_shortdate, const MdbBackendType *type_autonum, const MdbBackendType *backend_type, const MdbBackendType *type_shortdate, const MdbBackendType *type_autonum,
const char *short_now, const char *long_now, const char *short_now, const char *long_now,
const char *date_fmt, const char *shortdate_fmt, const char *date_fmt, const char *shortdate_fmt,
const char *charset_statement, const char *drop_statement, const char *charset_statement,
const char *create_table_statement,
const char *drop_statement,
const char *constaint_not_empty_statement, const char *constaint_not_empty_statement,
const char *column_comment_statement, const char *column_comment_statement,
const char *per_column_comment_statement, const char *per_column_comment_statement,
@@ -404,6 +412,7 @@ void mdb_register_backend(MdbHandle *mdb, char *backend_name, guint32 capabiliti
backend->date_fmt = date_fmt; backend->date_fmt = date_fmt;
backend->shortdate_fmt = shortdate_fmt; backend->shortdate_fmt = shortdate_fmt;
backend->charset_statement = charset_statement; backend->charset_statement = charset_statement;
backend->create_table_statement = create_table_statement;
backend->drop_statement = drop_statement; backend->drop_statement = drop_statement;
backend->constaint_not_empty_statement = constaint_not_empty_statement; backend->constaint_not_empty_statement = constaint_not_empty_statement;
backend->column_comment_statement = column_comment_statement; backend->column_comment_statement = column_comment_statement;
@@ -792,7 +801,7 @@ generate_table_schema(FILE *outfile, MdbCatalogEntry *entry, char *dbnamespace,
fprintf (outfile, mdb->default_backend->drop_statement, quoted_table_name); fprintf (outfile, mdb->default_backend->drop_statement, quoted_table_name);
/* create the table */ /* create the table */
fprintf (outfile, "CREATE TABLE %s\n", quoted_table_name); fprintf (outfile, mdb->default_backend->create_table_statement, quoted_table_name);
fprintf (outfile, " (\n"); fprintf (outfile, " (\n");
table = mdb_read_table (entry); table = mdb_read_table (entry);