Description
Currently, the functions are declared as follows:
public interface TableMacro extends Function { /** * Applies arguments to yield a table. * * @param arguments Arguments * @return Table */ TranslatableTable apply(List<Object> arguments); }
That means the method can't be called with List<String> parameter.
It makes sense to adjust the parameter type to List<? extends Object>, then the call with List<String> would succeed.
Note: this is source-incompatible change. So all the classes that implement TableMacro and TableFunction would need to be adjusted.
Calcite codebase has <10 such classes, so I believe it should be ok.