[fix](nereids) orthogonal_bitmap_intersect's return type should be bitmap (#15784)

This commit is contained in:
starocean999
2023-01-11 12:53:37 +08:00
committed by GitHub
parent 7f2c433e08
commit 006b3bd61a
3 changed files with 479 additions and 0 deletions

View File

@ -17,13 +17,16 @@
package org.apache.doris.nereids.trees.expressions.functions.agg;
import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable;
import org.apache.doris.nereids.trees.expressions.functions.BitmapIntersectFunction;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
import org.apache.doris.nereids.types.BitmapType;
import org.apache.doris.nereids.util.ExpressionUtils;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.util.List;
@ -33,6 +36,10 @@ import java.util.List;
public class OrthogonalBitmapIntersect extends AggregateFunction
implements AlwaysNotNullable, OrthogonalBitmapFunction, BitmapIntersectFunction {
static final List<FunctionSignature> FUNCTION_SIGNATURES = SUPPORTED_TYPES.stream()
.map(type -> FunctionSignature.ret(BitmapType.INSTANCE).varArgs(BitmapType.INSTANCE, type, type))
.collect(ImmutableList.toImmutableList());
/**
* constructor with 3 or more arguments.
*/
@ -49,6 +56,11 @@ public class OrthogonalBitmapIntersect extends AggregateFunction
ExpressionUtils.mergeArguments(arg0, arg1, arg2, varArgs));
}
@Override
public List<FunctionSignature> getSignatures() {
return FUNCTION_SIGNATURES;
}
/**
* withDistinctAndChildren.
*/