You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2023/05/16 03:59:13 UTC

[iotdb] branch handle_redirection_during_dispatching updated: change the condition of redirection by query execution

This is an automated email from the ASF dual-hosted git repository.

jiangtian pushed a commit to branch handle_redirection_during_dispatching
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/handle_redirection_during_dispatching by this push:
     new 94c814ec33 change the condition of redirection by query execution
94c814ec33 is described below

commit 94c814ec332683414bc23e437eaa4685a24f5284
Author: Tian Jiang <jt...@163.com>
AuthorDate: Tue May 16 12:02:06 2023 +0800

    change the condition of redirection by query execution
---
 .../java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
index 0cac209f97..9c25cbbda0 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/QueryExecution.java
@@ -661,8 +661,10 @@ public class QueryExecution implements IQueryExecution {
         && !analysis.isFinishQueryAfterAnalyze()
         && (!config.isEnable13DataInsertAdapt()
             || IoTDBConstant.ClientVersion.V_1_0.equals(context.getSession().getVersion()))
-        // if the status is already a redirection, do not modify it
-        && tsstatus.getCode() != TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()) {
+        // only redirect here when a redirection is required but not knowing where, otherwise,
+        // the redirection from lower level may be overwritten
+        && (tsstatus.getCode() == TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()
+            && !tsstatus.isSetRedirectNode())) {
       InsertBaseStatement insertStatement = (InsertBaseStatement) analysis.getStatement();
       List<TEndPoint> redirectNodeList = analysis.getRedirectNodeList();
       if (insertStatement instanceof InsertRowsStatement