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 *shortdate_fmt;
const char *charset_statement;
const char *create_table_statement;
const char *drop_statement;
const char *constaint_not_empty_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 char *short_now, const char *long_now,
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 *table_comment_statement, const char *per_table_comment_statement,
gchar* (*quote_schema_name)(const gchar*, const gchar*));

View File

@@ -303,6 +303,7 @@ void mdb_init_backends(MdbHandle *mdb)
NULL,
NULL,
"-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE %s;\n",
NULL,
NULL,
@@ -317,6 +318,7 @@ void mdb_init_backends(MdbHandle *mdb)
NULL,
NULL,
"-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE %s;\n",
"ALTER TABLE %s ADD CHECK (%s <>'');\n",
"COMMENT ON COLUMN %s.%s IS %s;\n",
@@ -331,6 +333,7 @@ void mdb_init_backends(MdbHandle *mdb)
NULL,
NULL,
"-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE %s;\n",
NULL,
"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",
"SET client_encoding = '%s';\n",
"CREATE TABLE IF NOT EXISTS %s\n",
"DROP TABLE IF EXISTS %s;\n",
"ALTER TABLE %s ADD CHECK (%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",
"-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE IF EXISTS %s;\n",
"ALTER TABLE %s ADD CHECK (%s <>'');\n",
NULL,
@@ -373,6 +378,7 @@ void mdb_init_backends(MdbHandle *mdb)
"%Y-%m-%d %H:%M:%S",
"%Y-%m-%d",
"-- That file uses encoding %s\n",
"CREATE TABLE %s\n",
"DROP TABLE IF EXISTS %s;\n",
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 char *short_now, const char *long_now,
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 *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->shortdate_fmt = shortdate_fmt;
backend->charset_statement = charset_statement;
backend->create_table_statement = create_table_statement;
backend->drop_statement = drop_statement;
backend->constaint_not_empty_statement = constaint_not_empty_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);
/* 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");
table = mdb_read_table (entry);