use of io.trino.plugin.jdbc.JdbcColumnHandle in project trino by trinodb.
the class ImplementRegrSlope method rewrite.
@Override
public Optional<JdbcExpression> rewrite(AggregateFunction aggregateFunction, Captures captures, RewriteContext<String> context) {
List<Variable> arguments = captures.get(ARGUMENTS);
verify(arguments.size() == 2);
Variable argument1 = arguments.get(0);
Variable argument2 = arguments.get(1);
JdbcColumnHandle columnHandle1 = (JdbcColumnHandle) context.getAssignment(argument1.getName());
verify(aggregateFunction.getOutputType().equals(columnHandle1.getColumnType()));
return Optional.of(new JdbcExpression(format("regr_slope(%s, %s)", context.rewriteExpression(argument1).orElseThrow(), context.rewriteExpression(argument2).orElseThrow()), columnHandle1.getJdbcTypeHandle()));
}
use of io.trino.plugin.jdbc.JdbcColumnHandle in project trino by trinodb.
the class ImplementStddevPop method rewrite.
@Override
public Optional<JdbcExpression> rewrite(AggregateFunction aggregateFunction, Captures captures, RewriteContext<String> context) {
Variable argument = captures.get(ARGUMENT);
JdbcColumnHandle columnHandle = (JdbcColumnHandle) context.getAssignment(argument.getName());
verify(aggregateFunction.getOutputType() == columnHandle.getColumnType());
return Optional.of(new JdbcExpression(format("stddev_pop(%s)", context.rewriteExpression(argument).orElseThrow()), columnHandle.getJdbcTypeHandle()));
}
use of io.trino.plugin.jdbc.JdbcColumnHandle in project trino by trinodb.
the class ImplementSum method rewrite.
@Override
public Optional<JdbcExpression> rewrite(AggregateFunction aggregateFunction, Captures captures, RewriteContext<String> context) {
Variable argument = captures.get(ARGUMENT);
JdbcColumnHandle columnHandle = (JdbcColumnHandle) context.getAssignment(argument.getName());
JdbcTypeHandle resultTypeHandle;
if (columnHandle.getColumnType().equals(aggregateFunction.getOutputType())) {
resultTypeHandle = columnHandle.getJdbcTypeHandle();
} else if (aggregateFunction.getOutputType() instanceof DecimalType) {
Optional<JdbcTypeHandle> decimalTypeHandle = this.decimalTypeHandle.apply(((DecimalType) aggregateFunction.getOutputType()));
if (decimalTypeHandle.isEmpty()) {
return Optional.empty();
}
resultTypeHandle = decimalTypeHandle.get();
} else {
return Optional.empty();
}
return Optional.of(new JdbcExpression(format("sum(%s)", context.rewriteExpression(argument).orElseThrow()), resultTypeHandle));
}
use of io.trino.plugin.jdbc.JdbcColumnHandle in project trino by trinodb.
the class ImplementVariancePop method rewrite.
@Override
public Optional<JdbcExpression> rewrite(AggregateFunction aggregateFunction, Captures captures, RewriteContext<String> context) {
Variable argument = captures.get(ARGUMENT);
JdbcColumnHandle columnHandle = (JdbcColumnHandle) context.getAssignment(argument.getName());
verify(aggregateFunction.getOutputType() == columnHandle.getColumnType());
return Optional.of(new JdbcExpression(format("var_pop(%s)", context.rewriteExpression(argument).orElseThrow()), columnHandle.getJdbcTypeHandle()));
}
use of io.trino.plugin.jdbc.JdbcColumnHandle in project trino by trinodb.
the class ImplementVarianceSamp method rewrite.
@Override
public Optional<JdbcExpression> rewrite(AggregateFunction aggregateFunction, Captures captures, RewriteContext<String> context) {
Variable argument = captures.get(ARGUMENT);
JdbcColumnHandle columnHandle = (JdbcColumnHandle) context.getAssignment(argument.getName());
verify(aggregateFunction.getOutputType() == columnHandle.getColumnType());
return Optional.of(new JdbcExpression(format("var_samp(%s)", context.rewriteExpression(argument).orElseThrow()), columnHandle.getJdbcTypeHandle()));
}
Aggregations