From 573a8389b2e87863e7f22a7cbaa9d272cb8f057a Mon Sep 17 00:00:00 2001 From: Eric Long Date: Mon, 8 Aug 2022 15:53:26 -0400 Subject: [PATCH] 0005395: H2 database detects alter timestamp(0) every time starting --- .../java/org/jumpmind/db/alter/ModelComparator.java | 13 +++++++++++-- .../org/jumpmind/db/platform/h2/H2DdlReader.java | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/symmetric-db/src/main/java/org/jumpmind/db/alter/ModelComparator.java b/symmetric-db/src/main/java/org/jumpmind/db/alter/ModelComparator.java index b0f2440c55..b78187db0a 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/alter/ModelComparator.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/alter/ModelComparator.java @@ -338,9 +338,18 @@ public List 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(), diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DdlReader.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DdlReader.java index 07163d550a..6a68098b01 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DdlReader.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DdlReader.java @@ -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");