CAY-2694 Precision issues with reverse / forward engineering of time types on MySQL
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 @@
 
 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 @@
         }
 
         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 @@
     }
 
     @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);