mirror of
https://github.com/mdbtools/mdbtools.git
synced 2026-03-10 00:20:54 +08:00
Added support for sqlite
This commit is contained in:
@@ -150,6 +150,28 @@ static MdbBackendType mdb_mysql_types[] = {
|
|||||||
};
|
};
|
||||||
static MdbBackendType mdb_mysql_shortdate_type =
|
static MdbBackendType mdb_mysql_shortdate_type =
|
||||||
MdbBackendType_STRUCT_ELEMENT("date",0,0,0);
|
MdbBackendType_STRUCT_ELEMENT("date",0,0,0);
|
||||||
|
|
||||||
|
/* sqlite data types */
|
||||||
|
static MdbBackendType mdb_sqlite_types[] = {
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("BLOB", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("INTEGER", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("INTEGER", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("INTEGER", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("INTEGER", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("REAL", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("REAL", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("REAL", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("DateTime", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("BLOB", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("varchar", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("BLOB", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("TEXT", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("BLOB", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("BLOB", 0,0,1),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("INTEGER", 0,0,0),
|
||||||
|
MdbBackendType_STRUCT_ELEMENT("INTEGER", 0,0,0),
|
||||||
|
};
|
||||||
|
|
||||||
#ifndef JAVA
|
#ifndef JAVA
|
||||||
static gboolean mdb_drop_backend(gpointer key, gpointer value, gpointer data);
|
static gboolean mdb_drop_backend(gpointer key, gpointer value, gpointer data);
|
||||||
|
|
||||||
@@ -367,6 +389,16 @@ void __attribute__ ((constructor)) _mdb_init_backends()
|
|||||||
"COMMENT ON COLUMN %s.%s IS %s;\n",
|
"COMMENT ON COLUMN %s.%s IS %s;\n",
|
||||||
"COMMENT ON TABLE %s IS %s;\n",
|
"COMMENT ON TABLE %s IS %s;\n",
|
||||||
quote_schema_name_rquotes_merge);
|
quote_schema_name_rquotes_merge);
|
||||||
|
mdb_register_backend("sqlite",
|
||||||
|
MDB_SHEXP_DROPTABLE|MDB_SHEXP_RELATIONS|MDB_SHEXP_DEFVALUES,
|
||||||
|
mdb_sqlite_types, NULL, NULL,
|
||||||
|
"date('now')", "date('now')",
|
||||||
|
"-- That file uses encoding %s\n",
|
||||||
|
"DROP TABLE IF EXISTS %s;\n",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
quote_schema_name_rquotes_merge);
|
||||||
}
|
}
|
||||||
void mdb_register_backend(char *backend_name, guint32 capabilities, MdbBackendType *backend_type, MdbBackendType *type_shortdate, MdbBackendType *type_autonum, const char *short_now, const char *long_now, const char *charset_statement, const char *drop_statement, const char *constaint_not_empty_statement, const char *column_comment_statement, const char *table_comment_statement, gchar* (*quote_schema_name)(const gchar*, const gchar*))
|
void mdb_register_backend(char *backend_name, guint32 capabilities, MdbBackendType *backend_type, MdbBackendType *type_shortdate, MdbBackendType *type_autonum, const char *short_now, const char *long_now, const char *charset_statement, const char *drop_statement, const char *constaint_not_empty_statement, const char *column_comment_statement, const char *table_comment_statement, gchar* (*quote_schema_name)(const gchar*, const gchar*))
|
||||||
{
|
{
|
||||||
@@ -539,6 +571,8 @@ mdb_get_relationships(MdbHandle *mdb, const gchar *dbnamespace, const char* tabl
|
|||||||
backend = 1;
|
backend = 1;
|
||||||
} else if (!strcmp(mdb->backend_name, "postgres")) {
|
} else if (!strcmp(mdb->backend_name, "postgres")) {
|
||||||
backend = 2;
|
backend = 2;
|
||||||
|
} else if (!strcmp(mdb->backend_name, "sqlite")) {
|
||||||
|
backend = 3;
|
||||||
} else {
|
} else {
|
||||||
if (is_init == 0) { /* the first time through */
|
if (is_init == 0) { /* the first time through */
|
||||||
is_init = 1;
|
is_init = 1;
|
||||||
@@ -613,6 +647,7 @@ mdb_get_relationships(MdbHandle *mdb, const gchar *dbnamespace, const char* tabl
|
|||||||
switch (backend) {
|
switch (backend) {
|
||||||
case 1: /* oracle */
|
case 1: /* oracle */
|
||||||
case 2: /* postgres */
|
case 2: /* postgres */
|
||||||
|
case 3: /* sqlite */
|
||||||
text = g_strconcat(
|
text = g_strconcat(
|
||||||
"ALTER TABLE ", quoted_table_1,
|
"ALTER TABLE ", quoted_table_1,
|
||||||
" ADD CONSTRAINT ", quoted_constraint_name,
|
" ADD CONSTRAINT ", quoted_constraint_name,
|
||||||
|
|||||||
Reference in New Issue
Block a user