[ 
https://issues.apache.org/jira/browse/CALCITE-2569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17166634#comment-17166634
 ] 

Julian Hyde commented on CALCITE-2569:
--------------------------------------

[~mmior], Yes ANY vs IGNORE is a little confusing. ANY is for a node that is an 
expression but may have any type, IGNORE is for a node that is not an 
expression, and therefore has no type.

Thankfully the issue doesn't come up very often. It occurs when you are 
defining an operator some of whose operators are not expressions; such 
operators usually have special syntax, and not many people are defining such 
operators.

While {{GeoFunctions}} is part of core, it is in the 
{{org.apache.calcite.runtime}} package, and we try to make that package not 
depend on code outside of the package. We don't want generated code pulling in 
the whole world.

> UDFs that are table functions must implement SqlTableFunction and have CURSOR 
> as their return type
> --------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-2569
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2569
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>            Priority: Major
>
> UDFs that are table functions must implement SqlTableFunction and have CURSOR 
> as their return type,
> Validate that table functions are not used in contexts that require scalar 
> functions, such as the SELECT clause.
> Change operand type ANY to mean 'scalar expression of any type (but not a 
> cursor)', and add operand type IGNORE to mean skip validation - for an 
> operand that is not an expression. TABLE is one of the few operators that 
> accepts a CURSOR operand.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to