DBZ-6357 Fix parsing of NATIONAL CHAR
This commit is contained in:
parent
78c446b2d5
commit
f5555a894e
@ -128,6 +128,7 @@ protected DataTypeResolver initializeDataTypeResolver() {
|
|||||||
dataTypeResolverBuilder.registerDataTypes(MySqlParser.NationalStringDataTypeContext.class.getCanonicalName(), Arrays.asList(
|
dataTypeResolverBuilder.registerDataTypes(MySqlParser.NationalStringDataTypeContext.class.getCanonicalName(), Arrays.asList(
|
||||||
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NATIONAL, MySqlParser.VARCHAR).setSuffixTokens(MySqlParser.BINARY),
|
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NATIONAL, MySqlParser.VARCHAR).setSuffixTokens(MySqlParser.BINARY),
|
||||||
new DataTypeEntry(Types.NCHAR, MySqlParser.NATIONAL, MySqlParser.CHARACTER).setSuffixTokens(MySqlParser.BINARY),
|
new DataTypeEntry(Types.NCHAR, MySqlParser.NATIONAL, MySqlParser.CHARACTER).setSuffixTokens(MySqlParser.BINARY),
|
||||||
|
new DataTypeEntry(Types.NCHAR, MySqlParser.NATIONAL, MySqlParser.CHAR).setSuffixTokens(MySqlParser.BINARY),
|
||||||
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NCHAR, MySqlParser.VARCHAR).setSuffixTokens(MySqlParser.BINARY)));
|
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NCHAR, MySqlParser.VARCHAR).setSuffixTokens(MySqlParser.BINARY)));
|
||||||
dataTypeResolverBuilder.registerDataTypes(MySqlParser.NationalVaryingStringDataTypeContext.class.getCanonicalName(), Arrays.asList(
|
dataTypeResolverBuilder.registerDataTypes(MySqlParser.NationalVaryingStringDataTypeContext.class.getCanonicalName(), Arrays.asList(
|
||||||
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NATIONAL, MySqlParser.CHAR, MySqlParser.VARYING),
|
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NATIONAL, MySqlParser.CHAR, MySqlParser.VARYING),
|
||||||
|
@ -3379,6 +3379,19 @@ public void shouldSupportMariaDbCurrentTimestamp() {
|
|||||||
assertThat(getColumnSchema(table, "bi").defaultValue()).isNull();
|
assertThat(getColumnSchema(table, "bi").defaultValue()).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@FixFor("DBZ-6357")
|
||||||
|
public void shouldSupportNationalChar() {
|
||||||
|
String ddl = "CREATE TABLE ttt(c NATIONAL CHAR)";
|
||||||
|
parser.parse(ddl, tables);
|
||||||
|
|
||||||
|
Table table = tables.forTable(new TableId(null, null, "ttt"));
|
||||||
|
assertThat(table).isNotNull();
|
||||||
|
assertThat(table.retrieveColumnNames()).containsExactly("c");
|
||||||
|
assertThat(table.primaryKeyColumnNames()).isEmpty();
|
||||||
|
assertColumn(table, "c", "NATIONAL CHAR", Types.NCHAR, 1, "utf8", true);
|
||||||
|
}
|
||||||
|
|
||||||
private String toIsoString(String timestamp) {
|
private String toIsoString(String timestamp) {
|
||||||
return ZonedTimestamp.toIsoString(Timestamp.valueOf(timestamp).toInstant().atZone(ZoneId.systemDefault()), null, null);
|
return ZonedTimestamp.toIsoString(Timestamp.valueOf(timestamp).toInstant().atZone(ZoneId.systemDefault()), null, null);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user