Skip to content

Commit

Permalink
0005395: H2 database detects alter timestamp(0) every time starting
Browse files Browse the repository at this point in the history
  • Loading branch information
erilong committed Aug 8, 2022
1 parent 8138035 commit 573a838
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
Expand Up @@ -338,9 +338,18 @@ public List<TableChange> compareColumns(Table sourceTable, Column sourceColumn,
}
if (!ddlBuilder.areColumnSizesTheSame(sourceColumn, targetColumn)) {
if (sizeMatters) {
int targetSize = targetColumn.getSizeAsInt();
if (targetColumn.getSize() == null) {
Integer defaultSize = platformInfo.getDefaultSize(platformInfo.getTargetJdbcType(targetColumn.getMappedTypeCode()));
if (defaultSize != null) {
targetSize = defaultSize;
} else {
targetSize = 0;
}
}
log.debug("The {} column on the {} table changed size from ({}) to ({})", new Object[] { sourceColumn.getName(),
sourceTable.getName(), sourceColumn.getSizeAsInt(), targetColumn.getSizeAsInt() });
changes.add(new ColumnSizeChange(sourceTable, sourceColumn, targetColumn.getSizeAsInt(), targetColumn.getScale()));
sourceTable.getName(), sourceColumn.getSizeAsInt(), targetSize });
changes.add(new ColumnSizeChange(sourceTable, sourceColumn, targetSize, targetColumn.getScale()));
} else if (scaleMatters) {
log.debug("The {} column on the {} table changed scale from ({},{}) to ({},{})",
new Object[] { sourceColumn.getName(), sourceTable.getName(), sourceColumn.getSizeAsInt(), sourceColumn.getScale(),
Expand Down
Expand Up @@ -98,7 +98,7 @@ protected Column readColumn(DatabaseMetaDataWrapper metaData,
scale);
}
if (column.getMappedTypeCode() == Types.TIMESTAMP) {
resetColumnSize(column, String.valueOf(column.getScale()));
resetColumnSize(column, column.getScale() > 9 ? "9" : String.valueOf(column.getScale()));
}
if (column.getMappedTypeCode() == Types.TIME) {
resetColumnSize(column, "0");
Expand Down

0 comments on commit 573a838

Please sign in to comment.