This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push: new e4cf402 CAY-2694 Precision issues with reverse / forward engineering of time types on MySQL e4cf402 is described below commit e4cf402cff93193c8e5ac42276307abbe4585cc1 Author: Nikita Timofeev <stari...@gmail.com> AuthorDate: Fri Jun 11 18:55:08 2021 +0300 CAY-2694 Precision issues with reverse / forward engineering of time types on MySQL --- .../apache/cayenne/dbsync/merge/DbAttributeMerger.java | 12 +++++++----- .../org/apache/cayenne/dbsync/merge/CheckTypeTest.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbAttributeMerger.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbAttributeMerger.java index 8e0500f..81c7f33 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbAttributeMerger.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbAttributeMerger.java @@ -34,6 +34,13 @@ import org.apache.cayenne.dbsync.model.DetectedDbEntity; class DbAttributeMerger extends AbstractMerger<DbEntity, DbAttribute> { + static int[] typesWithMaxLength = { + Types.NCHAR, Types.NVARCHAR, + Types.CHAR, Types.VARCHAR, + Types.BINARY, Types.VARBINARY, + Types.TIME, Types.TIMESTAMP + }; + private final ValueForNullProvider valueForNull; DbAttributeMerger(MergerTokenFactory tokenFactory, ValueForNullProvider valueForNull) { @@ -137,11 +144,6 @@ class DbAttributeMerger extends AbstractMerger<DbEntity, DbAttribute> { } if(original.getMaxLength() != imported.getMaxLength()) { - int[] typesWithMaxLength = { - Types.NCHAR, Types.NVARCHAR, - Types.CHAR, Types.VARCHAR, - Types.BINARY, Types.VARBINARY - }; for(int type : typesWithMaxLength) { if(original.getType() == type) { return true; diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/CheckTypeTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/CheckTypeTest.java index 87a3cfc..387d2ab 100644 --- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/CheckTypeTest.java +++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/CheckTypeTest.java @@ -169,6 +169,22 @@ public class CheckTypeTest { } @Test + public void testTimeType() { + original.setType(Types.TIMESTAMP); + original.setMaxLength(19); + + imported.setType(Types.TIMESTAMP); + imported.setMaxLength(0); + + Collection<MergerToken> mergerTokens = dbAttributeMerger.createTokensForSame(diffPair); + assertEquals(1, mergerTokens.size()); + + MergerToken mergerToken1 = (MergerToken) mergerTokens.toArray()[0]; + String mergerToken = "NEW_TABLE.NAME maxLength: 0 -> 19"; + assertEquals(mergerToken, mergerToken1.getTokenValue()); + } + + @Test public void testCheckTypeWithoutChanges() { diffPair = new MergerDiffPair<>(original, imported);