assert (functionName != null) : column;
input = Collections.<TPreptimeValue>emptyList();
arguments = Collections.<TPreparedExpression>emptyList();
}
TValidatedScalar overload = registry.getScalarsResolver().get(functionName, input).getOverload();
TInstance functionType = overload.resultStrategy().fixed(column.getNullable());
TPreparedExpression expr = new TPreparedFunction(overload, functionType, arguments);
if (!functionType.equals(columnType)) {
TCast tcast = registry.getCastsResolver().cast(functionType.typeClass(), columnType.typeClass());
expr = new TCastExpression(expr, tcast, columnType);
}