This is an automated email from the ASF dual-hosted git repository.
arshad pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/seatunnel-web.git
The following commit(s) were added to refs/heads/main by this push:
new d862b611 [Bug] [Seatunnel-web] Error when conditional column is not
used in SELECT clause (#238)
d862b611 is described below
commit d862b6110411fc7a1f9cca82c0d73724a9638f45
Author: BilwaST <[email protected]>
AuthorDate: Wed Nov 6 16:23:55 2024 +0530
[Bug] [Seatunnel-web] Error when conditional column is not used in SELECT
clause (#238)
Signed-off-by: Mohammad Arshad <[email protected]>
---
.../app/service/impl/JobInstanceServiceImpl.java | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
index 8d0b7957..684f529d 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java
@@ -103,6 +103,10 @@ public class JobInstanceServiceImpl extends
SeatunnelBaseServiceImpl
private static final String DAG_PARSING_MODE = "dag-parsing.mode";
+ private static final String WHERE_CONDITION = "where_condition";
+
+ private static final String QUERY = "query";
+
@Resource private ConnectorDataSourceMapperConfig dataSourceMapperConfig;
@Resource private IDatasourceService datasourceService;
@@ -233,6 +237,7 @@ public class JobInstanceServiceImpl extends
SeatunnelBaseServiceImpl
businessMode,
config,
optionRule);
+ mergeConfig =
appendWhereClauseToQuery(mergeConfig);
sourceMap
.get(task.getConnectorType())
.add(filterEmptyValue(mergeConfig));
@@ -330,6 +335,19 @@ public class JobInstanceServiceImpl extends
SeatunnelBaseServiceImpl
return JobUtils.replaceJobConfigPlaceholders(jobConfig, executeParam);
}
+ private Config appendWhereClauseToQuery(Config mergeConfig) {
+ String where_condition = mergeConfig.getString(WHERE_CONDITION);
+ if (where_condition != null && !where_condition.isEmpty()) {
+ String query = mergeConfig.getString(QUERY);
+ String queryWithWhereClause = query + " " + where_condition;
+ mergeConfig =
+ mergeConfig.withValue(
+ QUERY,
ConfigValueFactory.fromAnyRef(queryWithWhereClause));
+ mergeConfig = mergeConfig.withoutPath(WHERE_CONDITION);
+ }
+ return mergeConfig;
+ }
+
@Override
public JobExecutorRes getExecuteResource(@NonNull Long jobEngineId) {
funcPermissionCheck(SeatunnelFuncPermissionKeyConstant.JOB_EXECUTOR_INSTANCE,
0);