Skip to content

Commit

Permalink
0000765: Fixed some MySQL columns being incorrectly flagged as generated
Browse files Browse the repository at this point in the history
  • Loading branch information
evan-miller-jumpmind committed Sep 26, 2022
1 parent 8ca6d6c commit 7b50983
Showing 1 changed file with 8 additions and 4 deletions.
Expand Up @@ -145,17 +145,21 @@ protected Integer mapUnknownJdbcTypeForColumn(Map<String, Object> values) {
protected Column readColumn(DatabaseMetaDataWrapper metaData, Map<String, Object> values)
throws SQLException {
Column column = super.readColumn(metaData, values);
if (column.isGenerated() && (column.getDefaultValue() == null || column.getDefaultValue().equals("NULL"))) {
if (column.isGenerated()) {
JdbcSqlTemplate sqlTemplate = (JdbcSqlTemplate) platform.getSqlTemplateDirty();
String sql = "SELECT generation_expression\n"
String sql = "SELECT extra, generation_expression\n"
+ "FROM information_schema.columns\n"
+ "WHERE table_name = ?\n"
+ "AND column_name = ?";
List<String> l = new ArrayList<String>();
l.add((String) values.get("TABLE_NAME"));
l.add(column.getName());
String definition = sqlTemplate.queryForString(sql, l.toArray());
column.setDefaultValue(definition);
Row result = sqlTemplate.queryForRow(sql, l.toArray());
if ("DEFAULT_GENERATED".equals(result.getString("extra"))) {
column.setGenerated(false);
} else if (column.getDefaultValue() == null || column.getDefaultValue().equals("NULL")) {
column.setDefaultValue(result.getString("generation_expression"));
}
}
if (column.getMappedTypeCode() == Types.TIMESTAMP) {
adjustColumnSize(column, -20);
Expand Down

0 comments on commit 7b50983

Please sign in to comment.