Skip to content

Commit 1207fa7

Browse files
[BugFix] Fix short circuit not work when table has global dict columns (backport #59844) (#60697)
Signed-off-by: stdpain <[email protected]> Co-authored-by: stdpain <[email protected]>
1 parent c0eadc9 commit 1207fa7

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

fe/fe-core/src/main/java/com/starrocks/sql/ShortCircuitPlannerHybrid.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.starrocks.sql.optimizer.Utils;
2626
import com.starrocks.sql.optimizer.operator.logical.LogicalScanOperator;
2727
import com.starrocks.sql.optimizer.operator.scalar.ScalarOperator;
28-
import com.starrocks.sql.optimizer.statistics.IDictManager;
2928

3029
import java.util.List;
3130
import java.util.stream.Collectors;
@@ -47,12 +46,6 @@ public Boolean visitLogicalTableScan(OptExpression optExpression, Void context)
4746
return false;
4847
}
4948

50-
for (Column column : table.getFullSchema()) {
51-
if (IDictManager.getInstance().hasGlobalDict(table.getId(), column.getColumnId())) {
52-
return false;
53-
}
54-
}
55-
5649
List<String> keyColumns = ((OlapTable) table).getKeyColumns().stream().map(Column::getName).collect(
5750
Collectors.toList());
5851
List<ScalarOperator> conjuncts = Utils.extractConjuncts(predicate);

fe/fe-core/src/test/java/com/starrocks/sql/plan/LowCardinalityTest2.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2192,4 +2192,12 @@ public void testExistRequiredDistribution() throws Exception {
21922192
Assert.assertFalse("table doesn't contain global dict, we can change its distribution",
21932193
execPlan.getOptExpression(1).isExistRequiredDistribution());
21942194
}
2195+
2196+
@Test
2197+
public void testShortCircuitQuery() throws Exception {
2198+
connectContext.getSessionVariable().setEnableShortCircuit(true);
2199+
String sql = "select * from low_card_t2 where d_date='20160404' and c_mr = '12'";
2200+
final String plan = getFragmentPlan(sql);
2201+
assertContains(plan, "Short Circuit Scan: true");
2202+
}
21952203
}

0 commit comments

Comments
 (0)