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

Lorenzo Affetti commented on CALCITE-7007:
------------------------------------------

[~julianhyde] thank you for your considerations!

 

What you say is that "*" is not for "all columns" in the aggregate context and 
it makes sense.

What you explain above is that `count([col, ]*)` means "count where the values 
at the columns specified are not null".

However, `count(*)` does not mean "count where all the values are not null" but 
the exact opposite.

 

In the context of this issue, I think the start operator in general is well 
known to be considered as "all columns".

Can we consider `count(*)` semantics as just an exception and preserve its 
semantics when passing to functions?

I can find at least 1 example, in Postgres, in which this semantics is used: 
[https://www.postgresql.org/docs/9.2/xfunc-sql.html] (at 35.4.3).

However, in standard SQL, `*` seem to just be used for `select {*}` and 
`count({*})`.

 

> Support STAR operator in UDF calls
> ----------------------------------
>
>                 Key: CALCITE-7007
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7007
>             Project: Calcite
>          Issue Type: Wish
>            Reporter: Lorenzo Affetti
>            Priority: Minor
>
> As one can perform aggregate operations by passing the `*` operator:
>  
> {code:java}
> select count(*) from table where ...;{code}
>  
> One might be able to use `*` in UDF calls, e.g.:
>  
> {code:java}
> select myUDF(*) from table where ...;{code}
> With the meaning of "every column".
>  
> So, say that `table` schema has 3 columns: `id`, `name`, `description`, this:
> {code:java}
> select myUDF(*) from table where ...;
> {code}
> Would be equivalent to this:
> {code:java}
> select myUDF(id, name, description) from table where ...; {code}
> This issue is related to Flink's 
> https://issues.apache.org/jira/browse/FLINK-35466.
> Flink already support `*` for UDF calls in its Table API and uses Calcite for 
> the SQL API.
> Support for this kind of SQL calls introduces a change in Calcite visitors.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to