[
https://issues.apache.org/jira/browse/CALCITE-1833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16042666#comment-16042666
]
yuemeng commented on CALCITE-1833:
----------------------------------
private static Iterator<SqlOperator> filterRoutinesByParameterType(
SqlSyntax syntax,
final Iterator<SqlOperator> routines,
final List<RelDataType> argTypes, final List<String> argNames) {
if (syntax != SqlSyntax.FUNCTION) {
return routines;
}
//noinspection unchecked
return (Iterator) Iterators.filter(
Iterators.filter(routines, SqlFunction.class),
new PredicateImpl<SqlFunction>() {
public boolean test(SqlFunction function) {
List<RelDataType> paramTypes = function.getParamTypes();
if (paramTypes == null) {
// no parameter information for builtins; keep for now
return true;
}
becasue of function is SqlUserDefinedAggFunction instance ,the result of
function.getParamTypes() will always null,so it filters noting by
filterRoutinesByParameterType function
> SqlAggFunction need new constructor to set paramTypes not be null for support
> multiple parameters for udaf
> ----------------------------------------------------------------------------------------------------------
>
> Key: CALCITE-1833
> URL: https://issues.apache.org/jira/browse/CALCITE-1833
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.12.0
> Reporter: yuemeng
> Assignee: Julian Hyde
> Priority: Blocker
>
> If we implement a function which is subclass of AggregateFunction,that
> function will be transform to SqlUserDefinedAggFunction in
> CalciteCatalogReader.
> all parametesTypes information contain by that funcion ,But that function
> only as an instance in SqlUserDefinedAggFunction .when construct the
> SqlUserDefinedAggFunction instance will set paramTypes to null for super
> class sqlFunction indirectly.
> The problem is:
> we will get SqlUserDefinedAggFunction paramTypes to sql validatefilte,but it
> will be filter nothing
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)