穿云 2 月之前
父节点
当前提交
9bf9a1f778

+ 8 - 6
dbsyncer-parser/src/main/java/org/dbsyncer/parser/ddl/alter/ChangeStrategy.java

@@ -23,13 +23,15 @@ public class ChangeStrategy implements AlterStrategy {
 
 
     @Override
     @Override
     public void parse(AlterExpression expression, DDLConfig ddlConfig) {
     public void parse(AlterExpression expression, DDLConfig ddlConfig) {
-        for (AlterExpression.ColumnDataType columnDataType : expression.getColDataTypeList()) {
-            String oldColumnName = StringUtil.replace(expression.getColumnOldName(), StringUtil.BACK_QUOTE, StringUtil.EMPTY);
-            oldColumnName = StringUtil.replace(oldColumnName, StringUtil.DOUBLE_QUOTATION, StringUtil.EMPTY);
+        if (expression.getColDataTypeList() != null) {
+            for (AlterExpression.ColumnDataType columnDataType : expression.getColDataTypeList()) {
+                String oldColumnName = StringUtil.replace(expression.getColumnOldName(), StringUtil.BACK_QUOTE, StringUtil.EMPTY);
+                oldColumnName = StringUtil.replace(oldColumnName, StringUtil.DOUBLE_QUOTATION, StringUtil.EMPTY);
 
 
-            String changedColumnName = StringUtil.replace(columnDataType.getColumnName(), StringUtil.BACK_QUOTE, StringUtil.EMPTY);
-            changedColumnName = StringUtil.replace(changedColumnName, StringUtil.DOUBLE_QUOTATION, StringUtil.EMPTY);
-            ddlConfig.getChangedFieldNames().put(oldColumnName, changedColumnName);
+                String changedColumnName = StringUtil.replace(columnDataType.getColumnName(), StringUtil.BACK_QUOTE, StringUtil.EMPTY);
+                changedColumnName = StringUtil.replace(changedColumnName, StringUtil.DOUBLE_QUOTATION, StringUtil.EMPTY);
+                ddlConfig.getChangedFieldNames().put(oldColumnName, changedColumnName);
+            }
         }
         }
         ddlConfig.setDdlOperationEnum(DDLOperationEnum.ALTER_CHANGE);
         ddlConfig.setDdlOperationEnum(DDLOperationEnum.ALTER_CHANGE);
     }
     }

+ 7 - 5
dbsyncer-parser/src/main/java/org/dbsyncer/parser/ddl/alter/ModifyStrategy.java

@@ -12,7 +12,7 @@ import org.dbsyncer.sdk.enums.DDLOperationEnum;
 /**
 /**
  * 字段属性变更
  * 字段属性变更
  * <code>
  * <code>
- *     ALTER TABLE `test`.`test_user`
+ * ALTER TABLE `test`.`test_user`
  * MODIFY COLUMN `name` varchar(203) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL AFTER `id`,
  * MODIFY COLUMN `name` varchar(203) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL AFTER `id`,
  * MODIFY COLUMN `remark` varchar(204) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL AFTER `name`
  * MODIFY COLUMN `remark` varchar(204) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL AFTER `name`
  * </code>
  * </code>
@@ -23,10 +23,12 @@ public class ModifyStrategy implements AlterStrategy {
 
 
     @Override
     @Override
     public void parse(AlterExpression expression, DDLConfig ddlConfig) {
     public void parse(AlterExpression expression, DDLConfig ddlConfig) {
-        for (AlterExpression.ColumnDataType columnDataType : expression.getColDataTypeList()) {
-            String columnName = StringUtil.replace(columnDataType.getColumnName(), StringUtil.BACK_QUOTE, StringUtil.EMPTY);
-            columnName = StringUtil.replace(columnName, StringUtil.DOUBLE_QUOTATION, StringUtil.EMPTY);
-            ddlConfig.getModifiedFieldNames().add(columnName);
+        if (expression.getColDataTypeList() != null) {
+            for (AlterExpression.ColumnDataType columnDataType : expression.getColDataTypeList()) {
+                String columnName = StringUtil.replace(columnDataType.getColumnName(), StringUtil.BACK_QUOTE, StringUtil.EMPTY);
+                columnName = StringUtil.replace(columnName, StringUtil.DOUBLE_QUOTATION, StringUtil.EMPTY);
+                ddlConfig.getModifiedFieldNames().add(columnName);
+            }
         }
         }
         ddlConfig.setDdlOperationEnum(DDLOperationEnum.ALTER_MODIFY);
         ddlConfig.setDdlOperationEnum(DDLOperationEnum.ALTER_MODIFY);
     }
     }