[fix](Nereids)Fix the bug that count(*) does not push down for tables with only one column. (#25222)
after pr #22115 . Fixed the bug that when selecting count(*) from table, if the table has only one column, the aggregate count is not pushed down.
This commit is contained in:
@ -342,6 +342,7 @@ public enum RuleType {
|
||||
LOGICAL_ASSERT_NUM_ROWS_TO_PHYSICAL_ASSERT_NUM_ROWS(RuleTypeClass.IMPLEMENTATION),
|
||||
STORAGE_LAYER_AGGREGATE_WITHOUT_PROJECT(RuleTypeClass.IMPLEMENTATION),
|
||||
STORAGE_LAYER_AGGREGATE_WITH_PROJECT(RuleTypeClass.IMPLEMENTATION),
|
||||
STORAGE_LAYER_AGGREGATE_WITHOUT_PROJECT_FOR_FILE_SCAN(RuleTypeClass.IMPLEMENTATION),
|
||||
STORAGE_LAYER_AGGREGATE_WITH_PROJECT_FOR_FILE_SCAN(RuleTypeClass.IMPLEMENTATION),
|
||||
COUNT_ON_INDEX(RuleTypeClass.IMPLEMENTATION),
|
||||
COUNT_ON_INDEX_WITHOUT_PROJECT(RuleTypeClass.IMPLEMENTATION),
|
||||
|
||||
@ -161,6 +161,13 @@ public class AggregateStrategies implements ImplementationRuleFactory {
|
||||
return storageLayerAggregate(agg, project, olapScan, ctx.cascadesContext);
|
||||
})
|
||||
),
|
||||
RuleType.STORAGE_LAYER_AGGREGATE_WITHOUT_PROJECT_FOR_FILE_SCAN.build(
|
||||
logicalAggregate(
|
||||
logicalFileScan()
|
||||
)
|
||||
.when(agg -> agg.isNormalized() && enablePushDownNoGroupAgg())
|
||||
.thenApply(ctx -> storageLayerAggregate(ctx.root, null, ctx.root.child(), ctx.cascadesContext))
|
||||
),
|
||||
RuleType.STORAGE_LAYER_AGGREGATE_WITH_PROJECT_FOR_FILE_SCAN.build(
|
||||
logicalAggregate(
|
||||
logicalProject(
|
||||
|
||||
Reference in New Issue
Block a user