private RowExpression translateAndOptimize(Expression expression) { return translateAndOptimize(expression, getExpressionTypes(expression)); }
private RowExpression translateAndOptimize(Expression expression) { return translateAndOptimize(expression, getExpressionTypes(expression)); }
private Expression simplifyExpression(Expression expression) { // Testing simplified expressions is important, since simplification may create CASTs or function calls that cannot be simplified by the ExpressionOptimizer Map<NodeRef<Expression>, Type> expressionTypes = getExpressionTypes(expression); ExpressionInterpreter interpreter = ExpressionInterpreter.expressionOptimizer(expression, metadata, TEST_SESSION, expressionTypes); Object value = interpreter.optimize(NoOpSymbolResolver.INSTANCE); return literalEncoder.toExpression(value, expressionTypes.get(NodeRef.of(expression))); }
private Expression simplifyExpression(Expression expression) { // Testing simplified expressions is important, since simplification may create CASTs or function calls that cannot be simplified by the ExpressionOptimizer Map<NodeRef<Expression>, Type> expressionTypes = getExpressionTypes(expression); ExpressionInterpreter interpreter = ExpressionInterpreter.expressionOptimizer(expression, metadata, TEST_SESSION, expressionTypes); Object value = interpreter.optimize(NoOpSymbolResolver.INSTANCE); return literalEncoder.toExpression(value, expressionTypes.get(NodeRef.of(expression))); }