Skip to content

Commit

Permalink
Use isDynamicFilterFunction in ConnectorExpressionTranslator
Browse files Browse the repository at this point in the history
  • Loading branch information
raunaqmorarka committed Jan 9, 2024
1 parent 09ef5b5 commit 6021f33
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,11 @@ public static Optional<Descriptor> getDescriptor(Expression expression)

private static boolean isDynamicFilterFunction(FunctionCall functionCall)
{
CatalogSchemaFunctionName functionName = ResolvedFunction.extractFunctionName(functionCall.getName());
return isDynamicFilterFunction(ResolvedFunction.extractFunctionName(functionCall.getName()));
}

public static boolean isDynamicFilterFunction(CatalogSchemaFunctionName functionName)
{
return functionName.equals(builtinFunctionName(Function.NAME)) || functionName.equals(builtinFunctionName(NullableFunction.NAME));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import io.trino.spi.type.RowType;
import io.trino.spi.type.Type;
import io.trino.spi.type.VarcharType;
import io.trino.sql.DynamicFilters;
import io.trino.sql.PlannerContext;
import io.trino.sql.tree.ArithmeticBinaryExpression;
import io.trino.sql.tree.ArithmeticUnaryExpression;
Expand Down Expand Up @@ -104,6 +103,7 @@
import static io.trino.spi.expression.StandardFunctions.SUBTRACT_FUNCTION_NAME;
import static io.trino.spi.type.BooleanType.BOOLEAN;
import static io.trino.spi.type.VarcharType.createVarcharType;
import static io.trino.sql.DynamicFilters.isDynamicFilterFunction;
import static io.trino.sql.ExpressionUtils.combineConjuncts;
import static io.trino.sql.ExpressionUtils.extractConjuncts;
import static io.trino.sql.ExpressionUtils.isEffectivelyLiteral;
Expand Down Expand Up @@ -682,7 +682,7 @@ protected Optional<ConnectorExpression> visitFunctionCall(FunctionCall node, Voi
}

CatalogSchemaFunctionName functionName = ResolvedFunction.extractFunctionName(node.getName());
checkArgument(!builtinFunctionName(DynamicFilters.Function.NAME).equals(functionName), "Dynamic filter has no meaning for a connector, it should not be translated into ConnectorExpression");
checkArgument(!isDynamicFilterFunction(functionName), "Dynamic filter has no meaning for a connector, it should not be translated into ConnectorExpression");
// literals should be handled by isEffectivelyLiteral case above
checkArgument(!builtinFunctionName(LITERAL_FUNCTION_NAME).equals(functionName), "Unexpected literal function");

Expand Down

0 comments on commit 6021f33

Please sign in to comment.