mirror of
https://github.com/mdbtools/mdbtools.git
synced 2026-03-10 00:20:54 +08:00
patch from Terry Brown <terry_n_brown at yahoo.com> to not sanitize the schema in mdb-schema
This commit is contained in:
@@ -151,8 +151,10 @@ char* sanitize_name(const char* str)
|
|||||||
if (*str) {
|
if (*str) {
|
||||||
*p = isalpha(*str) ? *str : '_';
|
*p = isalpha(*str) ? *str : '_';
|
||||||
p++;
|
p++;
|
||||||
|
if (!isdigit(*str)) /* if it was a digit, keep it */
|
||||||
str++;
|
str++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (*str) {
|
while (*str) {
|
||||||
*p = isalnum(*str) ? *str : '_';
|
*p = isalnum(*str) ? *str : '_';
|
||||||
p++;
|
p++;
|
||||||
@@ -160,6 +162,7 @@ char* sanitize_name(const char* str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-11
@@ -132,19 +132,18 @@ generate_table_schema(MdbCatalogEntry *entry, char *namespace, int sanitize)
|
|||||||
char* quoted_name;
|
char* quoted_name;
|
||||||
char* sql_sequences;
|
char* sql_sequences;
|
||||||
|
|
||||||
if (namespace) {
|
|
||||||
table_name = malloc(strlen(namespace)+strlen(entry->object_name)+1);
|
|
||||||
strcpy(table_name, namespace);
|
|
||||||
strcat(table_name, entry->object_name);
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
table_name = strdup(entry->object_name);
|
|
||||||
}
|
|
||||||
if (sanitize)
|
if (sanitize)
|
||||||
quoted_table_name = sanitize_name(table_name);
|
quoted_table_name = sanitize_name(entry->object_name);
|
||||||
else
|
else
|
||||||
quoted_table_name = mdb->default_backend->quote_name(table_name);
|
quoted_table_name = mdb->default_backend->quote_name(entry->object_name);
|
||||||
free(table_name);
|
|
||||||
|
if (namespace) {
|
||||||
|
table_name = malloc(strlen(namespace)+strlen(quoted_table_name)+1);
|
||||||
|
strcpy(table_name, namespace);
|
||||||
|
strcat(table_name, quoted_table_name);
|
||||||
|
free(quoted_table_name);
|
||||||
|
quoted_table_name = table_name;
|
||||||
|
}
|
||||||
|
|
||||||
/* drop the table if it exists */
|
/* drop the table if it exists */
|
||||||
fprintf (stdout, "DROP TABLE %s;\n", quoted_table_name);
|
fprintf (stdout, "DROP TABLE %s;\n", quoted_table_name);
|
||||||
|
|||||||
Reference in New Issue
Block a user