DBZ-2641 BLOB type has dimension
This commit is contained in:
parent
dd6e10b92b
commit
2270d23adb
@ -175,11 +175,11 @@ protected DataTypeResolver initializeDataTypeResolver() {
|
||||
new DataTypeEntry(Types.TIMESTAMP, MySqlParser.DATETIME),
|
||||
new DataTypeEntry(Types.BINARY, MySqlParser.BINARY),
|
||||
new DataTypeEntry(Types.VARBINARY, MySqlParser.VARBINARY),
|
||||
new DataTypeEntry(Types.BLOB, MySqlParser.BLOB),
|
||||
new DataTypeEntry(Types.INTEGER, MySqlParser.YEAR)));
|
||||
dataTypeResolverBuilder.registerDataTypes(MySqlParser.SimpleDataTypeContext.class.getCanonicalName(), Arrays.asList(
|
||||
new DataTypeEntry(Types.DATE, MySqlParser.DATE),
|
||||
new DataTypeEntry(Types.BLOB, MySqlParser.TINYBLOB),
|
||||
new DataTypeEntry(Types.BLOB, MySqlParser.BLOB),
|
||||
new DataTypeEntry(Types.BLOB, MySqlParser.MEDIUMBLOB),
|
||||
new DataTypeEntry(Types.BLOB, MySqlParser.LONGBLOB),
|
||||
new DataTypeEntry(Types.BOOLEAN, MySqlParser.BOOL),
|
||||
|
@ -62,6 +62,23 @@ public void beforeEach() {
|
||||
tables = new Tables();
|
||||
}
|
||||
|
||||
@Test
|
||||
@FixFor("DBZ-2641")
|
||||
public void shouldProcessDimensionalBlob() {
|
||||
String ddl = "CREATE TABLE blobtable (id INT PRIMARY KEY, val1 BLOB(16), val2 BLOB);";
|
||||
parser.parse(ddl, tables);
|
||||
assertThat(((MySqlAntlrDdlParser) parser).getParsingExceptionsFromWalker().size()).isEqualTo(0);
|
||||
assertThat(tables.size()).isEqualTo(1);
|
||||
|
||||
Table table = tables.forTable(null, null, "blobtable");
|
||||
assertThat(table.columns()).hasSize(3);
|
||||
assertThat(table.columnWithName("id")).isNotNull();
|
||||
assertThat(table.columnWithName("val1")).isNotNull();
|
||||
assertThat(table.columnWithName("val2")).isNotNull();
|
||||
assertThat(table.columnWithName("val1").length()).isEqualTo(16);
|
||||
assertThat(table.columnWithName("val2").length()).isEqualTo(-1);
|
||||
}
|
||||
|
||||
@Test
|
||||
@FixFor("DBZ-2604")
|
||||
public void shouldUseDatabaseCharacterSet() {
|
||||
|
@ -2088,12 +2088,12 @@ dataType
|
||||
| typeName=(DECIMAL | DEC | FIXED | NUMERIC | FLOAT | FLOAT4 | FLOAT8)
|
||||
lengthTwoOptionalDimension? (SIGNED | UNSIGNED)? ZEROFILL? #dimensionDataType
|
||||
| typeName=(
|
||||
DATE | TINYBLOB | BLOB | MEDIUMBLOB | LONGBLOB
|
||||
DATE | TINYBLOB | MEDIUMBLOB | LONGBLOB
|
||||
| BOOL | BOOLEAN | SERIAL
|
||||
) #simpleDataType
|
||||
| typeName=(
|
||||
BIT | TIME | TIMESTAMP | DATETIME | BINARY
|
||||
| VARBINARY | YEAR
|
||||
| VARBINARY | BLOB | YEAR
|
||||
)
|
||||
lengthOneDimension? #dimensionDataType
|
||||
| typeName=(ENUM | SET)
|
||||
|
@ -31,6 +31,7 @@ create table table_with_index (id int, data varchar(50), UNIQUE INDEX `data_UNIQ
|
||||
create table transactional_table(name varchar(255), class_id int, id int) transactional=1;
|
||||
create table transactional(name varchar(255), class_id int, id int);
|
||||
create table add_test(col1 varchar(255), col2 int, col3 int);
|
||||
create table blob_test(id int, col1 blob(45));
|
||||
#end
|
||||
#begin
|
||||
-- Rename table
|
||||
|
Loading…
Reference in New Issue
Block a user