瀏覽代碼

fastsql tsdb testcase

agapple 5 年之前
父節點
當前提交
2d3baeab7d
共有 100 個文件被更改,包括 1404 次插入36 次删除
  1. 113 34
      parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
  2. 15 0
      parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java
  3. 0 2
      parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java
  4. 86 0
      parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_Random_DDL_Test.java
  5. 3 0
      parse/src/test/resources/ddl/alter/mysql_1.sql
  6. 3 0
      parse/src/test/resources/ddl/alter/mysql_10.sql
  7. 8 0
      parse/src/test/resources/ddl/alter/mysql_11.sql
  8. 8 0
      parse/src/test/resources/ddl/alter/mysql_12.sql
  9. 7 0
      parse/src/test/resources/ddl/alter/mysql_13.sql
  10. 10 0
      parse/src/test/resources/ddl/alter/mysql_14.sql
  11. 14 0
      parse/src/test/resources/ddl/alter/mysql_15.sql
  12. 24 0
      parse/src/test/resources/ddl/alter/mysql_16.sql
  13. 14 0
      parse/src/test/resources/ddl/alter/mysql_17.sql
  14. 15 0
      parse/src/test/resources/ddl/alter/mysql_18.sql
  15. 3 0
      parse/src/test/resources/ddl/alter/mysql_19.sql
  16. 8 0
      parse/src/test/resources/ddl/alter/mysql_2.sql
  17. 7 0
      parse/src/test/resources/ddl/alter/mysql_20.sql
  18. 3 0
      parse/src/test/resources/ddl/alter/mysql_21.sql
  19. 15 0
      parse/src/test/resources/ddl/alter/mysql_22.sql
  20. 23 0
      parse/src/test/resources/ddl/alter/mysql_23.sql
  21. 6 0
      parse/src/test/resources/ddl/alter/mysql_24.sql
  22. 11 0
      parse/src/test/resources/ddl/alter/mysql_25.sql
  23. 5 0
      parse/src/test/resources/ddl/alter/mysql_26.sql
  24. 3 0
      parse/src/test/resources/ddl/alter/mysql_27.sql
  25. 8 0
      parse/src/test/resources/ddl/alter/mysql_28.sql
  26. 8 0
      parse/src/test/resources/ddl/alter/mysql_29.sql
  27. 20 0
      parse/src/test/resources/ddl/alter/mysql_3.sql
  28. 11 0
      parse/src/test/resources/ddl/alter/mysql_30.sql
  29. 4 0
      parse/src/test/resources/ddl/alter/mysql_31.sql
  30. 3 0
      parse/src/test/resources/ddl/alter/mysql_32.sql
  31. 5 0
      parse/src/test/resources/ddl/alter/mysql_33.sql
  32. 23 0
      parse/src/test/resources/ddl/alter/mysql_34.sql
  33. 26 0
      parse/src/test/resources/ddl/alter/mysql_35.sql
  34. 4 0
      parse/src/test/resources/ddl/alter/mysql_36.sql
  35. 5 0
      parse/src/test/resources/ddl/alter/mysql_37.sql
  36. 9 0
      parse/src/test/resources/ddl/alter/mysql_38.sql
  37. 9 0
      parse/src/test/resources/ddl/alter/mysql_39.sql
  38. 3 0
      parse/src/test/resources/ddl/alter/mysql_4.sql
  39. 5 0
      parse/src/test/resources/ddl/alter/mysql_40.sql
  40. 18 0
      parse/src/test/resources/ddl/alter/mysql_41.sql
  41. 9 0
      parse/src/test/resources/ddl/alter/mysql_42.sql
  42. 5 0
      parse/src/test/resources/ddl/alter/mysql_43.sql
  43. 5 0
      parse/src/test/resources/ddl/alter/mysql_44.sql
  44. 7 0
      parse/src/test/resources/ddl/alter/mysql_45.sql
  45. 3 0
      parse/src/test/resources/ddl/alter/mysql_46.sql
  46. 13 0
      parse/src/test/resources/ddl/alter/mysql_47.sql
  47. 18 0
      parse/src/test/resources/ddl/alter/mysql_48.sql
  48. 17 0
      parse/src/test/resources/ddl/alter/mysql_49.sql
  49. 3 0
      parse/src/test/resources/ddl/alter/mysql_5.sql
  50. 8 0
      parse/src/test/resources/ddl/alter/mysql_50.sql
  51. 10 0
      parse/src/test/resources/ddl/alter/mysql_51.sql
  52. 11 0
      parse/src/test/resources/ddl/alter/mysql_52.sql
  53. 21 0
      parse/src/test/resources/ddl/alter/mysql_53.sql
  54. 3 0
      parse/src/test/resources/ddl/alter/mysql_54.sql
  55. 12 0
      parse/src/test/resources/ddl/alter/mysql_55.sql
  56. 6 0
      parse/src/test/resources/ddl/alter/mysql_56.sql
  57. 3 0
      parse/src/test/resources/ddl/alter/mysql_57.sql
  58. 10 0
      parse/src/test/resources/ddl/alter/mysql_58.sql
  59. 4 0
      parse/src/test/resources/ddl/alter/mysql_59.sql
  60. 4 0
      parse/src/test/resources/ddl/alter/mysql_6.sql
  61. 12 0
      parse/src/test/resources/ddl/alter/mysql_60.sql
  62. 7 0
      parse/src/test/resources/ddl/alter/mysql_61.sql
  63. 9 0
      parse/src/test/resources/ddl/alter/mysql_62.sql
  64. 6 0
      parse/src/test/resources/ddl/alter/mysql_63.sql
  65. 10 0
      parse/src/test/resources/ddl/alter/mysql_64.sql
  66. 14 0
      parse/src/test/resources/ddl/alter/mysql_65.sql
  67. 3 0
      parse/src/test/resources/ddl/alter/mysql_66.sql
  68. 3 0
      parse/src/test/resources/ddl/alter/mysql_67.sql
  69. 3 0
      parse/src/test/resources/ddl/alter/mysql_68.sql
  70. 12 0
      parse/src/test/resources/ddl/alter/mysql_69.sql
  71. 3 0
      parse/src/test/resources/ddl/alter/mysql_7.sql
  72. 3 0
      parse/src/test/resources/ddl/alter/mysql_70.sql
  73. 3 0
      parse/src/test/resources/ddl/alter/mysql_71.sql
  74. 4 0
      parse/src/test/resources/ddl/alter/mysql_72.sql
  75. 17 0
      parse/src/test/resources/ddl/alter/mysql_73.sql
  76. 11 0
      parse/src/test/resources/ddl/alter/mysql_74.sql
  77. 8 0
      parse/src/test/resources/ddl/alter/mysql_75.sql
  78. 8 0
      parse/src/test/resources/ddl/alter/mysql_76.sql
  79. 9 0
      parse/src/test/resources/ddl/alter/mysql_77.sql
  80. 4 0
      parse/src/test/resources/ddl/alter/mysql_78.sql
  81. 7 0
      parse/src/test/resources/ddl/alter/mysql_79.sql
  82. 3 0
      parse/src/test/resources/ddl/alter/mysql_8.sql
  83. 15 0
      parse/src/test/resources/ddl/alter/mysql_80.sql
  84. 9 0
      parse/src/test/resources/ddl/alter/mysql_9.sql
  85. 16 0
      parse/src/test/resources/ddl/alter/test_1.sql
  86. 16 0
      parse/src/test/resources/ddl/alter/test_10.sql
  87. 46 0
      parse/src/test/resources/ddl/alter/test_11.sql
  88. 54 0
      parse/src/test/resources/ddl/alter/test_12.sql
  89. 26 0
      parse/src/test/resources/ddl/alter/test_13.sql
  90. 27 0
      parse/src/test/resources/ddl/alter/test_14.sql
  91. 30 0
      parse/src/test/resources/ddl/alter/test_15.sql
  92. 35 0
      parse/src/test/resources/ddl/alter/test_16.sql
  93. 41 0
      parse/src/test/resources/ddl/alter/test_17.sql
  94. 23 0
      parse/src/test/resources/ddl/alter/test_18.sql
  95. 16 0
      parse/src/test/resources/ddl/alter/test_19.sql
  96. 29 0
      parse/src/test/resources/ddl/alter/test_2.sql
  97. 27 0
      parse/src/test/resources/ddl/alter/test_20.sql
  98. 27 0
      parse/src/test/resources/ddl/alter/test_21.sql
  99. 32 0
      parse/src/test/resources/ddl/alter/test_22.sql
  100. 39 0
      parse/src/test/resources/ddl/alter/test_23.sql

+ 113 - 34
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java

@@ -48,35 +48,35 @@ import com.alibaba.otter.canal.protocol.position.EntryPosition;
  */
 public class DatabaseTableMeta implements TableMetaTSDB {
 
-    public static final EntryPosition       INIT_POSITION    = new EntryPosition("0", 0L, -2L, -1L);
-    private static Logger                   logger           = LoggerFactory.getLogger(DatabaseTableMeta.class);
-    private static Pattern                  pattern          = Pattern.compile("Duplicate entry '.*' for key '*'");
-    private static Pattern                  h2Pattern        = Pattern.compile("Unique index or primary key violation");
-    private static ScheduledExecutorService scheduler        = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
-
-                                                                 @Override
-                                                                 public Thread newThread(Runnable r) {
-                                                                     Thread thread = new Thread(r,
-                                                                         "[scheduler-table-meta-snapshot]");
-                                                                     thread.setDaemon(true);
-                                                                     return thread;
-                                                                 }
-                                                             });
-    private ReadWriteLock                   lock             = new ReentrantReadWriteLock();
-    private AtomicBoolean                   initialized      = new AtomicBoolean(false);
+    public static final EntryPosition       INIT_POSITION       = new EntryPosition("0", 0L, -2L, -1L);
+    private static Logger                   logger              = LoggerFactory.getLogger(DatabaseTableMeta.class);
+    private static Pattern                  pattern             = Pattern.compile("Duplicate entry '.*' for key '*'");
+    private static Pattern                  h2Pattern           = Pattern.compile("Unique index or primary key violation");
+    private static ScheduledExecutorService scheduler           = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
+
+                                                                    @Override
+                                                                    public Thread newThread(Runnable r) {
+                                                                        Thread thread = new Thread(r,
+                                                                            "[scheduler-table-meta-snapshot]");
+                                                                        thread.setDaemon(true);
+                                                                        return thread;
+                                                                    }
+                                                                });
+    private ReadWriteLock                   lock                = new ReentrantReadWriteLock();
+    private AtomicBoolean                   initialized         = new AtomicBoolean(false);
     private String                          destination;
     private MemoryTableMeta                 memoryTableMeta;
-    private volatile MysqlConnection        connection;                                                                 // 查询meta信息的链接
+    private volatile MysqlConnection        connection;                                                                    // 查询meta信息的链接
     private CanalEventFilter                filter;
     private CanalEventFilter                blackFilter;
-    private Map<String, List<String>> 		fieldFilterMap = new HashMap<String, List<String>>();
-    private Map<String, List<String>> 		fieldBlackFilterMap = new HashMap<String, List<String>>();
+    private Map<String, List<String>>       fieldFilterMap      = new HashMap<String, List<String>>();
+    private Map<String, List<String>>       fieldBlackFilterMap = new HashMap<String, List<String>>();
     private EntryPosition                   lastPosition;
     private boolean                         hasNewDdl;
     private MetaHistoryDAO                  metaHistoryDAO;
     private MetaSnapshotDAO                 metaSnapshotDAO;
-    private int                             snapshotInterval = 24;
-    private int                             snapshotExpire   = 360;
+    private int                             snapshotInterval    = 24;
+    private int                             snapshotExpire      = 360;
     private ScheduledFuture<?>              scheduleSnapshotFuture;
 
     public DatabaseTableMeta(){
@@ -486,7 +486,7 @@ public class DatabaseTableMeta implements TableMetaTSDB {
             .toString();
     }
 
-    private boolean compareTableMeta(TableMeta source, TableMeta target) {
+    public static boolean compareTableMeta(TableMeta source, TableMeta target) {
         if (!StringUtils.equalsIgnoreCase(source.getSchema(), target.getSchema())) {
             return false;
         }
@@ -501,6 +501,23 @@ public class DatabaseTableMeta implements TableMetaTSDB {
             return false;
         }
 
+        /**
+         * MySQL DDL的一些默认行为:
+         * 
+         * <pre>
+         * 1. Timestamp类型的列在第一次添加时,未指定默认值会默认为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
+         * 2. Timestamp类型的列在第二次时,必须指定默认值
+         * 3. BLOB和TEXT类型不存在NULL、NOT NULL属性
+         * 4. 部分数据类型是synonyms,实际show create table时会转成对应类型
+         * 5. 非BLOB和TEXT类型在默认未指定NULL、NOT NULL时,默认default null
+         * 6. 在列变更时,不仅变更列名数据类型,同时各个约束中列名也会变更,同时如果约束中包含key length,则变更后的数据类型不应违背key length的约束(有长度的应大于key length;BLOB、TEXT应有key length;可以在存在key length情况下变更为无key length的数据类型,约束中key length忽略;等等)
+         * 7. 字符集每列(char类、eumn、set)默认保存,指定使用指定的,未指定使用表默认的,不受修改表默认字符集而改变,同表默认时,字符集显示省略
+         * 8. 新建表默认innodb引擎,latin1字符集
+         * 9. BLOB、TEXT会根据给定长度自动转换为对应的TINY、MEDIUM,LONG类型,长度和字符集也有关
+         * 10. unique约束在没有指定索引名是非幂等的,会自动以约束索引第一个列名称命名,同时以_2,_3这种形式添加后缀
+         * </pre>
+         */
+
         for (int i = 0; i < sourceFields.size(); i++) {
             FieldMeta sourceField = sourceFields.get(i);
             FieldMeta targetField = targetFields.get(i);
@@ -520,15 +537,25 @@ public class DatabaseTableMeta implements TableMetaTSDB {
                 return false;
             }
 
+            String sourceColumnType = StringUtils.removeEndIgnoreCase(sourceField.getColumnType(), "zerofill").trim();
+            String targetColumnType = StringUtils.removeEndIgnoreCase(targetField.getColumnType(), "zerofill").trim();
+
             String sign = sourceField.isUnsigned() ? "unsigned" : "signed";
-            String sourceColumnType = StringUtils.removeEndIgnoreCase(sourceField.getColumnType(), sign).trim();
-            String targetColumnType = StringUtils.removeEndIgnoreCase(targetField.getColumnType(), sign).trim();
+            sourceColumnType = StringUtils.removeEndIgnoreCase(sourceColumnType, sign).trim();
+            targetColumnType = StringUtils.removeEndIgnoreCase(targetColumnType, sign).trim();
 
             boolean columnTypeCompare = false;
             columnTypeCompare |= StringUtils.containsIgnoreCase(sourceColumnType, targetColumnType);
             columnTypeCompare |= StringUtils.containsIgnoreCase(targetColumnType, sourceColumnType);
             if (!columnTypeCompare) {
-                return false;
+                // 去掉精度参数再对比一次
+                sourceColumnType = synonymsType(StringUtils.substringBefore(sourceColumnType, "(")).trim();
+                targetColumnType = synonymsType(StringUtils.substringBefore(targetColumnType, "(")).trim();
+                columnTypeCompare |= StringUtils.containsIgnoreCase(sourceColumnType, targetColumnType);
+                columnTypeCompare |= StringUtils.containsIgnoreCase(targetColumnType, sourceColumnType);
+                if (!columnTypeCompare) {
+                    return false;
+                }
             }
 
             // if (!StringUtils.equalsIgnoreCase(sourceField.getDefaultValue(),
@@ -536,8 +563,14 @@ public class DatabaseTableMeta implements TableMetaTSDB {
             // return false;
             // }
 
-            if (sourceField.isNullable() != targetField.isNullable()) {
-                return false;
+            // BLOB, TEXT, GEOMETRY or JSON默认都是nullable,可以忽略比较,但比较了也是对齐
+            if (StringUtils.containsIgnoreCase(sourceColumnType, "timestamp")
+                || StringUtils.containsIgnoreCase(targetColumnType, "timestamp")) {
+                // timestamp可能会加default current_timestamp默认值,忽略对比nullable
+            } else {
+                if (sourceField.isNullable() != targetField.isNullable()) {
+                    return false;
+                }
             }
 
             // mysql会有一种处理,针对show create只有uk没有pk时,会在desc默认将uk当做pk
@@ -551,6 +584,47 @@ public class DatabaseTableMeta implements TableMetaTSDB {
         return true;
     }
 
+    /**
+     * <pre>
+     * synonyms处理 
+     * 1. BOOL/BOOLEAN => TINYINT 
+     * 2. DEC/NUMERIC/FIXED => DECIMAL
+     * 3. INTEGER => INT
+     * 
+     * 
+     * </pre>
+     * 
+     * @param originType
+     * @return
+     */
+    private static String synonymsType(String originType) {
+        if (StringUtils.equalsIgnoreCase(originType, "bool") || StringUtils.equalsIgnoreCase(originType, "boolean")) {
+            return "tinyint";
+        } else if (StringUtils.equalsIgnoreCase(originType, "dec")
+                   || StringUtils.equalsIgnoreCase(originType, "numeric")
+                   || StringUtils.equalsIgnoreCase(originType, "fixed")) {
+            return "decimal";
+        } else if (StringUtils.equalsIgnoreCase(originType, "integer")) {
+            return "int";
+        } else if (StringUtils.equalsIgnoreCase(originType, "real")
+                   || StringUtils.equalsIgnoreCase(originType, "double precision")) {
+            return "double";
+        }
+
+        // BLOB、TEXT会根据给定长度自动转换为对应的TINY、MEDIUM,LONG类型,长度和字符集也有关,统一按照blob对比
+        if (StringUtils.equalsIgnoreCase(originType, "tinyblob")
+            || StringUtils.equalsIgnoreCase(originType, "mediumblob")
+            || StringUtils.equalsIgnoreCase(originType, "longblob")) {
+            return "blob";
+        } else if (StringUtils.equalsIgnoreCase(originType, "tinytext")
+                   || StringUtils.equalsIgnoreCase(originType, "mediumtext")
+                   || StringUtils.equalsIgnoreCase(originType, "longtext")) {
+            return "text";
+        }
+
+        return originType;
+    }
+
     private int snapshotExpire(int expireTimestamp) {
         return metaSnapshotDAO.deleteByTimestamp(destination, expireTimestamp);
     }
@@ -582,14 +656,14 @@ public class DatabaseTableMeta implements TableMetaTSDB {
     public void setBlackFilter(CanalEventFilter blackFilter) {
         this.blackFilter = blackFilter;
     }
-    
+
     public void setFieldFilterMap(Map<String, List<String>> fieldFilterMap) {
-		this.fieldFilterMap = fieldFilterMap;
-	}
-    
-	public void setFieldBlackFilterMap(Map<String, List<String>> fieldBlackFilterMap) {
-		this.fieldBlackFilterMap = fieldBlackFilterMap;
-	}
+        this.fieldFilterMap = fieldFilterMap;
+    }
+
+    public void setFieldBlackFilterMap(Map<String, List<String>> fieldBlackFilterMap) {
+        this.fieldBlackFilterMap = fieldBlackFilterMap;
+    }
 
     public int getSnapshotInterval() {
         return snapshotInterval;
@@ -618,4 +692,9 @@ public class DatabaseTableMeta implements TableMetaTSDB {
         }
         return false;
     }
+
+    public static void main(String[] args) {
+        String str = StringUtils.substringBefore("int(11)", "(");
+        System.out.println(str);
+    }
 }

+ 15 - 0
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta.java

@@ -176,6 +176,15 @@ public class MemoryTableMeta implements TableMetaTSDB {
             // String charset = getSqlName(column.getCharsetExpr());
             SQLDataType dataType = column.getDataType();
             String dataTypStr = dataType.getName();
+            if (StringUtils.equalsIgnoreCase(dataTypStr, "float")) {
+                if (dataType.getArguments().size() == 1) {
+                    int num = Integer.valueOf(dataType.getArguments().get(0).toString());
+                    if (num > 24) {
+                        dataTypStr = "double";
+                    }
+                }
+            }
+
             if (dataType.getArguments().size() > 0) {
                 dataTypStr += "(";
                 for (int i = 0; i < column.getDataType().getArguments().size(); i++) {
@@ -195,6 +204,12 @@ public class MemoryTableMeta implements TableMetaTSDB {
                 }
 
                 if (dataTypeImpl.isZerofill()) {
+                    // mysql default behaiver
+                    // 如果设置了zerofill,自动给列添加unsigned属性
+                    if (!dataTypeImpl.isUnsigned()) {
+                        dataTypStr += " unsigned";
+                    }
+
                     dataTypStr += " zerofill";
                 }
             }

+ 0 - 2
parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java

@@ -7,7 +7,6 @@ import java.net.URL;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
@@ -20,7 +19,6 @@ import com.alibaba.otter.canal.parse.inbound.TableMeta;
  */
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations = { "/tsdb/h2-tsdb.xml" })
-@Ignore
 public class MemoryTableMeta_DDL_Test {
 
     @Test

+ 86 - 0
parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_Random_DDL_Test.java

@@ -0,0 +1,86 @@
+package com.alibaba.otter.canal.parse.inbound.mysql.tsdb;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.URL;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.alibaba.fastsql.sql.repository.Schema;
+import com.alibaba.otter.canal.parse.inbound.TableMeta;
+import com.google.common.collect.Lists;
+
+/**
+ * @author agapple 2017年8月1日 下午7:15:54
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "/tsdb/h2-tsdb.xml" })
+public class MemoryTableMeta_Random_DDL_Test {
+
+    @Test
+    public void test_database() throws Throwable {
+        URL url = Thread.currentThread().getContextClassLoader().getResource("dummy.txt");
+        File dummyFile = new File(url.getFile());
+        int number = 39;
+        for (int i = 1; i <= number; i++) {
+            File sourceFile = new File(dummyFile.getParent() + "/ddl/table", "test_" + i + ".sql");
+            String sourceSql = StringUtils.join(IOUtils.readLines(new FileInputStream(sourceFile)), "\n");
+            MemoryTableMeta source = new MemoryTableMeta();
+            source.apply(null, "test", sourceSql, null);
+
+            File targetFile = new File(dummyFile.getParent() + "/ddl/table", "mysql_" + i + ".sql");
+            String targetSql = StringUtils.join(IOUtils.readLines(new FileInputStream(targetFile)), "\n");
+            MemoryTableMeta target = new MemoryTableMeta();
+            target.apply(null, "test", targetSql, null);
+
+            compareTableMeta(i, source, target);
+        }
+    }
+
+    @Test
+    public void test_table() throws Throwable {
+        URL url = Thread.currentThread().getContextClassLoader().getResource("dummy.txt");
+        File dummyFile = new File(url.getFile());
+        int number = 80;
+        for (int i = 1; i <= number; i++) {
+            try {
+                File sourceFile = new File(dummyFile.getParent() + "/ddl/alter", "test_" + i + ".sql");
+                String sourceSql = StringUtils.join(IOUtils.readLines(new FileInputStream(sourceFile)), "\n");
+                MemoryTableMeta source = new MemoryTableMeta();
+                source.apply(null, "test", sourceSql, null);
+
+                File targetFile = new File(dummyFile.getParent() + "/ddl/alter", "mysql_" + i + ".sql");
+                String targetSql = StringUtils.join(IOUtils.readLines(new FileInputStream(targetFile)), "\n");
+                MemoryTableMeta target = new MemoryTableMeta();
+                target.apply(null, "test", targetSql, null);
+
+                compareTableMeta(i, source, target);
+            } catch (Throwable e) {
+                Assert.fail("case : " + i + " failed by : " + e.getMessage());
+            }
+        }
+    }
+
+    private void compareTableMeta(int num, MemoryTableMeta source, MemoryTableMeta target) {
+        List<String> tableNames = Lists.newArrayList();
+        for (Schema schema : source.getRepository().getSchemas()) {
+            tableNames.addAll(schema.showTables());
+        }
+
+        for (String table : tableNames) {
+            TableMeta sourceMeta = source.find("test", table);
+            TableMeta targetMeta = target.find("test", table);
+            boolean result = DatabaseTableMeta.compareTableMeta(sourceMeta, targetMeta);
+            if (!result) {
+                Assert.fail(sourceMeta.toString() + " vs " + targetMeta.toString());
+            }
+        }
+    }
+}

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_1.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_rpwzfoyxgb` (
+  `col_mpjirrklef` longtext CHARACTER SET utf8mb4
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_10.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_ubziprstga` (
+  `col_bjmlsboygo` text CHARACTER SET utf8
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_11.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_ytaiteijaz` (
+  `col_lxtrjmhpmr` year(4) DEFAULT NULL,
+  `col_wvvanapjlz` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `col_xnljwkzjad` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_kajgusvxkq` smallint(75) DEFAULT NULL,
+  `col_pwojmgycov` bigint(20) unsigned zerofill DEFAULT NULL,
+  UNIQUE KEY `uk_pffwfanush` (`col_wvvanapjlz`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_12.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_jhqwojqbtj` (
+  `col_flcxltquqr` longtext,
+  `col_ksprsgkzrb` longtext CHARACTER SET utf8mb4,
+  `col_ndohgxbgox` float DEFAULT '1',
+  `col_egszzxhsvf` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL,
+  `col_cuzojqplje` year(4) DEFAULT '2019',
+  `col_sexypgjnak` date DEFAULT '2019-07-04'
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 7 - 0
parse/src/test/resources/ddl/alter/mysql_13.sql

@@ -0,0 +1,7 @@
+CREATE TABLE `tb_yfhnotrnrt` (
+  `col_vexgpiotuy` binary(1) DEFAULT NULL,
+  `col_qslraszfyz` longtext CHARACTER SET utf8mb4,
+  `col_dyphdacvvd` tinytext CHARACTER SET utf8mb4,
+  `col_xgueitftmx` float(247,18),
+  `col_ormwjqfbxi` int(193) unsigned zerofill DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 10 - 0
parse/src/test/resources/ddl/alter/mysql_14.sql

@@ -0,0 +1,10 @@
+CREATE TABLE `tb_cmzqttalvi` (
+  `col_lnqceyzqyi` mediumint(9) DEFAULT '1',
+  `col_rorzwqbqzc` varbinary(190) DEFAULT NULL,
+  `col_qfegkgeaal` tinyint(3) unsigned DEFAULT '1',
+  UNIQUE KEY `uk_nvoltofkla` (`col_rorzwqbqzc`(15))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_xnqicybdlo` (
+  `col_jzysxyqbvv` binary(91),
+  UNIQUE KEY `col_jzysxyqbvv` (`col_jzysxyqbvv`(31))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 14 - 0
parse/src/test/resources/ddl/alter/mysql_15.sql

@@ -0,0 +1,14 @@
+CREATE TABLE `tb_hgbecqwvnf` (
+  `col_qppnejcxiu` binary(137) DEFAULT NULL,
+  `col_nyrvlflfiz` mediumblob,
+  `col_zfwcescosm` bit(1) DEFAULT NULL,
+  `col_dqpoxmoyzl` bigint(111) unsigned DEFAULT '1',
+  `col_rfnetihhhs` decimal(15,0) NOT NULL,
+  `col_jhaqzczhxe` mediumblob,
+  `col_gfdmpyoigq` time(1) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+CREATE TABLE `tb_dqeiczpcpp` (
+  `col_zfwcescosm` bit(1) DEFAULT NULL,
+  `col_gvrsiekgpu` mediumint(9) DEFAULT NULL,
+  `col_luknerkzbg` year(4) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 24 - 0
parse/src/test/resources/ddl/alter/mysql_16.sql

@@ -0,0 +1,24 @@
+CREATE TABLE `tb_nxbyklxowd` (
+  `col_kcwxoovscx` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8,
+  `col_dbtkzzfxoi` varbinary(22) NOT NULL,
+  `col_zkfycwevvo` time DEFAULT NULL,
+  `col_ememhbgtcx` bit(1) DEFAULT b'0',
+  `col_zrrfkkosvo` char(203) DEFAULT NULL,
+  `col_fpafdojbdn` decimal(9,9) DEFAULT NULL,
+  `col_qhgfympzxa` longtext CHARACTER SET utf8,
+  `col_tymlykugck` int(83) unsigned zerofill DEFAULT NULL,
+  `col_awkvpagorc` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'enum_or_set_0',
+  `col_crrxfxfdzs` datetime DEFAULT NULL,
+  `col_cgdxdxesyd` decimal(10,0) NOT NULL,
+  `col_iiqainhxkc` smallint(81) unsigned zerofill,
+  `col_kbnueyzmpm` tinyblob,
+  `col_zixjkfdybk` binary(1) NOT NULL,
+  PRIMARY KEY (`col_dbtkzzfxoi`(10)),
+  UNIQUE KEY `col_fpfpelfmso` (`col_dbtkzzfxoi`),
+  UNIQUE KEY `col_dbtkzzfxoi` (`col_dbtkzzfxoi`(2))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+CREATE TABLE `tb_dlnhztodao` (
+  `col_rryluiawnq` varchar(24) DEFAULT '',
+  `col_bdlbhtissa` year(4) DEFAULT NULL,
+  `col_kfawipagkn` tinyblob
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 14 - 0
parse/src/test/resources/ddl/alter/mysql_17.sql

@@ -0,0 +1,14 @@
+CREATE TABLE `tb_ygyyvdctrs` (
+  `col_hirzxaomit` varbinary(145) NOT NULL,
+  `col_rpxmbgbwos` longblob,
+  `col_emexlkeymz` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4 DEFAULT 'enum_or_set_0',
+  `col_ibmogxgtyp` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET latin1 DEFAULT 'enum_or_set_0',
+  `col_yzbwkjwzqw` int(10) unsigned zerofill NOT NULL,
+  `col_dmdpojzsct` varbinary(166) DEFAULT NULL,
+  `col_oxgbfbgzov` double(112,2) DEFAULT NULL,
+  `col_zkdwjtabnw` smallint(5) unsigned NOT NULL,
+  `col_dxgsghrizm` tinyblob,
+  `col_bowjbzwvyw` date DEFAULT NULL,
+  `col_inneappfsm` varchar(112) CHARACTER SET utf8mb4 DEFAULT NULL,
+  UNIQUE KEY `col_emexlkeymz` (`col_emexlkeymz`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 15 - 0
parse/src/test/resources/ddl/alter/mysql_18.sql

@@ -0,0 +1,15 @@
+CREATE TABLE `tb_jhkrixchju` (
+  `col_prrcfbnwew` longtext,
+  `col_peqguxwzcy` smallint(202) NOT NULL DEFAULT '1',
+  `col_nhdlxtgtvs` char(1) CHARACTER SET utf8 DEFAULT NULL,
+  `col_vyizooodsa` longblob,
+  `col_hwmrzghead` longtext,
+  `col_adgnavqmhq` longtext,
+  `col_adwetrnlyu` bit(41) DEFAULT NULL,
+  `col_ypyzwlctxm` varbinary(86) DEFAULT '\0',
+  `col_rmjdxsrzry` char(159) DEFAULT NULL,
+  `col_mcjrxquwtj` binary(1) DEFAULT NULL,
+  `col_ilcapoaext` mediumblob,
+  `col_dvcgmijmcd` smallint(246) unsigned NOT NULL DEFAULT '1',
+  `col_avjufpxxft` timestamp NULL DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_19.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_hefguylckk` (
+  `col_qzehomawzl` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_2.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_gcqyhapjeh` (
+  `col_hctgmkmyxs` datetime DEFAULT '2019-07-04 00:00:00',
+  `col_kkvhrfifbo` longtext,
+  `col_mqfdtybcrt` longtext,
+  `col_ddgcxloigt` bit(6) DEFAULT NULL,
+  `col_icjiguudiw` bigint(20) unsigned zerofill,
+  UNIQUE KEY `col_kkvhrfifbo` (`col_kkvhrfifbo`(31))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 7 - 0
parse/src/test/resources/ddl/alter/mysql_20.sql

@@ -0,0 +1,7 @@
+CREATE TABLE `tb_wxywfqcvkr` (
+  `col_oftatmlkzc` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL,
+  `col_vjvhvsxmoi` bigint(20) unsigned zerofill DEFAULT NULL,
+  `col_figelwsuqt` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_whowxgsfzl` longblob,
+  `col_mzdqafxiqx` bigint(161) unsigned DEFAULT '1'
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_21.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_mjvfhaqskb` (
+  `col_snmdnyljqk` varbinary(47) DEFAULT '\0'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 15 - 0
parse/src/test/resources/ddl/alter/mysql_22.sql

@@ -0,0 +1,15 @@
+CREATE TABLE `tb_sxbbqclsgf` (
+  `col_ukcpwepvny` timestamp(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1),
+  `col_avzjcdfkfv` year(4) NOT NULL DEFAULT '2019',
+  `col_kgfprqgdwt` mediumtext CHARACTER SET latin1,
+  `col_wctphwmxin` smallint(103) unsigned zerofill DEFAULT NULL,
+  `col_tekylcrmef` bit(17) DEFAULT b'0',
+  UNIQUE KEY `col_kgfprqgdwt` (`col_kgfprqgdwt`(6))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_btqvbuxdyv` (
+  `col_zknooyoueg` time NOT NULL DEFAULT '00:00:00',
+  `col_xavytdfgxu` mediumtext,
+  `col_mgwiohebft` mediumtext,
+  `col_bejzwcvfmz` date DEFAULT '2019-07-04',
+  UNIQUE KEY `uk_cryfvwxbvx` (`col_zknooyoueg`,`col_xavytdfgxu`(9))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 23 - 0
parse/src/test/resources/ddl/alter/mysql_23.sql

@@ -0,0 +1,23 @@
+CREATE TABLE `tb_caahynuejc` (
+  `col_ceosnfriqs` int(11) DEFAULT NULL,
+  `col_aklqoixrun` year(4) DEFAULT NULL,
+  `col_noipbutgvd` char(1) CHARACTER SET utf8mb4 DEFAULT NULL,
+  `col_eyefseknmn` time,
+  `col_tlcpasbobp` bigint(20) unsigned zerofill DEFAULT NULL,
+  UNIQUE KEY `col_ceosnfriqs` (`col_ceosnfriqs`),
+  UNIQUE KEY `uk_gekdmzrybz` (`col_aklqoixrun`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_xbsrcfksox` (
+  `col_qsljaaxbrj` datetime DEFAULT '2019-07-04 00:00:00',
+  `col_vusitjjcdx` char(1) DEFAULT NULL,
+  `col_ufwmvwjonj` int(10) unsigned NOT NULL,
+  UNIQUE KEY `uk_henpwhqovc` (`col_ufwmvwjonj`),
+  UNIQUE KEY `col_vusitjjcdx` (`col_vusitjjcdx`,`col_ufwmvwjonj`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_ydbfvvwhvi` (
+  `col_aipblmdcsw` double NOT NULL,
+  `col_sklhosmnvr` bigint(20) unsigned zerofill NOT NULL,
+  `col_skwdbrxmlc` mediumblob,
+  UNIQUE KEY `col_aipblmdcsw` (`col_aipblmdcsw`,`col_sklhosmnvr`),
+  UNIQUE KEY `uk_inmzvqrjoq` (`col_sklhosmnvr`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 6 - 0
parse/src/test/resources/ddl/alter/mysql_24.sql

@@ -0,0 +1,6 @@
+CREATE TABLE `tb_fywhebwffn` (
+  `col_ukjlmzjcdn` tinyint(91) unsigned DEFAULT '1',
+  UNIQUE KEY `uk_xedljqlhxo` (`col_ukjlmzjcdn`),
+  UNIQUE KEY `uk_keugblaszl` (`col_ukjlmzjcdn`),
+  UNIQUE KEY `col_ctzpiugxrl_2` (`col_ukjlmzjcdn`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 11 - 0
parse/src/test/resources/ddl/alter/mysql_25.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `tb_aafdasghga` (
+  `col_uayhwfkoln` longtext CHARACTER SET utf8mb4,
+  `col_qskwbkbegb` decimal(16,0) DEFAULT NULL,
+  `col_fxicikwsct` float NOT NULL,
+  `col_ygghjheerk` text CHARACTER SET utf8,
+  `col_zbenqlvted` binary(1) DEFAULT NULL,
+  `col_ixseptopfk` date DEFAULT '2019-07-04',
+  `col_iafihazdod` char(1) NOT NULL,
+  UNIQUE KEY `col_fxicikwsct` (`col_fxicikwsct`),
+  UNIQUE KEY `col_zbenqlvted` (`col_zbenqlvted`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 5 - 0
parse/src/test/resources/ddl/alter/mysql_26.sql

@@ -0,0 +1,5 @@
+CREATE TABLE `tb_keyyesvarm` (
+  `col_zixordgmdc` decimal(3,1) DEFAULT NULL,
+  `col_victdeyala` decimal(48,7) DEFAULT NULL,
+  `col_lqkravajqi` longtext
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_27.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_flnycxasap` (
+  `col_rqtzrkfarg` timestamp NULL DEFAULT CURRENT_TIMESTAMP
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_28.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_cvpyawneqw` (
+  `col_nnggkdrfej` mediumint(9) DEFAULT '1',
+  `col_gxyxiafdwy` tinyblob,
+  `col_jrdtjutkna` int(10) unsigned DEFAULT NULL,
+  UNIQUE KEY `col_sowlpsmtck` (`col_nnggkdrfej`),
+  UNIQUE KEY `uk_ameijmmzqx` (`col_nnggkdrfej`),
+  UNIQUE KEY `col_gxyxiafdwy` (`col_gxyxiafdwy`(28))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_29.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_lfxvmboyfq` (
+  `col_omyyogfmwf` varbinary(117) DEFAULT NULL,
+  `col_ziqdcvhqaa` longblob,
+  `col_osxbsknpgd` varchar(183) CHARACTER SET utf8mb4 DEFAULT NULL,
+  `col_idrqfoikzf` float(151,12) NOT NULL,
+  `col_whrxkkdwrk` tinytext,
+  `col_yxfqfnhsex` bit(43) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 20 - 0
parse/src/test/resources/ddl/alter/mysql_3.sql

@@ -0,0 +1,20 @@
+CREATE TABLE `tb_ntoztqvpgu` (
+  `col_pszlqmpajg` mediumint(8) unsigned NOT NULL,
+  `col_gsplwknfrh` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `col_ytfasfxidt` mediumtext CHARACTER SET utf8mb4,
+  `col_guxaslfjra` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET latin1 DEFAULT 'enum_or_set_0',
+  `col_hzazyxoqhs` int(240) unsigned DEFAULT '1',
+  `col_yrswgxnlhe` mediumtext,
+  `col_bogirlzjnd` float DEFAULT NULL,
+  `col_kcynrqhwrh` tinyblob,
+  `col_guruxuyivx` char(1) CHARACTER SET utf8mb4 DEFAULT NULL,
+  `col_aklhemsftu` datetime DEFAULT '2019-07-04 00:00:00',
+  `col_bpigfcahks` longblob,
+  `col_xzbtbplmxx` float(173,30) DEFAULT NULL,
+  `col_abtzsnchmp` time(3) DEFAULT NULL,
+  `col_xrqqlwdmuo` datetime NOT NULL,
+  `col_yesjtrmdcm` smallint(5) unsigned DEFAULT '1',
+  `col_szbvvxlxpk` mediumtext CHARACTER SET latin1,
+  `col_qbvmzghubk` longblob,
+  `col_zvbkjkirrz` mediumint(68) unsigned DEFAULT '1'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 11 - 0
parse/src/test/resources/ddl/alter/mysql_30.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `tb_ruvaoezmwl` (
+  `col_gdnftbskks` datetime(4) DEFAULT NULL,
+  `col_crzzjsyeyk` tinyblob,
+  UNIQUE KEY `uk_splpaskbbf` (`col_gdnftbskks`),
+  UNIQUE KEY `uk_gcdkboipfa` (`col_gdnftbskks`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_pfzgcmldfg` (
+  `col_gdnftbskks` datetime(4) DEFAULT NULL,
+  `col_duzzugyump` smallint(74) unsigned zerofill DEFAULT NULL,
+  UNIQUE KEY `uk_gcdkboipfa` (`col_gdnftbskks`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 4 - 0
parse/src/test/resources/ddl/alter/mysql_31.sql

@@ -0,0 +1,4 @@
+CREATE TABLE `tb_djhsoeomxx` (
+  `col_fpegtdbbro` varchar(10) CHARACTER SET latin1 NOT NULL DEFAULT '',
+  UNIQUE KEY `uk_bbhokusgkq` (`col_fpegtdbbro`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_32.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_ybgjvtnrkt` (
+  `col_vhszikunhu` int(95) unsigned zerofill DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 5 - 0
parse/src/test/resources/ddl/alter/mysql_33.sql

@@ -0,0 +1,5 @@
+CREATE TABLE `tb_ocwsozgwid` (
+  `col_cuctvlzqvd` decimal(63,14),
+  UNIQUE KEY `col_jerxhroyff_2` (`col_cuctvlzqvd`),
+  UNIQUE KEY `col_jerxhroyff_4` (`col_cuctvlzqvd`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 23 - 0
parse/src/test/resources/ddl/alter/mysql_34.sql

@@ -0,0 +1,23 @@
+CREATE TABLE `tb_qlkjrjqnps` (
+  `col_eoeroydtse` smallint(32) DEFAULT '1',
+  `col_cbcrcayfoe` longblob,
+  `col_vkcmtobywn` binary(1) NOT NULL,
+  `col_mywjrvfxmw` tinyblob,
+  `col_hkwgwwaxoy` text,
+  `col_zuhebeqqrq` decimal(4,0) DEFAULT NULL,
+  `col_oilsudgyas` smallint(39) unsigned zerofill DEFAULT NULL,
+  `col_wgsnbmgdbz` int(10) unsigned zerofill,
+  `col_opbtiidusc` tinyint(3) unsigned zerofill DEFAULT NULL,
+  `col_wcpdsgpcip` longblob,
+  `col_fidmrllusm` varchar(132) DEFAULT NULL,
+  `col_qxsokmevlv` int(10) unsigned zerofill NOT NULL,
+  PRIMARY KEY (`col_vkcmtobywn`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_jnhvwsafrh` (
+  `col_ktdqdryygn` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL DEFAULT 'enum_or_set_0',
+  `col_cbcrcayfoe` longblob
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_ygcnpvqeez` (
+  `col_ktdqdryygn` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL DEFAULT 'enum_or_set_0',
+  `col_cbcrcayfoe` longblob
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 26 - 0
parse/src/test/resources/ddl/alter/mysql_35.sql

@@ -0,0 +1,26 @@
+CREATE TABLE `tb_eegcnsbywv` (
+  `col_rwmjknctzl` datetime(6) NOT NULL,
+  `col_seknewafqd` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `col_jophiowutg` longtext CHARACTER SET latin1,
+  `col_iedptbbtmp` double DEFAULT NULL,
+  `col_pnotecfjsi` decimal(10,0) DEFAULT NULL,
+  `col_eawvokgzvi` year(4) NOT NULL,
+  `col_orlvhbnaer` longtext CHARACTER SET utf8mb4,
+  `col_krlfmduttq` longtext CHARACTER SET latin1,
+  `col_jobdxewixt` bigint(173) DEFAULT NULL,
+  `col_ufdhvspoka` float DEFAULT '1',
+  `col_qqdcbaucve` date DEFAULT NULL,
+  `col_uuexgtwrse` double(172,2) NOT NULL,
+  `col_hzixmjzrzg` tinyint(195) unsigned zerofill NOT NULL,
+  `col_bfsjjimztp` datetime(1) NOT NULL,
+  `col_hfrmqomgva` date DEFAULT NULL,
+  `col_mepqygbcxa` text CHARACTER SET utf8mb4,
+  `col_xmubzkmxzy` mediumblob,
+  PRIMARY KEY (`col_rwmjknctzl`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_qlvbveqzna` (
+  `col_ytfnmhhaoa` int(10) unsigned DEFAULT NULL,
+  `col_vimtlabyrl` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4 DEFAULT NULL,
+  UNIQUE KEY `col_ytfnmhhaoa` (`col_ytfnmhhaoa`),
+  UNIQUE KEY `col_vimtlabyrl` (`col_vimtlabyrl`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 4 - 0
parse/src/test/resources/ddl/alter/mysql_36.sql

@@ -0,0 +1,4 @@
+CREATE TABLE `tb_putsugoooc` (
+  `col_ynpynwnkjv` mediumtext,
+  UNIQUE KEY `col_ufqdyzbxyc_2` (`col_ynpynwnkjv`(18))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 5 - 0
parse/src/test/resources/ddl/alter/mysql_37.sql

@@ -0,0 +1,5 @@
+CREATE TABLE `tb_cdbrmxbknb` (
+  `col_amvugezhpd` blob,
+  UNIQUE KEY `uk_yvoxkgeget` (`col_amvugezhpd`(6)),
+  UNIQUE KEY `uk_ozxqwxureo` (`col_amvugezhpd`(10))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 9 - 0
parse/src/test/resources/ddl/alter/mysql_38.sql

@@ -0,0 +1,9 @@
+CREATE TABLE `tb_oxwwculmvu` (
+  `col_szncpsegwq` time DEFAULT '00:00:00',
+  `col_wxqxqueihr` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT NULL,
+  `col_hyhtklzrvn` varchar(147) NOT NULL DEFAULT '',
+  `col_umxbmdtpxs` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL,
+  `col_bewssrhuze` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
+  `col_yyixefgbqi` year(4) DEFAULT NULL,
+  UNIQUE KEY `uk_vrydxlndik` (`col_yyixefgbqi`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 9 - 0
parse/src/test/resources/ddl/alter/mysql_39.sql

@@ -0,0 +1,9 @@
+CREATE TABLE `tb_aidhgjhqzp` (
+  `col_wtsgpcyuec` time(6) DEFAULT NULL,
+  `col_ouqqfnoijf` tinyint(142) unsigned DEFAULT '1',
+  `col_jsjfylwbsu` time(3) NOT NULL,
+  `col_wcosqedhbh` tinytext,
+  `col_cvzuqkfnnp` tinytext CHARACTER SET latin1,
+  `col_dpnzvoemce` smallint(146) unsigned zerofill DEFAULT NULL,
+  `col_wisgyhivgt` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_4.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_ljqwtifhmg` (
+  `col_lifsfguaso` bigint(20) unsigned zerofill NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 5 - 0
parse/src/test/resources/ddl/alter/mysql_40.sql

@@ -0,0 +1,5 @@
+CREATE TABLE `tb_imabeghgmt` (
+  `col_wvmxgyajnm` longblob,
+  UNIQUE KEY `uk_ppyrqytsgk` (`col_wvmxgyajnm`(12)),
+  UNIQUE KEY `uk_znvsdkastd` (`col_wvmxgyajnm`(17))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 18 - 0
parse/src/test/resources/ddl/alter/mysql_41.sql

@@ -0,0 +1,18 @@
+CREATE TABLE `tb_mqghelxirz` (
+  `col_ixaybtquqz` smallint(215) unsigned DEFAULT '1',
+  `col_gseshvltxd` tinytext CHARACTER SET latin1,
+  `col_otuwjnlrtt` decimal(10,0) DEFAULT NULL,
+  `col_gwwjlquinc` mediumint(9) NOT NULL,
+  `col_ibdwyzxgxi` varchar(134) CHARACTER SET latin1 DEFAULT NULL,
+  `col_vtkwyvoqkp` varbinary(121) DEFAULT NULL,
+  `col_gubjakxnpz` char(1) CHARACTER SET latin1 DEFAULT NULL,
+  `col_hawbrmwxzw` longblob,
+  `col_kgokeficzq` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET latin1 DEFAULT 'enum_or_set_0',
+  `col_xltpnadrcs` bigint(20) unsigned zerofill NOT NULL,
+  `col_rikplgqsve` tinyint(146) unsigned zerofill DEFAULT NULL,
+  `col_ukmsekjycj` tinyblob,
+  `col_zonuplyzdz` tinyblob,
+  `col_snvmotcqtx` mediumtext CHARACTER SET latin1,
+  PRIMARY KEY (`col_gwwjlquinc`),
+  UNIQUE KEY `col_otuwjnlrtt` (`col_otuwjnlrtt`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 9 - 0
parse/src/test/resources/ddl/alter/mysql_42.sql

@@ -0,0 +1,9 @@
+CREATE TABLE `tb_hkehwyglax` (
+  `col_dcnadmyyfb` binary(1) DEFAULT NULL,
+  `col_zvcpajjdrr` int(26) unsigned zerofill DEFAULT NULL,
+  `col_aftchdhhpb` int(10) unsigned DEFAULT NULL,
+  `col_fdyhioyktq` tinytext CHARACTER SET utf8mb4,
+  `col_iqohbjwihd` text CHARACTER SET utf8mb4,
+  `col_yxsvpkijew` double NOT NULL,
+  UNIQUE KEY `col_tymnumzsjd_2` (`col_aftchdhhpb`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 5 - 0
parse/src/test/resources/ddl/alter/mysql_43.sql

@@ -0,0 +1,5 @@
+CREATE TABLE `tb_uoquelzmdk` (
+  `col_wcdxzaykzl` smallint(5) unsigned DEFAULT '1',
+  `col_njhhehxbdq` mediumtext,
+  `col_wwdicmbkug` longblob
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 5 - 0
parse/src/test/resources/ddl/alter/mysql_44.sql

@@ -0,0 +1,5 @@
+CREATE TABLE `tb_faqsxuetwm` (
+  `col_qcgurbenzo` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT NULL,
+  UNIQUE KEY `uk_vidzaimrjm` (`col_qcgurbenzo`),
+  UNIQUE KEY `uk_zgssrxjpck` (`col_qcgurbenzo`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 7 - 0
parse/src/test/resources/ddl/alter/mysql_45.sql

@@ -0,0 +1,7 @@
+CREATE TABLE `tb_voanuixent` (
+  `col_xgykdmygaw` tinyblob
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_znqepghruj` (
+  `col_xgykdmygaw` tinyblob,
+  UNIQUE KEY `col_xgykdmygaw` (`col_xgykdmygaw`(21))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_46.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_mlsrpqwnhf` (
+  `col_kdvvwclils` year(4) DEFAULT '2019'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 13 - 0
parse/src/test/resources/ddl/alter/mysql_47.sql

@@ -0,0 +1,13 @@
+CREATE TABLE `tb_odwnejztgw` (
+  `col_ouwtrbmtli` varbinary(39) DEFAULT '\0',
+  `col_ikgmyfugbh` time(3) DEFAULT NULL,
+  `col_grrazuxsmj` tinyint(108) unsigned zerofill DEFAULT NULL,
+  `col_dqxacqwdav` year(4) DEFAULT NULL,
+  `col_afisennniu` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET latin1 NOT NULL DEFAULT 'enum_or_set_0',
+  `col_hsbiyreflo` mediumblob,
+  `col_pmcsqydybm` bit(59) DEFAULT NULL,
+  `col_caewwurnsu` mediumblob,
+  `col_vumeeppqkm` int(62) unsigned zerofill DEFAULT NULL,
+  `col_hxgvemyiam` tinytext,
+  PRIMARY KEY (`col_afisennniu`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 18 - 0
parse/src/test/resources/ddl/alter/mysql_48.sql

@@ -0,0 +1,18 @@
+CREATE TABLE `tb_fzlrvzctbr` (
+  `col_fcxqhwmcni` longblob,
+  `col_kswnnckixx` tinytext,
+  `col_hpqddjdxxz` longblob,
+  `col_xnreiiwrcm` mediumint(225) unsigned DEFAULT '1',
+  UNIQUE KEY `uk_cvkkrimfqi` (`col_kswnnckixx`(2),`col_hpqddjdxxz`(29))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_tmasbkkzbt` (
+  `col_gvdetvdvvm` longtext,
+  UNIQUE KEY `uk_dvgbfwphsv` (`col_gvdetvdvvm`(27))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_vnbuhzbwvw` (
+  `col_gttrfjbbyi` varchar(161) NOT NULL,
+  `col_ksvxcquzhp` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
+  `col_ibahzyeiod` year(4) NOT NULL,
+  PRIMARY KEY (`col_gttrfjbbyi`(8)),
+  UNIQUE KEY `col_ksvxcquzhp` (`col_ksvxcquzhp`(16),`col_ibahzyeiod`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 17 - 0
parse/src/test/resources/ddl/alter/mysql_49.sql

@@ -0,0 +1,17 @@
+CREATE TABLE `tb_yzmdpoldbu` (
+  `col_cmeqnxgnwo` int(11) DEFAULT '1',
+  `col_qdzrqnbwug` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_pabufpjxkv` tinytext,
+  `col_hvdglgtlxp` longblob,
+  `col_pbngzmfduy` varchar(225) NOT NULL,
+  `col_fefjkkdwwg` tinytext,
+  `col_kloxucvkgw` bigint(200) unsigned DEFAULT '1',
+  UNIQUE KEY `uk_bmkecbeunv` (`col_fefjkkdwwg`(12))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_oxrpkkhlpd` (
+  `col_qyxegyfxhd` binary(1) NOT NULL,
+  `col_fhrwjmkunp` time DEFAULT '00:00:00',
+  `col_ebdpffnuvl` longblob,
+  `col_ivfpfrbagk` decimal(48,0) DEFAULT NULL,
+  PRIMARY KEY (`col_qyxegyfxhd`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_5.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_ahefjpyxqu` (
+  `col_cqrrpavzlu` tinyint(14) DEFAULT '1'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_50.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_cfnewnjqhr` (
+  `col_cdwqlqfwox` int(10) unsigned DEFAULT '1'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_naclwnujgs` (
+  `col_qqccessygq` year(4) NOT NULL,
+  PRIMARY KEY (`col_qqccessygq`),
+  UNIQUE KEY `uk_mffeuwunua` (`col_qqccessygq`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 10 - 0
parse/src/test/resources/ddl/alter/mysql_51.sql

@@ -0,0 +1,10 @@
+CREATE TABLE `tb_krsikytrbw` (
+  `col_lliihnoyoo` int(145) NOT NULL DEFAULT '1',
+  `col_qkgtxzzfie` tinyblob,
+  `col_lfbganjgad` timestamp(4) NULL DEFAULT NULL,
+  `col_cqjptjcgyb` binary(1) NOT NULL,
+  `col_lfptlilmsv` int(230) unsigned zerofill NOT NULL,
+  `col_omxbpiulnd` year(4) DEFAULT '2019',
+  PRIMARY KEY (`col_cqjptjcgyb`),
+  UNIQUE KEY `col_cqjptjcgyb` (`col_cqjptjcgyb`,`col_lliihnoyoo`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 11 - 0
parse/src/test/resources/ddl/alter/mysql_52.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `tb_udrucjftxw` (
+  `col_tustciiwwp` datetime(2) DEFAULT NULL,
+  `col_xhjeuttrui` longtext CHARACTER SET utf8mb4,
+  `col_gzwherugvm` decimal(35,10) DEFAULT NULL,
+  `col_fwooxfmvvs` tinytext,
+  UNIQUE KEY `uk_kllnpcqqzt` (`col_xhjeuttrui`(30)),
+  UNIQUE KEY `uk_omzcuexdxr` (`col_xhjeuttrui`(8),`col_gzwherugvm`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_syxeibzqzx` (
+  `col_shntqukbsk` datetime DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 21 - 0
parse/src/test/resources/ddl/alter/mysql_53.sql

@@ -0,0 +1,21 @@
+CREATE TABLE `tb_gcekkribdm` (
+  `col_xpuntwyhls` int(253) unsigned zerofill DEFAULT NULL,
+  `col_doacvjtxfj` text CHARACTER SET utf8,
+  `col_vbxxcedehr` varbinary(72) DEFAULT '\0',
+  `col_spnkzcnaaj` tinyint(221) unsigned zerofill DEFAULT NULL,
+  `col_lctlnulyqs` varchar(141) CHARACTER SET utf8 DEFAULT '',
+  `col_vdafmpnlcj` timestamp NULL DEFAULT NULL,
+  `col_pwwnuhvonf` bit(1) DEFAULT NULL,
+  `col_wpdnfgwkmm` float(253,19) NOT NULL,
+  `col_hmbydpntpk` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 DEFAULT 'enum_or_set_0',
+  `col_kahmeuqzzo` mediumtext,
+  `col_mrruauiuzg` mediumblob,
+  `col_cxafkgwrzu` varbinary(36) DEFAULT NULL,
+  `col_ooxuaiyuqa` mediumint(107) unsigned zerofill DEFAULT NULL,
+  `col_mxpgmnrigf` decimal(10,0) DEFAULT NULL,
+  `col_sgjbftdxrq` mediumtext CHARACTER SET utf8,
+  `col_zboghrfujc` char(34) DEFAULT NULL,
+  `col_xpwlcesvfx` int(73) DEFAULT NULL,
+  `col_ysqvnorogf` int(10) unsigned DEFAULT '1',
+  `col_dznwcqadnc` mediumtext CHARACTER SET utf8
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_54.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_fijiqnymmp` (
+  `col_tcroqoomon` tinyblob
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 12 - 0
parse/src/test/resources/ddl/alter/mysql_55.sql

@@ -0,0 +1,12 @@
+CREATE TABLE `tb_epubreeayc` (
+  `col_embnqthyuu` double NOT NULL,
+  `col_shqnxczemy` binary(149) DEFAULT NULL,
+  `col_gyjfdfpemu` longtext CHARACTER SET utf8,
+  PRIMARY KEY (`col_embnqthyuu`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+CREATE TABLE `tb_uafierhjhg` (
+  `col_rvdpillohr` smallint(51) unsigned NOT NULL,
+  `col_wjvgjpqbgz` smallint(5) unsigned zerofill DEFAULT NULL,
+  PRIMARY KEY (`col_rvdpillohr`),
+  UNIQUE KEY `uk_aqetlmillq` (`col_wjvgjpqbgz`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 6 - 0
parse/src/test/resources/ddl/alter/mysql_56.sql

@@ -0,0 +1,6 @@
+CREATE TABLE `tb_hjqdntirzd` (
+  `col_dtiogubkiw` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_okjyevogvl` int(11) DEFAULT '1',
+  `col_cawkxhaucp` tinyblob,
+  UNIQUE KEY `col_mwlpdcpegm` (`col_dtiogubkiw`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_57.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_xmvawoekwx` (
+  `col_gsqeppbqjg` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 10 - 0
parse/src/test/resources/ddl/alter/mysql_58.sql

@@ -0,0 +1,10 @@
+CREATE TABLE `tb_wsxpqlbxhr` (
+  `col_kkdtlacxiy` char(1) NOT NULL,
+  `col_koftcyrhcl` int(233) DEFAULT '1',
+  `col_nacwazcyzi` varbinary(12) DEFAULT NULL,
+  `col_nnckvjhnnd` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
+  `col_sxwmoaghtk` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_btyjfvfohb` double(18,12) DEFAULT NULL,
+  `col_qpusrblupw` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  PRIMARY KEY (`col_kkdtlacxiy`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 4 - 0
parse/src/test/resources/ddl/alter/mysql_59.sql

@@ -0,0 +1,4 @@
+CREATE TABLE `tb_hbheuprskb` (
+  `col_mqqxkezdux` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 NOT NULL,
+  UNIQUE KEY `col_mqqxkezdux` (`col_mqqxkezdux`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 4 - 0
parse/src/test/resources/ddl/alter/mysql_6.sql

@@ -0,0 +1,4 @@
+CREATE TABLE `tb_yzcwyrztvj` (
+  `col_ubxpjfudbv` timestamp(5) NOT NULL DEFAULT CURRENT_TIMESTAMP(5),
+  PRIMARY KEY (`col_ubxpjfudbv`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 12 - 0
parse/src/test/resources/ddl/alter/mysql_60.sql

@@ -0,0 +1,12 @@
+CREATE TABLE `tb_idttivasrc` (
+  `col_vqskztkwqb` longblob,
+  `col_naimzyvtyy` mediumint(8) unsigned DEFAULT NULL,
+  `col_ngqfbkxgkw` tinyblob,
+  `col_slxxarfdmi` binary(243) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+CREATE TABLE `tb_rjdimmicei` (
+  `col_aszmqpjfka` decimal(49,0) DEFAULT NULL,
+  `col_qmwcrinzvf` time NOT NULL,
+  `col_xgwavsjbcg` longblob,
+  UNIQUE KEY `col_xgwavsjbcg` (`col_xgwavsjbcg`(22))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 7 - 0
parse/src/test/resources/ddl/alter/mysql_61.sql

@@ -0,0 +1,7 @@
+CREATE TABLE `tb_sbjgtoodpq` (
+  `col_npydnongql` decimal(45,0) NOT NULL,
+  `col_pfssvgbbli` bigint(20) unsigned zerofill DEFAULT NULL,
+  `col_qqyenpblbe` binary(1),
+  `col_mkayxjoxkl` binary(229) DEFAULT NULL,
+  `col_zlrfenamiz` double
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 9 - 0
parse/src/test/resources/ddl/alter/mysql_62.sql

@@ -0,0 +1,9 @@
+CREATE TABLE `tb_mvpbukrobp` (
+  `col_hkfndsohtj` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL,
+  `col_gepoechcst` char(1) DEFAULT NULL,
+  `col_hgaiklgzif` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT NULL,
+  `col_ndfdyxpuhz` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `col_vrsytgjrfw` date DEFAULT '2019-07-04',
+  `col_vlgjlismyz` text,
+  `col_jbqfyecqez` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 6 - 0
parse/src/test/resources/ddl/alter/mysql_63.sql

@@ -0,0 +1,6 @@
+CREATE TABLE `tb_txslclddib` (
+  `col_fflqfgfdyt` varchar(26) CHARACTER SET utf8mb4 NOT NULL DEFAULT '',
+  `col_yvgymfxalr` year(4) DEFAULT '2019',
+  `col_vkgmvcluzx` bigint(20) unsigned zerofill DEFAULT NULL,
+  `col_mnviktcwsx` blob
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 10 - 0
parse/src/test/resources/ddl/alter/mysql_64.sql

@@ -0,0 +1,10 @@
+CREATE TABLE `tb_vyhepkdocw` (
+  `col_yqmzdxesrj` timestamp NULL DEFAULT NULL,
+  `col_slupqsxneh` decimal(14,0) DEFAULT NULL,
+  `col_chvhleyulg` tinytext,
+  `col_getqnnhjry` date DEFAULT NULL,
+  `col_ahjuyzjbhk` bit(1) DEFAULT NULL,
+  `col_daemlskcfa` double DEFAULT NULL,
+  UNIQUE KEY `col_slupqsxneh` (`col_slupqsxneh`),
+  UNIQUE KEY `col_onhyboljxa` (`col_slupqsxneh`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 14 - 0
parse/src/test/resources/ddl/alter/mysql_65.sql

@@ -0,0 +1,14 @@
+CREATE TABLE `tb_ambgylvzkp` (
+  `col_smbnzspzed` date DEFAULT NULL,
+  `col_ebfnpjymeg` tinytext CHARACTER SET utf8mb4,
+  `col_llpqomujks` varchar(24) CHARACTER SET latin1 NOT NULL DEFAULT '',
+  `col_eeieaubbdp` decimal(12,0) DEFAULT NULL,
+  `col_evvhlyienk` char(172) CHARACTER SET utf8mb4 DEFAULT NULL,
+  PRIMARY KEY (`col_llpqomujks`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_rnradhkfon` (
+  `col_sbuommslma` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
+  `col_corovzewna` date DEFAULT '2019-07-04',
+  UNIQUE KEY `col_sbuommslma` (`col_sbuommslma`),
+  UNIQUE KEY `col_sbuommslma_2` (`col_sbuommslma`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_66.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_gnbqbndsaw` (
+  `col_pqnfhpfywv` datetime DEFAULT '2019-07-04 00:00:00'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_67.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_wzvjzesyqu` (
+  `col_zlboqlzvrz` binary(0) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_68.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_vmghxdnngw` (
+  `col_cuofmwfcxy` tinytext
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 12 - 0
parse/src/test/resources/ddl/alter/mysql_69.sql

@@ -0,0 +1,12 @@
+CREATE TABLE `tb_tilukdjjhc` (
+  `col_kxelvjyosf` int(150) DEFAULT NULL,
+  `col_loxvzbzvge` char(1) CHARACTER SET utf8 DEFAULT NULL,
+  `col_laleouwpiw` int(11) NOT NULL DEFAULT '1',
+  `col_fgidnnqvqm` year(4) NOT NULL,
+  `col_pmqkhijpcr` varbinary(71) DEFAULT '\0',
+  `col_uzxvkpgggz` mediumblob,
+  `col_jtyftybbku` decimal(13,5) NOT NULL,
+  `col_olnmovdyfw` bit(3) DEFAULT b'0',
+  `col_kcysycgbek` longblob,
+  `col_idhlrzdwud` char(1) CHARACTER SET utf8 NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_7.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_nuprsugtcj` (
+  `col_qwsjkklpfs` set('enum_or_set_0','enum_or_set_1','enum_or_set_2')
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_70.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_wqthgwmnob` (
+  `col_enozfpzijr` date DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_71.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_sfwkwlflbi` (
+  `col_wryzwhfdap` mediumtext CHARACTER SET utf8 COLLATE utf8_unicode_ci
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 4 - 0
parse/src/test/resources/ddl/alter/mysql_72.sql

@@ -0,0 +1,4 @@
+CREATE TABLE `tb_cugzkpefkt` (
+  `col_xnhktpwgoy` tinyblob,
+  UNIQUE KEY `uk_anpzhhtomg` (`col_xnhktpwgoy`(16))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 17 - 0
parse/src/test/resources/ddl/alter/mysql_73.sql

@@ -0,0 +1,17 @@
+CREATE TABLE `tb_upzbnfzylo` (
+  `col_dppomywdgn` tinyblob,
+  `col_hybjpvnihc` mediumblob,
+  `col_nvqsfunmve` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_rvwyvmeidf` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL DEFAULT 'enum_or_set_0',
+  PRIMARY KEY (`col_rvwyvmeidf`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_rmmpcdzkft` (
+  `col_dppomywdgn` tinyblob,
+  `col_hybjpvnihc` mediumblob,
+  `col_nvqsfunmve` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_rvwyvmeidf` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL DEFAULT 'enum_or_set_0',
+  PRIMARY KEY (`col_rvwyvmeidf`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_zixkylluol` (
+  `col_psutzipcit` int(29) unsigned zerofill
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 11 - 0
parse/src/test/resources/ddl/alter/mysql_74.sql

@@ -0,0 +1,11 @@
+CREATE TABLE `tb_tazkjnlgrx` (
+  `col_ewzdxvnlrs` bit(1) NOT NULL DEFAULT b'0',
+  `col_trhadxfbfi` decimal(10,0) DEFAULT NULL,
+  `col_jxosxbunsc` double(179,7) DEFAULT NULL,
+  `col_jijmncnsoa` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0',
+  `col_gxpgglefyh` char(40) CHARACTER SET utf8mb4 DEFAULT NULL,
+  `col_pgtqyvckbi` time DEFAULT NULL,
+  `col_vbsyfqxqng` mediumblob,
+  PRIMARY KEY (`col_ewzdxvnlrs`),
+  UNIQUE KEY `uk_ygarqhlsva` (`col_jxosxbunsc`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_75.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_mpjfjmkbwn` (
+  `col_lyrrpdesag` bigint(20) unsigned zerofill DEFAULT NULL,
+  `col_eyzpohpkcl` int(10) unsigned zerofill NOT NULL,
+  `col_fehlmkpxfq` char(1) CHARACTER SET latin1 DEFAULT NULL,
+  `col_oqfdewvoin` bigint(20) unsigned DEFAULT NULL,
+  UNIQUE KEY `uk_odozsruufn` (`col_fehlmkpxfq`),
+  UNIQUE KEY `col_lyrrpdesag` (`col_lyrrpdesag`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 8 - 0
parse/src/test/resources/ddl/alter/mysql_76.sql

@@ -0,0 +1,8 @@
+CREATE TABLE `tb_bxtlrumrtn` (
+  `col_uttbttlgkx` smallint(181) unsigned DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+CREATE TABLE `tb_irclltefag` (
+  `col_iabzixqyhm` tinyblob,
+  `col_otoxjlwatj` date DEFAULT '2019-07-04',
+  UNIQUE KEY `col_otoxjlwatj` (`col_otoxjlwatj`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 9 - 0
parse/src/test/resources/ddl/alter/mysql_77.sql

@@ -0,0 +1,9 @@
+CREATE TABLE `tb_igmuoxapjx` (
+  `col_cvsykxnvpf` varchar(24) DEFAULT ''
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_wmwynbzgyg` (
+  `col_iupsnmieyl` smallint(5) unsigned DEFAULT NULL,
+  `col_gnkgsewitj` decimal(10,0) DEFAULT '1',
+  `col_cvsykxnvpf` varchar(24) DEFAULT '',
+  `col_xailqzhuwy` blob
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 4 - 0
parse/src/test/resources/ddl/alter/mysql_78.sql

@@ -0,0 +1,4 @@
+CREATE TABLE `tb_cockfzvkou` (
+  `col_atkczpjiqk` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL,
+  UNIQUE KEY `uk_cxmeeaqnza` (`col_atkczpjiqk`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 7 - 0
parse/src/test/resources/ddl/alter/mysql_79.sql

@@ -0,0 +1,7 @@
+CREATE TABLE `tb_zwzsaathnd` (
+  `col_rqumywduzu` time DEFAULT NULL,
+  `col_jzcpwtvvhi` decimal(10,0) NOT NULL DEFAULT '1',
+  `col_vcejogynpm` time DEFAULT NULL,
+  `col_dseumehqur` tinyblob,
+  `col_xxmdywhgie` mediumint(9) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
parse/src/test/resources/ddl/alter/mysql_8.sql

@@ -0,0 +1,3 @@
+CREATE TABLE `tb_hmfoniytbf` (
+  `col_urfoabrjor` bit(15) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 15 - 0
parse/src/test/resources/ddl/alter/mysql_80.sql

@@ -0,0 +1,15 @@
+CREATE TABLE `tb_tmotlxzrja` (
+  `col_uesfklwmsk` date DEFAULT '2019-07-04',
+  `col_zskjzqcxkk` varbinary(218) DEFAULT '\0',
+  `col_rvztkthbca` time(6) DEFAULT NULL,
+  `col_mpmkktdhop` mediumblob,
+  `col_tgjhdvpopd` year(4) DEFAULT NULL,
+  `col_erywvwybme` int(13) DEFAULT '1',
+  `col_glrqptmjgp` varbinary(172) DEFAULT NULL,
+  `col_soiyoovkol` char(1) CHARACTER SET utf8mb4 DEFAULT NULL,
+  `col_wppxtgrjdz` tinyblob
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_amkojtlotu` (
+  `col_zzhxpptdgq` longblob,
+  UNIQUE KEY `uk_voojzaxmwk` (`col_zzhxpptdgq`(21))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;

+ 9 - 0
parse/src/test/resources/ddl/alter/mysql_9.sql

@@ -0,0 +1,9 @@
+CREATE TABLE `tb_sqndbrgkvj` (
+  `col_mueqvldinf` int(10) unsigned DEFAULT '1',
+  `col_rtbkufevvv` smallint(5) unsigned zerofill DEFAULT NULL,
+  `col_xuafealoty` float DEFAULT NULL,
+  `col_plylqkvjll` time(5) DEFAULT NULL,
+  `col_pymdrmukax` double DEFAULT NULL,
+  `col_prvruzvlqp` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
+  UNIQUE KEY `col_plylqkvjll` (`col_plylqkvjll`,`col_pymdrmukax`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 16 - 0
parse/src/test/resources/ddl/alter/test_1.sql

@@ -0,0 +1,16 @@
+CREATE TABLE `tb_ijlfoushao` (
+  `col_ldgkfndhbx` tinytext CHARACTER SET utf8,
+  `col_bgzuestpsr` bit(47) DEFAULT b'0'
+) DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_ijlfoushao` TO `tb_fmmsfdptfj`;
+RENAME TABLE `tb_fmmsfdptfj` TO `tb_bthnyesbdu`;
+RENAME TABLE `tb_bthnyesbdu` TO `tb_rpwzfoyxgb`;
+ALTER TABLE `tb_rpwzfoyxgb` ADD COLUMN `col_mpjirrklef` text(161554088) CHARACTER SET utf8mb4;
+ALTER TABLE `tb_rpwzfoyxgb` ADD COLUMN `col_ymhswmzvva` time NULL FIRST;
+ALTER TABLE `tb_rpwzfoyxgb` ADD `col_hxpgdeuejv` blob;
+ALTER TABLE `tb_rpwzfoyxgb` ADD (`col_uuvxfsqeat` tinyint NOT NULL DEFAULT '1', `col_hvwlhidvlq` int(166) NULL);
+ALTER TABLE `tb_rpwzfoyxgb` ADD CONSTRAINT PRIMARY KEY (`col_uuvxfsqeat`);
+ALTER TABLE `tb_rpwzfoyxgb` CHANGE COLUMN `col_ymhswmzvva` `col_cuhqbcsmob` smallint(198) unsigned DEFAULT '1';
+ALTER TABLE `tb_rpwzfoyxgb` DROP COLUMN `col_bgzuestpsr`, DROP COLUMN `col_hxpgdeuejv`;
+ALTER TABLE `tb_rpwzfoyxgb` DROP `col_cuhqbcsmob`, DROP `col_hvwlhidvlq`;
+ALTER TABLE `tb_rpwzfoyxgb` DROP COLUMN `col_uuvxfsqeat`, DROP COLUMN `col_ldgkfndhbx`;

+ 16 - 0
parse/src/test/resources/ddl/alter/test_10.sql

@@ -0,0 +1,16 @@
+CREATE TABLE `tb_xckrjwodah` (
+  `col_pspaxkzovq` decimal,
+  UNIQUE KEY `col_pspaxkzovq` (`col_pspaxkzovq`),
+  UNIQUE INDEX `uk_vkwgrmlfqc` (`col_pspaxkzovq`)
+) DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_xckrjwodah` TO `tb_ivkfbysugn`;
+RENAME TABLE `tb_ivkfbysugn` TO `tb_suvmojlodk`;
+RENAME TABLE `tb_suvmojlodk` TO `tb_ubziprstga`;
+ALTER TABLE `tb_ubziprstga` ADD `col_bjmlsboygo` text AFTER `col_pspaxkzovq`;
+ALTER TABLE `tb_ubziprstga` ADD COLUMN (`col_ayuqjzbbwg` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'enum_or_set_0', `col_fjhnhxlfmc` decimal(29,23));
+ALTER TABLE `tb_ubziprstga` CHARACTER SET utf8mb4;
+ALTER TABLE `tb_ubziprstga` CHANGE COLUMN `col_ayuqjzbbwg` `col_slcmuapykg` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4 DEFAULT 'enum_or_set_0' FIRST;
+ALTER TABLE `tb_ubziprstga` CHANGE `col_pspaxkzovq` `col_mlpyhxlthp` bit NOT NULL;
+ALTER TABLE `tb_ubziprstga` DROP `col_mlpyhxlthp`;
+ALTER TABLE `tb_ubziprstga` DROP COLUMN `col_fjhnhxlfmc`;
+ALTER TABLE `tb_ubziprstga` DROP COLUMN `col_slcmuapykg`;

+ 46 - 0
parse/src/test/resources/ddl/alter/test_11.sql

@@ -0,0 +1,46 @@
+CREATE TABLE `tb_urvrplctvm` (
+  `col_nhgbwyjskp` timestamp(3) NULL,
+  `col_tafveczsvk` datetime(5),
+  `col_kzrjsjtgnj` bigint(192) zerofill,
+  UNIQUE INDEX `col_nhgbwyjskp` (`col_nhgbwyjskp`),
+  UNIQUE `uk_zizxxnbpva` (`col_nhgbwyjskp`)
+) DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_ugiidczptx` (
+  `col_fklmphgxdx` mediumtext CHARACTER SET utf8,
+  UNIQUE KEY `col_fklmphgxdx` (`col_fklmphgxdx`(1))
+) DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_ehakozpvcb` LIKE `tb_ugiidczptx`;
+RENAME TABLE `tb_ehakozpvcb` TO `tb_qgeelwokgc`;
+DROP TABLE tb_ugiidczptx, tb_qgeelwokgc;
+DROP TABLE tb_urvrplctvm;
+CREATE TABLE `tb_ytaiteijaz` (
+  `col_tudnbijtqu` time NULL,
+  `col_lxtrjmhpmr` year,
+  `col_wvvanapjlz` timestamp NOT NULL,
+  PRIMARY KEY (`col_wvvanapjlz`),
+  UNIQUE `uk_pffwfanush` (`col_wvvanapjlz`)
+) DEFAULT CHARSET=utf8;
+ALTER TABLE `tb_ytaiteijaz` ADD (`col_rjguymssfi` tinyint(83) unsigned DEFAULT '1', `col_vapswtjoqo` smallint unsigned zerofill NOT NULL);
+ALTER TABLE `tb_ytaiteijaz` ADD COLUMN (`col_xnljwkzjad` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0', `col_kajgusvxkq` smallint(75));
+ALTER TABLE `tb_ytaiteijaz` ADD COLUMN `col_adlsfkuaee` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') AFTER `col_vapswtjoqo`;
+ALTER TABLE `tb_ytaiteijaz` ADD `col_ohppccpxlg` datetime NOT NULL DEFAULT '2019-07-04 00:00:00';
+ALTER TABLE `tb_ytaiteijaz` ADD `col_wougwncovl` decimal(28,22) NULL;
+ALTER TABLE `tb_ytaiteijaz` ADD COLUMN (`col_qdhtjqsfti` mediumblob, `col_ryjkfjtwvk` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2'));
+ALTER TABLE `tb_ytaiteijaz` ADD COLUMN `col_gcahrhoadr` tinyblob;
+ALTER TABLE `tb_ytaiteijaz` ADD `col_ihtpuurapz` bit(28) AFTER `col_vapswtjoqo`;
+ALTER TABLE `tb_ytaiteijaz` ADD COLUMN `col_agolscsuau` char(106) NULL;
+ALTER TABLE `tb_ytaiteijaz` ADD UNIQUE KEY `col_kajgusvxkq`(`col_kajgusvxkq`,`col_wougwncovl`);
+ALTER TABLE `tb_ytaiteijaz` ADD UNIQUE (`col_vapswtjoqo`);
+ALTER TABLE `tb_ytaiteijaz` ALTER `col_wougwncovl` DROP DEFAULT;
+ALTER TABLE `tb_ytaiteijaz` CHANGE COLUMN `col_gcahrhoadr` `col_huflgowphp` mediumint unsigned zerofill AFTER `col_tudnbijtqu`;
+ALTER TABLE `tb_ytaiteijaz` CHANGE COLUMN `col_huflgowphp` `col_wghwzcsnsa` text CHARACTER SET utf8mb4 FIRST;
+ALTER TABLE `tb_ytaiteijaz` CHANGE `col_tudnbijtqu` `col_pwojmgycov` bigint unsigned zerofill NULL AFTER `col_ohppccpxlg`;
+ALTER TABLE `tb_ytaiteijaz` DROP `col_qdhtjqsfti`;
+ALTER TABLE `tb_ytaiteijaz` DROP COLUMN `col_ohppccpxlg`;
+ALTER TABLE `tb_ytaiteijaz` DROP COLUMN `col_wghwzcsnsa`;
+ALTER TABLE `tb_ytaiteijaz` DROP COLUMN `col_adlsfkuaee`, DROP COLUMN `col_agolscsuau`;
+ALTER TABLE `tb_ytaiteijaz` DROP COLUMN `col_ihtpuurapz`, DROP COLUMN `col_vapswtjoqo`;
+ALTER TABLE `tb_ytaiteijaz` DROP COLUMN `col_ryjkfjtwvk`;
+ALTER TABLE `tb_ytaiteijaz` DROP COLUMN `col_wougwncovl`, DROP COLUMN `col_rjguymssfi`;
+ALTER TABLE `tb_ytaiteijaz` DROP PRIMARY KEY;
+ALTER TABLE `tb_ytaiteijaz` DROP KEY `col_kajgusvxkq`;

+ 54 - 0
parse/src/test/resources/ddl/alter/test_12.sql

@@ -0,0 +1,54 @@
+CREATE TABLE `tb_izihmqlvrc` (
+  `col_niyefsuvyu` time NOT NULL,
+  `col_wtkibsyxum` blob(2345255919),
+  `col_cdltiwnbvu` bigint,
+  `col_prrfzwipjb` datetime(0) NULL,
+  CONSTRAINT symb_fjxbkxuxip PRIMARY KEY (`col_niyefsuvyu`),
+  UNIQUE KEY `uk_gdipvvuekw` (`col_cdltiwnbvu`),
+  UNIQUE INDEX `uk_ksyxhyhtqd` (`col_wtkibsyxum`(22),`col_cdltiwnbvu`)
+) DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_fnxaykfskl` (
+  `col_rqdbfezzoe` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 COLLATE utf8_unicode_ci,
+  UNIQUE `uk_lvhtqnyvmw` (`col_rqdbfezzoe`),
+  UNIQUE INDEX `col_rqdbfezzoe` (`col_rqdbfezzoe`)
+) DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_xyumhtxajs` (
+  `col_vfmmubhple` datetime NULL,
+  `col_dedkqeyizw` int unsigned NULL DEFAULT '1',
+  `col_imfsauznol` longtext CHARACTER SET utf8mb4,
+  `col_jqxasrchdv` double(240,6) NOT NULL,
+  PRIMARY KEY (`col_jqxasrchdv`)
+) DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_xyumhtxajs` TO `tb_dwdawlyulx`, `tb_izihmqlvrc` TO `tb_tqqjgqvlty`;
+RENAME TABLE `tb_tqqjgqvlty` TO `tb_vltiykvgrd`;
+RENAME TABLE `tb_vltiykvgrd` TO `tb_fswsddbzby`;
+DROP TABLE tb_dwdawlyulx;
+DROP TABLE tb_fnxaykfskl, tb_fswsddbzby;
+CREATE TABLE `tb_jhqwojqbtj` (
+  `col_byfkvdrjfx` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4,
+  `col_unzkrhvwzx` integer unsigned zerofill,
+  `col_nnvyxvtluu` int(255) unsigned DEFAULT '1',
+  `col_flcxltquqr` longtext CHARACTER SET latin1
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+ALTER TABLE `tb_jhqwojqbtj` ADD COLUMN (`col_tbaacjfxyz` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL, `col_xswcrnwfit` mediumblob);
+ALTER TABLE `tb_jhqwojqbtj` ADD COLUMN `col_ksprsgkzrb` text(912789829) CHARACTER SET utf8mb4;
+ALTER TABLE `tb_jhqwojqbtj` ADD COLUMN (`col_yhizzxtwet` integer unsigned, `col_mcyfebamvx` smallint(85) DEFAULT '1');
+ALTER TABLE `tb_jhqwojqbtj` ADD (`col_bsjtvoujom` bit(55) NOT NULL DEFAULT b'0', `col_ndohgxbgox` float DEFAULT '1');
+ALTER TABLE `tb_jhqwojqbtj` ADD (`col_egszzxhsvf` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL DEFAULT 'enum_or_set_0', `col_kycviiihvh` date);
+ALTER TABLE `tb_jhqwojqbtj` ADD (`col_bqcpudnbtu` integer(189) NULL DEFAULT '1', `col_sexypgjnak` date DEFAULT '2019-07-04');
+ALTER TABLE `tb_jhqwojqbtj` ADD `col_hemnlexcdd` int zerofill FIRST;
+ALTER TABLE `tb_jhqwojqbtj` ADD (`col_pntvqnccno` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4 NOT NULL, `col_vedygstsxf` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0));
+ALTER TABLE `tb_jhqwojqbtj` ADD COLUMN (`col_qabskemxzo` tinyint(23) unsigned zerofill, `col_tnkspeksfi` tinytext);
+ALTER TABLE `tb_jhqwojqbtj` ADD PRIMARY KEY (`col_tbaacjfxyz`);
+ALTER TABLE `tb_jhqwojqbtj` ALTER `col_egszzxhsvf` DROP DEFAULT;
+ALTER TABLE `tb_jhqwojqbtj` CHANGE `col_unzkrhvwzx` `col_gwajcvodth` year(4) NOT NULL DEFAULT '2019';
+ALTER TABLE `tb_jhqwojqbtj` CHANGE COLUMN `col_bqcpudnbtu` `col_cuzojqplje` year DEFAULT '2019';
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_qabskemxzo`, DROP `col_vedygstsxf`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_byfkvdrjfx`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_tbaacjfxyz`, DROP `col_kycviiihvh`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_mcyfebamvx`;
+ALTER TABLE `tb_jhqwojqbtj` DROP COLUMN `col_yhizzxtwet`, DROP COLUMN `col_bsjtvoujom`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_tnkspeksfi`, DROP `col_xswcrnwfit`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_nnvyxvtluu`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_pntvqnccno`, DROP `col_hemnlexcdd`;
+ALTER TABLE `tb_jhqwojqbtj` DROP `col_gwajcvodth`;

+ 26 - 0
parse/src/test/resources/ddl/alter/test_13.sql

@@ -0,0 +1,26 @@
+CREATE TABLE `tb_tmeujebigu` (
+  `col_vexgpiotuy` binary,
+  `col_uouidnfxfe` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_tmeujebigu` TO `tb_vqlldbakax`;
+RENAME TABLE `tb_vqlldbakax` TO `tb_xduxzgfsux`;
+RENAME TABLE `tb_xduxzgfsux` TO `tb_yfhnotrnrt`;
+ALTER TABLE `tb_yfhnotrnrt` ADD COLUMN (`col_cueciidhfy` timestamp(1) NULL DEFAULT CURRENT_TIMESTAMP(1), `col_xebqcglpvr` char);
+ALTER TABLE `tb_yfhnotrnrt` ADD (`col_cvhurmqyru` tinyint(52) zerofill NOT NULL, `col_gdsggqabpa` mediumblob);
+ALTER TABLE `tb_yfhnotrnrt` ADD (`col_mstusvmhpu` tinytext CHARACTER SET utf8mb4, `col_dyphdacvvd` tinytext CHARACTER SET utf8mb4);
+ALTER TABLE `tb_yfhnotrnrt` ADD COLUMN (`col_ulwbtrmfes` smallint unsigned DEFAULT '1', `col_xgueitftmx` float(247,18));
+ALTER TABLE `tb_yfhnotrnrt` ADD (`col_spogbqhjrx` date NOT NULL, `col_ormwjqfbxi` int(193) unsigned zerofill NULL);
+ALTER TABLE `tb_yfhnotrnrt` ADD COLUMN `col_iruzsjhmbm` varbinary(83) DEFAULT '\0';
+ALTER TABLE `tb_yfhnotrnrt` CHARACTER SET utf8;
+ALTER TABLE `tb_yfhnotrnrt` ALTER COLUMN `col_iruzsjhmbm` DROP DEFAULT;
+ALTER TABLE `tb_yfhnotrnrt` ALTER COLUMN `col_ormwjqfbxi` SET DEFAULT NULL;
+ALTER TABLE `tb_yfhnotrnrt` ALTER COLUMN `col_xgueitftmx` DROP DEFAULT;
+ALTER TABLE `tb_yfhnotrnrt` CHANGE `col_ulwbtrmfes` `col_kednlljjiu` date NOT NULL DEFAULT '2019-07-04' AFTER `col_gdsggqabpa`;
+ALTER TABLE `tb_yfhnotrnrt` CHANGE `col_xebqcglpvr` `col_qslraszfyz` longtext CHARACTER SET utf8mb4;
+ALTER TABLE `tb_yfhnotrnrt` CHANGE `col_kednlljjiu` `col_irqdemfadw` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4 DEFAULT 'enum_or_set_0';
+ALTER TABLE `tb_yfhnotrnrt` DROP `col_gdsggqabpa`;
+ALTER TABLE `tb_yfhnotrnrt` DROP COLUMN `col_uouidnfxfe`;
+ALTER TABLE `tb_yfhnotrnrt` DROP COLUMN `col_irqdemfadw`;
+ALTER TABLE `tb_yfhnotrnrt` DROP `col_cueciidhfy`, DROP `col_mstusvmhpu`;
+ALTER TABLE `tb_yfhnotrnrt` DROP COLUMN `col_spogbqhjrx`;
+ALTER TABLE `tb_yfhnotrnrt` DROP `col_iruzsjhmbm`, DROP `col_cvhurmqyru`;

+ 27 - 0
parse/src/test/resources/ddl/alter/test_14.sql

@@ -0,0 +1,27 @@
+CREATE TABLE `tb_mzhjgiljck` (
+  `col_lnqceyzqyi` mediumint DEFAULT '1',
+  `col_rorzwqbqzc` varbinary(190) NULL,
+  `col_qfegkgeaal` tinyint unsigned DEFAULT '1',
+  UNIQUE `uk_nvoltofkla` (`col_rorzwqbqzc`(15))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_jwpndmdumd` (
+  `col_vpupwhoacr` bit(52) DEFAULT b'0',
+  UNIQUE `uk_ghdynafkbb` (`col_vpupwhoacr`),
+  UNIQUE `uk_pdhqnqgdnh` (`col_vpupwhoacr`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_jwpndmdumd` TO `tb_xnqicybdlo`, `tb_mzhjgiljck` TO `tb_cmzqttalvi`;
+ALTER TABLE `tb_xnqicybdlo` ADD COLUMN `col_jzysxyqbvv` binary(91) NULL;
+ALTER TABLE `tb_xnqicybdlo` ADD `col_ldvvuuqjus` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0' FIRST;
+ALTER TABLE `tb_xnqicybdlo` ADD (`col_drciitekzb` longblob, `col_ocncfebity` numeric(32,27));
+ALTER TABLE `tb_xnqicybdlo` ADD `col_uzoealeegi` binary;
+ALTER TABLE `tb_xnqicybdlo` ADD COLUMN (`col_qnchccpalx` binary(157) NULL, `col_daawnfezqe` datetime(1) NULL);
+ALTER TABLE `tb_xnqicybdlo` ADD UNIQUE INDEX (`col_jzysxyqbvv`(31),`col_uzoealeegi`);
+ALTER TABLE `tb_xnqicybdlo` ADD UNIQUE `uk_spjmyismss` (`col_ldvvuuqjus`);
+ALTER TABLE `tb_xnqicybdlo` ALTER COLUMN `col_uzoealeegi` SET DEFAULT NULL;
+ALTER TABLE `tb_xnqicybdlo` ALTER COLUMN `col_jzysxyqbvv` DROP DEFAULT;
+ALTER TABLE `tb_xnqicybdlo` ALTER COLUMN `col_qnchccpalx` DROP DEFAULT;
+ALTER TABLE `tb_xnqicybdlo` DROP `col_vpupwhoacr`;
+ALTER TABLE `tb_xnqicybdlo` DROP COLUMN `col_daawnfezqe`, DROP COLUMN `col_uzoealeegi`;
+ALTER TABLE `tb_xnqicybdlo` DROP `col_ocncfebity`, DROP `col_ldvvuuqjus`;
+ALTER TABLE `tb_xnqicybdlo` DROP `col_qnchccpalx`;
+ALTER TABLE `tb_xnqicybdlo` DROP `col_drciitekzb`;

+ 30 - 0
parse/src/test/resources/ddl/alter/test_15.sql

@@ -0,0 +1,30 @@
+CREATE TABLE `tb_odalwcctzo` (
+  `col_zfwcescosm` bit,
+  `col_gvrsiekgpu` mediumint NULL,
+  `col_luknerkzbg` year
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_ypebrnimav` LIKE `tb_odalwcctzo`;
+RENAME TABLE `tb_odalwcctzo` TO `tb_hgbecqwvnf`, `tb_ypebrnimav` TO `tb_dqeiczpcpp`;
+ALTER TABLE `tb_hgbecqwvnf` ADD COLUMN (`col_iomejxwfzh` timestamp, `col_dqpoxmoyzl` bigint(111) unsigned NULL DEFAULT '1');
+ALTER TABLE `tb_hgbecqwvnf` ADD COLUMN (`col_ocmmfdzihr` tinytext, `col_thbfgmggyp` blob);
+ALTER TABLE `tb_hgbecqwvnf` ADD COLUMN `col_nyrvlflfiz` mediumblob FIRST;
+ALTER TABLE `tb_hgbecqwvnf` ADD COLUMN `col_cdafuglmqd` mediumblob AFTER `col_ocmmfdzihr`;
+ALTER TABLE `tb_hgbecqwvnf` ADD (`col_ibpfuqwtka` integer(152) zerofill NOT NULL, `col_mfbftkexwt` time(4) NULL);
+ALTER TABLE `tb_hgbecqwvnf` ADD `col_rfnetihhhs` numeric(15) NOT NULL AFTER `col_ibpfuqwtka`;
+ALTER TABLE `tb_hgbecqwvnf` ADD `col_shfhtlxxhg` bigint unsigned zerofill;
+ALTER TABLE `tb_hgbecqwvnf` ADD (`col_jhaqzczhxe` mediumblob, `col_gfdmpyoigq` time(1));
+ALTER TABLE `tb_hgbecqwvnf` CHARACTER SET = utf8mb4;
+ALTER TABLE `tb_hgbecqwvnf` ADD CONSTRAINT symb_vxlhuityyt PRIMARY KEY (`col_iomejxwfzh`);
+ALTER TABLE `tb_hgbecqwvnf` ADD UNIQUE `uk_lsuitvpjev` (`col_iomejxwfzh`,`col_dqpoxmoyzl`);
+ALTER TABLE `tb_hgbecqwvnf` ADD UNIQUE `col_luknerkzbg`(`col_luknerkzbg`,`col_dqpoxmoyzl`);
+ALTER TABLE `tb_hgbecqwvnf` ALTER `col_rfnetihhhs` DROP DEFAULT;
+ALTER TABLE `tb_hgbecqwvnf` ALTER COLUMN `col_dqpoxmoyzl` SET DEFAULT '1';
+ALTER TABLE `tb_hgbecqwvnf` CHANGE `col_luknerkzbg` `col_ulsyzrcnlh` float(35) NULL;
+ALTER TABLE `tb_hgbecqwvnf` CHANGE `col_ulsyzrcnlh` `col_qppnejcxiu` binary(137) FIRST;
+ALTER TABLE `tb_hgbecqwvnf` DROP COLUMN `col_shfhtlxxhg`;
+ALTER TABLE `tb_hgbecqwvnf` DROP COLUMN `col_iomejxwfzh`, DROP COLUMN `col_cdafuglmqd`;
+ALTER TABLE `tb_hgbecqwvnf` DROP COLUMN `col_thbfgmggyp`, DROP COLUMN `col_mfbftkexwt`;
+ALTER TABLE `tb_hgbecqwvnf` DROP COLUMN `col_ibpfuqwtka`, DROP COLUMN `col_ocmmfdzihr`;
+ALTER TABLE `tb_hgbecqwvnf` DROP COLUMN `col_gvrsiekgpu`;
+ALTER TABLE `tb_hgbecqwvnf` DROP KEY `uk_lsuitvpjev`;
+ALTER TABLE `tb_hgbecqwvnf` DROP INDEX `col_luknerkzbg`;

+ 35 - 0
parse/src/test/resources/ddl/alter/test_16.sql

@@ -0,0 +1,35 @@
+CREATE TABLE `tb_baxubvrijb` (
+  `col_kcwxoovscx` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 DEFAULT 'enum_or_set_0',
+  `col_fpfpelfmso` float(57,8) NULL,
+  `col_dbtkzzfxoi` varbinary(22) NOT NULL,
+  CONSTRAINT symb_hrwhbxnbts PRIMARY KEY (`col_dbtkzzfxoi`(10)),
+  UNIQUE `col_dbtkzzfxoi` (`col_dbtkzzfxoi`(2)),
+  UNIQUE KEY `col_fpfpelfmso` (`col_fpfpelfmso`,`col_dbtkzzfxoi`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_ddzfshecwo` (
+  `col_rryluiawnq` varchar(24) CHARACTER SET latin1 DEFAULT '',
+  `col_bdlbhtissa` year(4) NULL,
+  `col_kfawipagkn` tinyblob
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+RENAME TABLE `tb_ddzfshecwo` TO `tb_bcsetyvuul`, `tb_baxubvrijb` TO `tb_nxbyklxowd`;
+RENAME TABLE `tb_bcsetyvuul` TO `tb_dlnhztodao`;
+ALTER TABLE `tb_nxbyklxowd` ADD `col_zkfycwevvo` time;
+ALTER TABLE `tb_nxbyklxowd` ADD COLUMN (`col_ememhbgtcx` bit NULL DEFAULT b'0', `col_zrrfkkosvo` char(203) CHARACTER SET utf8mb4);
+ALTER TABLE `tb_nxbyklxowd` ADD (`col_fpafdojbdn` decimal(9,9) NULL, `col_juolcidyaj` datetime DEFAULT '2019-07-04 00:00:00');
+ALTER TABLE `tb_nxbyklxowd` ADD `col_qhgfympzxa` longtext;
+ALTER TABLE `tb_nxbyklxowd` ADD COLUMN (`col_tymlykugck` integer(83) zerofill, `col_awkvpagorc` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'enum_or_set_0');
+ALTER TABLE `tb_nxbyklxowd` ADD COLUMN `col_crrxfxfdzs` datetime(0);
+ALTER TABLE `tb_nxbyklxowd` ADD COLUMN (`col_cgdxdxesyd` decimal NOT NULL, `col_pjkofcyiht` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 DEFAULT 'enum_or_set_0');
+ALTER TABLE `tb_nxbyklxowd` ADD COLUMN `col_iiqainhxkc` smallint(81) zerofill NULL;
+ALTER TABLE `tb_nxbyklxowd` ADD (`col_kbnueyzmpm` tinyblob, `col_zixjkfdybk` binary NOT NULL);
+ALTER TABLE `tb_nxbyklxowd` CHARACTER SET = utf8mb4;
+ALTER TABLE `tb_nxbyklxowd` ADD UNIQUE `col_cgdxdxesyd`(`col_cgdxdxesyd`,`col_iiqainhxkc`);
+ALTER TABLE `tb_nxbyklxowd` ADD UNIQUE KEY `uk_regnlkocpv` (`col_zrrfkkosvo`(16),`col_fpafdojbdn`);
+ALTER TABLE `tb_nxbyklxowd` ALTER `col_dbtkzzfxoi` DROP DEFAULT;
+ALTER TABLE `tb_nxbyklxowd` ALTER `col_iiqainhxkc` DROP DEFAULT;
+ALTER TABLE `tb_nxbyklxowd` ALTER `col_kcwxoovscx` DROP DEFAULT;
+ALTER TABLE `tb_nxbyklxowd` CHANGE COLUMN `col_fpfpelfmso` `col_xkzfmyvfvv` smallint DEFAULT '1' FIRST;
+ALTER TABLE `tb_nxbyklxowd` DROP `col_juolcidyaj`, DROP `col_pjkofcyiht`;
+ALTER TABLE `tb_nxbyklxowd` DROP COLUMN `col_xkzfmyvfvv`;
+ALTER TABLE `tb_nxbyklxowd` DROP INDEX `col_cgdxdxesyd`;
+ALTER TABLE `tb_nxbyklxowd` DROP INDEX `uk_regnlkocpv`;

+ 41 - 0
parse/src/test/resources/ddl/alter/test_17.sql

@@ -0,0 +1,41 @@
+CREATE TABLE `tb_aaxiqmpjjd` (
+  `col_psfdpvpotp` integer(136) unsigned
+) DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_axknhurptj` (
+  `col_ezolqkylrw` bigint DEFAULT '1',
+  `col_itrckjigax` tinyint zerofill,
+  `col_vywhhgaozj` year,
+  `col_xdrbsjifvv` datetime(1)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_ciqhkflcci` (
+  `col_dgkncfpqja` bit(46) DEFAULT b'0',
+  UNIQUE `col_dgkncfpqja` (`col_dgkncfpqja`),
+  UNIQUE `uk_kcnspithfv` (`col_dgkncfpqja`)
+) DEFAULT CHARSET=latin1;
+RENAME TABLE `tb_axknhurptj` TO `tb_iilujirnjb`;
+RENAME TABLE `tb_iilujirnjb` TO `tb_aftfwefuwe`;
+DROP TABLE tb_aaxiqmpjjd;
+DROP TABLE tb_ciqhkflcci, tb_aftfwefuwe;
+CREATE TABLE `tb_ygyyvdctrs` (
+  `col_emexlkeymz` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8mb4 DEFAULT 'enum_or_set_0',
+  UNIQUE KEY `uk_kcmgrgarnq` (`col_emexlkeymz`),
+  UNIQUE `col_emexlkeymz` (`col_emexlkeymz`)
+) DEFAULT CHARSET=latin1;
+ALTER TABLE `tb_ygyyvdctrs` ADD COLUMN `col_ljhqsygrcc` mediumtext FIRST;
+ALTER TABLE `tb_ygyyvdctrs` ADD COLUMN (`col_ibmogxgtyp` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') DEFAULT 'enum_or_set_0', `col_lqozcajhii` tinyblob);
+ALTER TABLE `tb_ygyyvdctrs` ADD (`col_yzbwkjwzqw` int zerofill NOT NULL, `col_dmdpojzsct` varbinary(166));
+ALTER TABLE `tb_ygyyvdctrs` ADD `col_oxgbfbgzov` double(112,2);
+ALTER TABLE `tb_ygyyvdctrs` ADD COLUMN `col_hirzxaomit` varbinary(145) NOT NULL FIRST;
+ALTER TABLE `tb_ygyyvdctrs` ADD COLUMN `col_dxgsghrizm` tinyblob;
+ALTER TABLE `tb_ygyyvdctrs` ADD `col_zkdwjtabnw` smallint unsigned NOT NULL AFTER `col_oxgbfbgzov`;
+ALTER TABLE `tb_ygyyvdctrs` ADD COLUMN (`col_bowjbzwvyw` date, `col_inneappfsm` varchar(112) CHARACTER SET utf8mb4);
+ALTER TABLE `tb_ygyyvdctrs` CHARACTER SET utf8;
+ALTER TABLE `tb_ygyyvdctrs` ADD CONSTRAINT PRIMARY KEY (`col_hirzxaomit`(25));
+ALTER TABLE `tb_ygyyvdctrs` ALTER COLUMN `col_ibmogxgtyp` DROP DEFAULT;
+ALTER TABLE `tb_ygyyvdctrs` ALTER COLUMN `col_hirzxaomit` DROP DEFAULT;
+ALTER TABLE `tb_ygyyvdctrs` ALTER COLUMN `col_ibmogxgtyp` SET DEFAULT 'enum_or_set_0';
+ALTER TABLE `tb_ygyyvdctrs` CHANGE COLUMN `col_ljhqsygrcc` `col_rpxmbgbwos` longblob;
+ALTER TABLE `tb_ygyyvdctrs` CHANGE `col_lqozcajhii` `col_qdbxvykcyv` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
+ALTER TABLE `tb_ygyyvdctrs` DROP COLUMN `col_qdbxvykcyv`;
+ALTER TABLE `tb_ygyyvdctrs` DROP PRIMARY KEY;
+ALTER TABLE `tb_ygyyvdctrs` DROP KEY `uk_kcmgrgarnq`;

+ 23 - 0
parse/src/test/resources/ddl/alter/test_18.sql

@@ -0,0 +1,23 @@
+CREATE TABLE `tb_pnracjzmkp` (
+  `col_zoovnitdls` float(13,13),
+  `col_prrcfbnwew` longtext CHARACTER SET utf8mb4,
+  `col_peqguxwzcy` smallint(202) NOT NULL DEFAULT '1'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_qwbjzchejk` LIKE `tb_pnracjzmkp`;
+RENAME TABLE `tb_qwbjzchejk` TO `tb_ezxnrjkvwu`, `tb_pnracjzmkp` TO `tb_jhkrixchju`;
+RENAME TABLE `tb_ezxnrjkvwu` TO `tb_nxqxynvjvx`;
+DROP TABLE tb_nxqxynvjvx;
+ALTER TABLE `tb_jhkrixchju` ADD COLUMN (`col_fpmvnrnoxw` varchar(18) NOT NULL, `col_hrcqpnxnrn` text(1490675533));
+ALTER TABLE `tb_jhkrixchju` ADD COLUMN (`col_iguvbfennm` year(4) NOT NULL, `col_nhdlxtgtvs` char NULL);
+ALTER TABLE `tb_jhkrixchju` ADD `col_vyizooodsa` longblob AFTER `col_nhdlxtgtvs`;
+ALTER TABLE `tb_jhkrixchju` ADD (`col_hwmrzghead` longtext CHARACTER SET utf8mb4, `col_adgnavqmhq` longtext CHARACTER SET utf8mb4);
+ALTER TABLE `tb_jhkrixchju` ADD (`col_adwetrnlyu` bit(41), `col_ypyzwlctxm` varbinary(86) DEFAULT '\0');
+ALTER TABLE `tb_jhkrixchju` ADD (`col_lkdcwbjkis` varbinary(61), `col_rmjdxsrzry` char(159) CHARACTER SET utf8mb4);
+ALTER TABLE `tb_jhkrixchju` ADD (`col_sfmloqjxwi` decimal(33,29) NOT NULL, `col_mcjrxquwtj` binary);
+ALTER TABLE `tb_jhkrixchju` ADD COLUMN (`col_fxxexsgvmq` int(11) unsigned NOT NULL, `col_ilcapoaext` mediumblob);
+ALTER TABLE `tb_jhkrixchju` ADD (`col_dvcgmijmcd` smallint(246) unsigned NOT NULL DEFAULT '1', `col_avjufpxxft` timestamp NULL);
+ALTER TABLE `tb_jhkrixchju` DEFAULT CHARACTER SET = utf8mb4;
+ALTER TABLE `tb_jhkrixchju` DROP `col_fxxexsgvmq`, DROP `col_iguvbfennm`;
+ALTER TABLE `tb_jhkrixchju` DROP `col_zoovnitdls`, DROP `col_lkdcwbjkis`;
+ALTER TABLE `tb_jhkrixchju` DROP COLUMN `col_fpmvnrnoxw`;
+ALTER TABLE `tb_jhkrixchju` DROP `col_sfmloqjxwi`, DROP `col_hrcqpnxnrn`;

+ 16 - 0
parse/src/test/resources/ddl/alter/test_19.sql

@@ -0,0 +1,16 @@
+CREATE TABLE `tb_gbdjlupmhj` (
+  `col_zciuwofqxv` float(151,15)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_yubjqntjhv` LIKE `tb_gbdjlupmhj`;
+RENAME TABLE `tb_yubjqntjhv` TO `tb_obmtwwzsar`, `tb_gbdjlupmhj` TO `tb_acbpixrigq`;
+RENAME TABLE `tb_obmtwwzsar` TO `tb_hefguylckk`, `tb_acbpixrigq` TO `tb_nfcvlzwedu`;
+DROP TABLE tb_nfcvlzwedu;
+ALTER TABLE `tb_hefguylckk` ADD `col_hjucxhsncd` mediumint(206) unsigned zerofill;
+ALTER TABLE `tb_hefguylckk` ADD (`col_bblhcpxxju` tinyblob, `col_fcmfyfomtk` tinyblob);
+ALTER TABLE `tb_hefguylckk` DEFAULT CHARACTER SET = utf8mb4;
+ALTER TABLE `tb_hefguylckk` ADD UNIQUE `uk_qgxgwlyozf` (`col_fcmfyfomtk`(14));
+ALTER TABLE `tb_hefguylckk` ADD UNIQUE INDEX (`col_bblhcpxxju`(25));
+ALTER TABLE `tb_hefguylckk` CHANGE `col_zciuwofqxv` `col_oidtfumfdm` tinyblob;
+ALTER TABLE `tb_hefguylckk` CHANGE `col_oidtfumfdm` `col_qzehomawzl` integer NULL;
+ALTER TABLE `tb_hefguylckk` DROP COLUMN `col_fcmfyfomtk`, DROP COLUMN `col_hjucxhsncd`;
+ALTER TABLE `tb_hefguylckk` DROP COLUMN `col_bblhcpxxju`;

+ 29 - 0
parse/src/test/resources/ddl/alter/test_2.sql

@@ -0,0 +1,29 @@
+CREATE TABLE `tb_kyvyqhwcpi` (
+  `col_pesoyggsjl` mediumblob,
+  `col_hctgmkmyxs` datetime DEFAULT '2019-07-04 00:00:00',
+  `col_kkvhrfifbo` longtext CHARACTER SET utf8,
+  `col_ewyzkapekq` longblob,
+  UNIQUE KEY `uk_jvoonsdsfr` (`col_pesoyggsjl`(32)),
+  UNIQUE INDEX `col_kkvhrfifbo` (`col_kkvhrfifbo`(31))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_kyvyqhwcpi` TO `tb_zyynbdsyib`;
+RENAME TABLE `tb_zyynbdsyib` TO `tb_gcqyhapjeh`;
+ALTER TABLE `tb_gcqyhapjeh` ADD `col_mlfdocnxzd` text CHARACTER SET utf8 FIRST;
+ALTER TABLE `tb_gcqyhapjeh` ADD COLUMN (`col_yxhhhxgwjz` datetime(5) NOT NULL, `col_mqfdtybcrt` longtext);
+ALTER TABLE `tb_gcqyhapjeh` ADD (`col_dszxjztuni` varbinary(68) NOT NULL DEFAULT '\0', `col_sukknvclub` longblob);
+ALTER TABLE `tb_gcqyhapjeh` ADD COLUMN (`col_zhvifnzhjr` tinyint(107) zerofill, `col_fscylalync` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8);
+ALTER TABLE `tb_gcqyhapjeh` ADD `col_ddgcxloigt` bit(6) NULL;
+ALTER TABLE `tb_gcqyhapjeh` ADD (`col_ihidhmecqm` tinytext, `col_icjiguudiw` bigint zerofill);
+ALTER TABLE `tb_gcqyhapjeh` ADD COLUMN `col_hxvzygxblr` binary;
+ALTER TABLE `tb_gcqyhapjeh` ADD (`col_xiszwdtbgk` tinyint zerofill NOT NULL, `col_cdyttfqwra` longblob);
+ALTER TABLE `tb_gcqyhapjeh` ADD `col_jzhdjycrpd` longtext AFTER `col_ewyzkapekq`;
+ALTER TABLE `tb_gcqyhapjeh` ADD UNIQUE (`col_cdyttfqwra`(29));
+ALTER TABLE `tb_gcqyhapjeh` ALTER COLUMN `col_icjiguudiw` DROP DEFAULT;
+ALTER TABLE `tb_gcqyhapjeh` DROP `col_cdyttfqwra`;
+ALTER TABLE `tb_gcqyhapjeh` DROP COLUMN `col_pesoyggsjl`, DROP COLUMN `col_sukknvclub`;
+ALTER TABLE `tb_gcqyhapjeh` DROP `col_dszxjztuni`, DROP `col_xiszwdtbgk`;
+ALTER TABLE `tb_gcqyhapjeh` DROP `col_ewyzkapekq`;
+ALTER TABLE `tb_gcqyhapjeh` DROP COLUMN `col_mlfdocnxzd`, DROP COLUMN `col_zhvifnzhjr`;
+ALTER TABLE `tb_gcqyhapjeh` DROP `col_jzhdjycrpd`;
+ALTER TABLE `tb_gcqyhapjeh` DROP COLUMN `col_ihidhmecqm`, DROP COLUMN `col_yxhhhxgwjz`;
+ALTER TABLE `tb_gcqyhapjeh` DROP `col_fscylalync`, DROP `col_hxvzygxblr`;

+ 27 - 0
parse/src/test/resources/ddl/alter/test_20.sql

@@ -0,0 +1,27 @@
+CREATE TABLE `tb_zjdvakwwwv` (
+  `col_bytftanpdh` mediumint(56) unsigned DEFAULT '1',
+  `col_zwyhucxxkr` year(4) NOT NULL,
+  `col_desbhtchpe` text(3076914288) CHARACTER SET latin1,
+  `col_figelwsuqt` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET latin1 DEFAULT 'enum_or_set_0',
+  UNIQUE `col_desbhtchpe` (`col_desbhtchpe`(5)),
+  UNIQUE `col_bytftanpdh` (`col_bytftanpdh`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+RENAME TABLE `tb_zjdvakwwwv` TO `tb_unztlaanoa`;
+RENAME TABLE `tb_unztlaanoa` TO `tb_wxywfqcvkr`;
+ALTER TABLE `tb_wxywfqcvkr` ADD COLUMN (`col_hikfliwljt` varchar(14), `col_vrnocgbjsc` mediumtext CHARACTER SET utf8);
+ALTER TABLE `tb_wxywfqcvkr` ADD COLUMN (`col_gudluixdai` char, `col_adpuaqjrtd` numeric(22,2) NOT NULL);
+ALTER TABLE `tb_wxywfqcvkr` ADD COLUMN `col_vjvhvsxmoi` bigint zerofill AFTER `col_desbhtchpe`;
+ALTER TABLE `tb_wxywfqcvkr` ADD COLUMN (`col_whowxgsfzl` blob(1844532465), `col_mzdqafxiqx` bigint(161) unsigned DEFAULT '1');
+ALTER TABLE `tb_wxywfqcvkr` ADD `col_spyfsutunk` bit DEFAULT b'0' AFTER `col_zwyhucxxkr`;
+ALTER TABLE `tb_wxywfqcvkr` ADD `col_iqugcuomsl` numeric(9) NOT NULL;
+ALTER TABLE `tb_wxywfqcvkr` ADD PRIMARY KEY (`col_zwyhucxxkr`,`col_adpuaqjrtd`);
+ALTER TABLE `tb_wxywfqcvkr` CHANGE `col_zwyhucxxkr` `col_sixmujutpp` smallint zerofill NOT NULL AFTER `col_hikfliwljt`;
+ALTER TABLE `tb_wxywfqcvkr` CHANGE COLUMN `col_hikfliwljt` `col_oftatmlkzc` set('enum_or_set_0','enum_or_set_1','enum_or_set_2') NOT NULL FIRST;
+ALTER TABLE `tb_wxywfqcvkr` CHANGE COLUMN `col_spyfsutunk` `col_wwaeohiyto` timestamp FIRST;
+ALTER TABLE `tb_wxywfqcvkr` DROP `col_adpuaqjrtd`;
+ALTER TABLE `tb_wxywfqcvkr` DROP `col_iqugcuomsl`, DROP `col_sixmujutpp`;
+ALTER TABLE `tb_wxywfqcvkr` DROP `col_vrnocgbjsc`;
+ALTER TABLE `tb_wxywfqcvkr` DROP `col_wwaeohiyto`;
+ALTER TABLE `tb_wxywfqcvkr` DROP `col_bytftanpdh`;
+ALTER TABLE `tb_wxywfqcvkr` DROP `col_desbhtchpe`;
+ALTER TABLE `tb_wxywfqcvkr` DROP COLUMN `col_gudluixdai`;

+ 27 - 0
parse/src/test/resources/ddl/alter/test_21.sql

@@ -0,0 +1,27 @@
+CREATE TABLE `tb_kcqprbgueu` (
+  `col_bkngorvqcs` blob(236574804),
+  `col_zzurkpmmun` year(4) DEFAULT '2019',
+  `col_ysfndnoaxw` varchar(53) CHARACTER SET utf8 NOT NULL DEFAULT '',
+  PRIMARY KEY (`col_ysfndnoaxw`(25)),
+  UNIQUE `col_bkngorvqcs` (`col_bkngorvqcs`(26),`col_zzurkpmmun`),
+  UNIQUE `uk_gjdewbtjjb` (`col_zzurkpmmun`)
+) DEFAULT CHARSET=utf8;
+RENAME TABLE `tb_kcqprbgueu` TO `tb_vsurmlbmno`;
+RENAME TABLE `tb_vsurmlbmno` TO `tb_aaholafery`;
+RENAME TABLE `tb_aaholafery` TO `tb_mjvfhaqskb`;
+ALTER TABLE `tb_mjvfhaqskb` ADD `col_njoaqbbtxv` bit(26) DEFAULT b'0';
+ALTER TABLE `tb_mjvfhaqskb` ADD COLUMN `col_mipvhqbjat` mediumtext CHARACTER SET utf8 AFTER `col_zzurkpmmun`;
+ALTER TABLE `tb_mjvfhaqskb` ADD COLUMN `col_bjzwkjcmer` decimal(17,10) FIRST;
+ALTER TABLE `tb_mjvfhaqskb` ADD COLUMN (`col_qnkieomtxh` datetime(5), `col_olvjbrfhvy` char NULL);
+ALTER TABLE `tb_mjvfhaqskb` ADD `col_bnupaoxxfv` blob(1570619016) AFTER `col_qnkieomtxh`;
+ALTER TABLE `tb_mjvfhaqskb` ADD UNIQUE `uk_sidczmsazr` (`col_bkngorvqcs`(6),`col_mipvhqbjat`(25));
+ALTER TABLE `tb_mjvfhaqskb` ALTER COLUMN `col_zzurkpmmun` DROP DEFAULT;
+ALTER TABLE `tb_mjvfhaqskb` CHANGE COLUMN `col_bkngorvqcs` `col_kxxtstiztr` mediumblob;
+ALTER TABLE `tb_mjvfhaqskb` CHANGE COLUMN `col_njoaqbbtxv` `col_snmdnyljqk` varbinary(47) DEFAULT '\0' FIRST;
+ALTER TABLE `tb_mjvfhaqskb` CHANGE `col_kxxtstiztr` `col_bfmjyipktn` mediumtext FIRST;
+ALTER TABLE `tb_mjvfhaqskb` DROP `col_bfmjyipktn`;
+ALTER TABLE `tb_mjvfhaqskb` DROP COLUMN `col_zzurkpmmun`, DROP COLUMN `col_ysfndnoaxw`;
+ALTER TABLE `tb_mjvfhaqskb` DROP COLUMN `col_qnkieomtxh`;
+ALTER TABLE `tb_mjvfhaqskb` DROP COLUMN `col_bjzwkjcmer`;
+ALTER TABLE `tb_mjvfhaqskb` DROP `col_mipvhqbjat`, DROP `col_olvjbrfhvy`;
+ALTER TABLE `tb_mjvfhaqskb` DROP `col_bnupaoxxfv`;

+ 32 - 0
parse/src/test/resources/ddl/alter/test_22.sql

@@ -0,0 +1,32 @@
+CREATE TABLE `tb_sxbbqclsgf` (
+  `col_avzjcdfkfv` year(4) NOT NULL DEFAULT '2019',
+  `col_kgfprqgdwt` mediumtext CHARACTER SET latin1,
+  CONSTRAINT PRIMARY KEY (`col_avzjcdfkfv`),
+  UNIQUE `col_kgfprqgdwt` (`col_kgfprqgdwt`(6))
+) DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_uakpdqzysm` (
+  `col_zknooyoueg` time NOT NULL DEFAULT '00:00:00',
+  `col_xavytdfgxu` mediumtext CHARACTER SET utf8,
+  `col_mgwiohebft` mediumtext CHARACTER SET utf8,
+  `col_bejzwcvfmz` date DEFAULT '2019-07-04',
+  UNIQUE `uk_cryfvwxbvx` (`col_zknooyoueg`,`col_xavytdfgxu`(9))
+) DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_vktpftxscc` (
+  `col_wqtdmdoyoo` longblob
+) DEFAULT CHARSET=latin1;
+RENAME TABLE `tb_uakpdqzysm` TO `tb_btqvbuxdyv`, `tb_vktpftxscc` TO `tb_fficunfgca`;
+DROP TABLE tb_fficunfgca;
+ALTER TABLE `tb_sxbbqclsgf` ADD `col_glgspzmrxu` mediumint zerofill NOT NULL AFTER `col_avzjcdfkfv`;
+ALTER TABLE `tb_sxbbqclsgf` ADD COLUMN (`col_rezszlbpen` mediumtext, `col_nmxcrltjbv` binary);
+ALTER TABLE `tb_sxbbqclsgf` ADD (`col_wctphwmxin` smallint(103) unsigned zerofill NULL, `col_yadwowaswm` mediumint(118) unsigned zerofill NOT NULL);
+ALTER TABLE `tb_sxbbqclsgf` ADD COLUMN `col_tekylcrmef` bit(17) NULL DEFAULT b'0';
+ALTER TABLE `tb_sxbbqclsgf` ADD COLUMN `col_ukcpwepvny` timestamp(1) DEFAULT CURRENT_TIMESTAMP(1) FIRST;
+ALTER TABLE `tb_sxbbqclsgf` DEFAULT CHARACTER SET utf8;
+ALTER TABLE `tb_sxbbqclsgf` ADD UNIQUE `uk_htumixicdh` (`col_avzjcdfkfv`,`col_kgfprqgdwt`(28));
+ALTER TABLE `tb_sxbbqclsgf` ALTER COLUMN `col_nmxcrltjbv` SET DEFAULT NULL;
+ALTER TABLE `tb_sxbbqclsgf` CHANGE `col_yadwowaswm` `col_tappjfodgm` date NULL;
+ALTER TABLE `tb_sxbbqclsgf` CHANGE COLUMN `col_nmxcrltjbv` `col_raprmikjbo` date;
+ALTER TABLE `tb_sxbbqclsgf` DROP COLUMN `col_tappjfodgm`, DROP COLUMN `col_glgspzmrxu`;
+ALTER TABLE `tb_sxbbqclsgf` DROP COLUMN `col_rezszlbpen`, DROP COLUMN `col_raprmikjbo`;
+ALTER TABLE `tb_sxbbqclsgf` DROP PRIMARY KEY;
+ALTER TABLE `tb_sxbbqclsgf` DROP KEY `uk_htumixicdh`;

+ 39 - 0
parse/src/test/resources/ddl/alter/test_23.sql

@@ -0,0 +1,39 @@
+CREATE TABLE `tb_caahynuejc` (
+  `col_ceosnfriqs` integer,
+  `col_aklqoixrun` year(4),
+  UNIQUE INDEX `col_ceosnfriqs` (`col_ceosnfriqs`),
+  UNIQUE `uk_gekdmzrybz` (`col_aklqoixrun`)
+) DEFAULT CHARSET=utf8;
+CREATE TABLE `tb_xbsrcfksox` (
+  `col_qsljaaxbrj` datetime DEFAULT '2019-07-04 00:00:00',
+  `col_vusitjjcdx` char CHARACTER SET latin1,
+  `col_ufwmvwjonj` integer unsigned NOT NULL,
+  UNIQUE KEY `uk_henpwhqovc` (`col_ufwmvwjonj`),
+  UNIQUE INDEX `col_vusitjjcdx` (`col_vusitjjcdx`,`col_ufwmvwjonj`)
+) DEFAULT CHARSET=latin1;
+CREATE TABLE `tb_eroteuzada` (
+  `col_aipblmdcsw` float(32) NOT NULL,
+  `col_sklhosmnvr` bigint unsigned zerofill NOT NULL,
+  `col_skwdbrxmlc` mediumblob,
+  UNIQUE INDEX `col_aipblmdcsw` (`col_aipblmdcsw`,`col_sklhosmnvr`),
+  UNIQUE INDEX `uk_inmzvqrjoq` (`col_sklhosmnvr`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+RENAME TABLE `tb_eroteuzada` TO `tb_thlwjjfpcg`;
+RENAME TABLE `tb_thlwjjfpcg` TO `tb_ydbfvvwhvi`;
+ALTER TABLE `tb_caahynuejc` ADD COLUMN `col_noipbutgvd` char CHARACTER SET utf8mb4 NULL;
+ALTER TABLE `tb_caahynuejc` ADD (`col_eyefseknmn` time DEFAULT '00:00:00', `col_nxbdoexmux` bigint(139) zerofill NULL);
+ALTER TABLE `tb_caahynuejc` ADD `col_aulqirvfec` tinyblob;
+ALTER TABLE `tb_caahynuejc` ADD COLUMN (`col_tlcpasbobp` bigint zerofill NULL, `col_fyktzflvgx` tinytext CHARACTER SET utf8);
+ALTER TABLE `tb_caahynuejc` ADD (`col_bufdgcwxci` time DEFAULT '00:00:00', `col_snfugvbwkh` enum('enum_or_set_0','enum_or_set_1','enum_or_set_2') CHARACTER SET utf8 NULL);
+ALTER TABLE `tb_caahynuejc` ADD (`col_hcvfpfsxxl` longblob, `col_tnpnwxtkvp` longblob);
+ALTER TABLE `tb_caahynuejc` DEFAULT CHARACTER SET utf8;
+ALTER TABLE `tb_caahynuejc` ADD UNIQUE KEY `uk_kvrvlewpkc` (`col_bufdgcwxci`);
+ALTER TABLE `tb_caahynuejc` ALTER `col_eyefseknmn` DROP DEFAULT;
+ALTER TABLE `tb_caahynuejc` CHANGE `col_fyktzflvgx` `col_dijbniwgme` decimal(20,1) NULL;
+ALTER TABLE `tb_caahynuejc` CHANGE `col_aulqirvfec` `col_wpzatdhhyw` datetime NOT NULL DEFAULT '2019-07-04 00:00:00';
+ALTER TABLE `tb_caahynuejc` DROP COLUMN `col_bufdgcwxci`;
+ALTER TABLE `tb_caahynuejc` DROP COLUMN `col_snfugvbwkh`;
+ALTER TABLE `tb_caahynuejc` DROP COLUMN `col_tnpnwxtkvp`;
+ALTER TABLE `tb_caahynuejc` DROP `col_nxbdoexmux`, DROP `col_hcvfpfsxxl`;
+ALTER TABLE `tb_caahynuejc` DROP COLUMN `col_dijbniwgme`;
+ALTER TABLE `tb_caahynuejc` DROP COLUMN `col_wpzatdhhyw`;

部分文件因文件數量過多而無法顯示