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);

Reply via email to