From 512f4c70219a12c66be801b5bf199911555c8ea9 Mon Sep 17 00:00:00 2001 From: KingsleyY <42668765+CallMeKingsley97@users.noreply.github.com> Date: Wed, 26 Jul 2023 10:42:29 +0800 Subject: [PATCH] [Fix-10795][plugin] sqoop task query columns bug (#10776) * [Improvement][Api] add @Override on the Override method * [FIX]sqoop task query columns bug * merge two if * update checkstyle problem * Update dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopColumnType.java Co-authored-by: Wenjun Ruan * Update dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/generator/sources/MySQLSourceGenerator.java Co-authored-by: Wenjun Ruan * code format * code format --------- Co-authored-by: Wenjun Ruan Co-authored-by: xiangzihao <460888207@qq.com> --- .../plugin/task/sqoop/SqoopColumnType.java | 41 +++++++++++++++++++ .../sources/MySQLSourceGenerator.java | 4 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopColumnType.java diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopColumnType.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopColumnType.java new file mode 100644 index 0000000000..43e6e7181c --- /dev/null +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopColumnType.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.dolphinscheduler.plugin.task.sqoop; + +public enum SqoopColumnType { + + ALL_COLUMNS(0, "GET_ALL_COLUMNS"), + CUSTOMIZE_COLUMNS(1, "CUSTOMIZE_COLUMNS"); + + private final Integer code; + + private final String desc; + + SqoopColumnType(Integer code, String desc) { + this.code = code; + this.desc = desc; + } + + public Integer getCode() { + return code; + } + + public String getDesc() { + return desc; + } +} diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/generator/sources/MySQLSourceGenerator.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/generator/sources/MySQLSourceGenerator.java index 19c941b2ed..a2ae434cbb 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/generator/sources/MySQLSourceGenerator.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/main/java/org/apache/dolphinscheduler/plugin/task/sqoop/generator/sources/MySQLSourceGenerator.java @@ -37,6 +37,7 @@ import static org.apache.dolphinscheduler.plugin.task.sqoop.SqoopConstants.TABLE import org.apache.dolphinscheduler.common.utils.JSONUtils; import org.apache.dolphinscheduler.plugin.datasource.api.utils.DataSourceUtils; import org.apache.dolphinscheduler.plugin.task.api.model.Property; +import org.apache.dolphinscheduler.plugin.task.sqoop.SqoopColumnType; import org.apache.dolphinscheduler.plugin.task.sqoop.SqoopQueryType; import org.apache.dolphinscheduler.plugin.task.sqoop.SqoopTaskExecutionContext; import org.apache.dolphinscheduler.plugin.task.sqoop.generator.ISourceGenerator; @@ -89,7 +90,8 @@ public class MySQLSourceGenerator implements ISourceGenerator { .append(SPACE).append(sourceMysqlParameter.getSrcTable()); } - if (StringUtils.isNotEmpty(sourceMysqlParameter.getSrcColumns())) { + if (sourceMysqlParameter.getSrcColumnType() == SqoopColumnType.CUSTOMIZE_COLUMNS.getCode() + && StringUtils.isNotEmpty(sourceMysqlParameter.getSrcColumns())) { mysqlSourceSb.append(SPACE).append(COLUMNS) .append(SPACE).append(sourceMysqlParameter.getSrcColumns()); }