[fix](Nereids) generating function should not folding to NullLiteral (#29003)

should not fold table generating function to null when do constant folding.
we should remove Generate node and replaced it by project later.
This commit is contained in:
morrySnow
2023-12-26 15:25:19 +08:00
committed by GitHub
parent 983f851fb8
commit f371528ada
2 changed files with 3 additions and 1 deletions

View File

@ -47,6 +47,7 @@ import org.apache.doris.nereids.trees.expressions.WhenClause;
import org.apache.doris.nereids.trees.expressions.functions.BoundFunction;
import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
import org.apache.doris.nereids.trees.expressions.functions.agg.AggregateFunction;
import org.apache.doris.nereids.trees.expressions.functions.generator.TableGeneratingFunction;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Array;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ConnectionId;
import org.apache.doris.nereids.trees.expressions.functions.scalar.CurrentCatalog;
@ -549,7 +550,7 @@ public class FoldConstantRuleOnFE extends AbstractExpressionRewriteRule {
}
private Optional<Expression> preProcess(Expression expression) {
if (expression instanceof AggregateFunction) {
if (expression instanceof AggregateFunction || expression instanceof TableGeneratingFunction) {
return Optional.of(expression);
}
if (expression instanceof PropagateNullable && argsHasNullLiteral(expression)) {

View File

@ -17,6 +17,7 @@
suite("test_explode_numbers") {
sql 'set enable_nereids_planner=true'
sql 'set enable_fallback_to_original_planner=false'
qt_select1 """
select e1 from (select 1 k1) as t lateral view explode_numbers(5) tmp1 as e1 order by e1;
"""