[jOOQ/jOOQ#17019] Wrong cast being generated for H2's MySQL style enum types, when a EnumConverter is present
This commit is contained in:
parent
d3b72dff19
commit
ccbe04b1b5
@ -243,18 +243,12 @@ public class CUBRIDDatabase extends AbstractDatabase {
|
||||
String columnType = record.get("Type", String.class);
|
||||
String name = table + "_" + column;
|
||||
|
||||
ColumnDefinition columnDefinition = tableDefinition.getColumn(column);
|
||||
|
||||
// [#1137] Avoid generating enum classes for enum types that
|
||||
// are explicitly forced to another type
|
||||
if (getConfiguredForcedType(columnDefinition) == null) {
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(getSchemata().get(0), name, "", true);
|
||||
for (String string : columnType.replaceAll("ENUM\\(|\\)", "").split(",")) {
|
||||
definition.addLiteral(string.trim().replaceAll("'", ""));
|
||||
}
|
||||
|
||||
result.add(definition);
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(getSchemata().get(0), name, "", true);
|
||||
for (String string : columnType.replaceAll("ENUM\\(|\\)", "").split(",")) {
|
||||
definition.addLiteral(string.trim().replaceAll("'", ""));
|
||||
}
|
||||
|
||||
result.add(definition);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -969,18 +969,13 @@ public class H2Database extends AbstractDatabase implements ResultQueryDatabase
|
||||
ColumnDefinition columnDefinition = tableDefinition.getColumn(r.value3());
|
||||
|
||||
if (columnDefinition != null) {
|
||||
String name = r.value2() + "_" + r.value3();
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(schema, name, "", true);
|
||||
|
||||
// [#1137] Avoid generating enum classes for enum types that
|
||||
// are explicitly forced to another type
|
||||
if (getConfiguredForcedType(columnDefinition, columnDefinition.getType()) == null) {
|
||||
String name = r.value2() + "_" + r.value3();
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(schema, name, "", true);
|
||||
for (String string : r.value4())
|
||||
definition.addLiteral(string);
|
||||
|
||||
for (String string : r.value4())
|
||||
definition.addLiteral(string);
|
||||
|
||||
result.add(definition);
|
||||
}
|
||||
result.add(definition);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -1019,25 +1014,20 @@ public class H2Database extends AbstractDatabase implements ResultQueryDatabase
|
||||
ColumnDefinition columnDefinition = tableDefinition.getColumn(r.column);
|
||||
|
||||
if (columnDefinition != null) {
|
||||
String name = r.table + "_" + r.column;
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(schema, name, "", true);
|
||||
|
||||
// [#1137] Avoid generating enum classes for enum types that
|
||||
// are explicitly forced to another type
|
||||
if (getConfiguredForcedType(columnDefinition, columnDefinition.getType()) == null) {
|
||||
String name = r.table + "_" + r.column;
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(schema, name, "", true);
|
||||
CSVReader reader = new CSVReader(
|
||||
new StringReader(r.type.replaceAll("(^enum\\()|(\\)[^)]*$)", ""))
|
||||
,',' // Separator
|
||||
,'\'' // Quote character
|
||||
,true // Strict quotes
|
||||
);
|
||||
|
||||
CSVReader reader = new CSVReader(
|
||||
new StringReader(r.type.replaceAll("(^enum\\()|(\\)[^)]*$)", ""))
|
||||
,',' // Separator
|
||||
,'\'' // Quote character
|
||||
,true // Strict quotes
|
||||
);
|
||||
for (String string : reader.next())
|
||||
definition.addLiteral(string);
|
||||
|
||||
for (String string : reader.next())
|
||||
definition.addLiteral(string);
|
||||
|
||||
result.add(definition);
|
||||
}
|
||||
result.add(definition);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -634,24 +634,19 @@ public class MySQLDatabase extends AbstractDatabase implements ResultQueryDataba
|
||||
ColumnDefinition columnDefinition = tableDefinition.getColumn(r.column);
|
||||
|
||||
if (columnDefinition != null) {
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(schema, name, r.comment, true);
|
||||
|
||||
// [#1137] Avoid generating enum classes for enum types that
|
||||
// are explicitly forced to another type
|
||||
if (getConfiguredForcedType(columnDefinition, columnDefinition.getType()) == null) {
|
||||
DefaultEnumDefinition definition = new DefaultEnumDefinition(schema, name, r.comment, true);
|
||||
CSVReader reader = new CSVReader(
|
||||
new StringReader(r.type.replaceAll("(^enum\\()|(\\)$)", ""))
|
||||
,',' // Separator
|
||||
,'\'' // Quote character
|
||||
,true // Strict quotes
|
||||
);
|
||||
|
||||
CSVReader reader = new CSVReader(
|
||||
new StringReader(r.type.replaceAll("(^enum\\()|(\\)$)", ""))
|
||||
,',' // Separator
|
||||
,'\'' // Quote character
|
||||
,true // Strict quotes
|
||||
);
|
||||
for (String string : reader.next())
|
||||
definition.addLiteral(string);
|
||||
|
||||
for (String string : reader.next())
|
||||
definition.addLiteral(string);
|
||||
|
||||
result.add(definition);
|
||||
}
|
||||
result.add(definition);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user