[opt](Nereids) update first_value and last_value signature (#25790)

This commit is contained in:
morrySnow
2023-10-25 13:49:27 +08:00
committed by GitHub
parent 4ac82fd367
commit ba75f3457c
2 changed files with 6 additions and 54 deletions

View File

@ -19,28 +19,22 @@ package org.apache.doris.nereids.trees.expressions.functions.window;
import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.functions.IdenticalSignature;
import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
import org.apache.doris.nereids.types.coercion.AnyDataType;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import java.util.List;
/** parent class for first_value() and last_value() */
public abstract class FirstOrLastValue extends WindowFunction
implements UnaryExpression, PropagateNullable, IdenticalSignature, RequireTrivialTypes {
implements UnaryExpression, PropagateNullable, ExplicitlyCastableSignature {
static {
List<FunctionSignature> signatures = Lists.newArrayList();
trivialTypes.forEach(t ->
signatures.add(FunctionSignature.ret(t).args(t))
);
SIGNATURES = ImmutableList.copyOf(signatures);
}
private static final List<FunctionSignature> SIGNATURES;
private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
FunctionSignature.retArgType(0).args(AnyDataType.INSTANCE_WITHOUT_INDEX)
);
public FirstOrLastValue(String name, Expression child) {
super(name, child);