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

eldenmoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b3d1678c23 [Refactor](ShortCircuit) Conjuncts outof key columns's 
order should be handled (#37900)
1b3d1678c23 is described below

commit 1b3d1678c23af03fcdd5ee78614a4bffbeec2dad
Author: lihangyu <15605149...@163.com>
AuthorDate: Thu Jul 25 15:14:10 2024 +0800

    [Refactor](ShortCircuit) Conjuncts outof key columns's order should be 
handled (#37900)
    
    …e handled
---
 .../main/java/org/apache/doris/qe/PointQueryExecutor.java  | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/qe/PointQueryExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/PointQueryExecutor.java
index 2ce047c9ddc..5aa07246570 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/PointQueryExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/PointQueryExecutor.java
@@ -47,6 +47,7 @@ import org.apache.doris.thrift.TStatusCode;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.thrift.TDeserializer;
@@ -57,6 +58,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
@@ -177,16 +179,18 @@ public class PointQueryExecutor implements CoordInterface 
{
     void addKeyTuples(
             InternalService.PTabletKeyLookupRequest.Builder requestBuilder) {
         // TODO handle IN predicates
+        Map<String, Expr> columnExpr = Maps.newHashMap();
         KeyTuple.Builder kBuilder = KeyTuple.newBuilder();
         for (Expr expr : shortCircuitQueryContext.scanNode.getConjuncts()) {
             BinaryPredicate predicate = (BinaryPredicate) expr;
             Expr left = predicate.getChild(0);
             Expr right = predicate.getChild(1);
-            // ignore delete sign conjuncts only collect key conjuncts
-            if (left instanceof SlotRef && ((SlotRef) 
left).getColumnName().equalsIgnoreCase(Column.DELETE_SIGN)) {
-                continue;
-            }
-            kBuilder.addKeyColumnRep(right.getStringValue());
+            SlotRef columnSlot = left.unwrapSlotRef();
+            columnExpr.put(columnSlot.getColumnName(), right);
+        }
+        // add key tuple in keys order
+        for (Column column : 
shortCircuitQueryContext.scanNode.getOlapTable().getBaseSchemaKeyColumns()) {
+            
kBuilder.addKeyColumnRep(columnExpr.get(column.getName()).getStringValue());
         }
         requestBuilder.addKeyTuples(kBuilder);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to