[Fix](topn opt) only allow duplicate key or MOW model to use 2 phase read opt in nereids planner (#24485)
The fetch phase is not support aggregation at present
This commit is contained in:
@ -60,6 +60,7 @@ public class DeferMaterializeTopNResult implements RewriteRuleFactory {
|
||||
.when(r -> r.child().getOrderKeys().stream().map(OrderKey::getExpr)
|
||||
.allMatch(Expression::isColumnFromTable))
|
||||
.when(r -> r.child().child().getTable().getEnableLightSchemaChange())
|
||||
.when(r -> r.child().child().getTable().isDupKeysOrMergeOnWrite())
|
||||
.then(r -> deferMaterialize(r, r.child(), Optional.empty(), r.child().child()))
|
||||
),
|
||||
RuleType.DEFER_MATERIALIZE_TOP_N_RESULT.build(
|
||||
@ -69,6 +70,7 @@ public class DeferMaterializeTopNResult implements RewriteRuleFactory {
|
||||
.when(r -> r.child().getOrderKeys().stream().map(OrderKey::getExpr)
|
||||
.allMatch(Expression::isColumnFromTable))
|
||||
.when(r -> r.child().child().child().getTable().getEnableLightSchemaChange())
|
||||
.when(r -> r.child().child().child().getTable().isDupKeysOrMergeOnWrite())
|
||||
.then(r -> {
|
||||
LogicalFilter<LogicalOlapScan> filter = r.child().child();
|
||||
return deferMaterialize(r, r.child(), Optional.of(filter), filter.child());
|
||||
|
||||
Reference in New Issue
Block a user