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(
|
||||
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.CHAR).setSuffixTokens(MySqlParser.BINARY),
|
||||
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NCHAR, MySqlParser.VARCHAR).setSuffixTokens(MySqlParser.BINARY)));
|
||||
dataTypeResolverBuilder.registerDataTypes(MySqlParser.NationalVaryingStringDataTypeContext.class.getCanonicalName(), Arrays.asList(
|
||||
new DataTypeEntry(Types.NVARCHAR, MySqlParser.NATIONAL, MySqlParser.CHAR, MySqlParser.VARYING),
|
||||
|
@ -3379,6 +3379,19 @@ public void shouldSupportMariaDbCurrentTimestamp() {
|
||||
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) {
|
||||
return ZonedTimestamp.toIsoString(Timestamp.valueOf(timestamp).toInstant().atZone(ZoneId.systemDefault()), null, null);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user