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