Merge branch '2.0' into 2.1

This commit is contained in:
Markus Mäkelä 2017-05-26 15:22:43 +03:00
commit b5d1504e6a
2 changed files with 38 additions and 2 deletions

View File

@ -33,7 +33,15 @@ opts = parser.parse_args(sys.argv[1:])
def parse_field(row):
res = dict()
name = row[1].lower().split('(')[0]
parts = row[1].lower().split('(')
name = parts[0]
res["real_type"] = name
if len(parts) > 1:
res["length"] = int(parts[1].split(')')[0])
else:
res["length"] = -1
if name in ("date", "datetime", "time", "timestamp", "year", "tinytext", "text",
"mediumtext", "longtext", "char", "varchar", "enum", "set"):

View File

@ -211,12 +211,40 @@ bool json_extract_field_names(const char* filename, TABLE_CREATE *table)
}
json_t *name = json_object_get(val, "name");
if (name && json_is_string(name))
{
const char *name_str = json_string_value(name);
if (not_generated_field(name_str))
{
table->column_names[columns++] = MXS_STRDUP_A(name_str);
table->column_names[columns] = MXS_STRDUP_A(name_str);
json_t* value;
if ((value = json_object_get(val, "real_type")) && json_is_string(value))
{
table->column_types[columns] = MXS_STRDUP_A(json_string_value(value));
}
else
{
table->column_types[columns] = MXS_STRDUP_A("unknown");
MXS_WARNING("No \"real_type\" value defined. "
"Treating as unknown type field.");
}
if ((value = json_object_get(val, "length")) && json_is_integer(value))
{
table->column_lengths[columns] = json_integer_value(value);
}
else
{
table->column_lengths[columns] = -1;
MXS_WARNING("No \"length\" value defined. "
"Treating as default length field.");
}
columns++;
}
}
else