yux created FLINK-35651:
---------------------------

             Summary: Unable to call argument-less built-in functions with 
parentheses
                 Key: FLINK-35651
                 URL: https://issues.apache.org/jira/browse/FLINK-35651
             Project: Flink
          Issue Type: Bug
          Components: Flink CDC
            Reporter: yux


Currently, CDC Pipeline transform module handles some built-in functions 
specially, including LOCALTIME, LOCALTIMESTAMP, CURRENT_TIME, CURRENT_DATE, and 
CURRENT_TIMESTAMP.

In SystemFunctionUtils implementation, they have arguments actually, but are 
silently bound to current _{_}epoch_time{_}_ and _{_}time_zone{_}_ variable. 
However, user could not call these functions with parentheses directly because 
function signature doesn't match.

For example,

```yaml

transform:

  - projection: CURRENT_TIMESTAMP AS TS

```

is OK since it was automatically expanded to something like 
`currentTimestamp(_{_}epoch_time{_}{_}, __time_zone{_}_)`.

But for this definition:

```yaml

transform:

  - projection: CURRENT_TIMESTAMP() AS TS

```

Transform will fail at runtime:

> org.apache.calcite.runtime.CalciteContextException: From line 1, column 12 to 
> line 1, column 30: No match found for function signature CURRENT_TIMESTAMP()

which could be quite confusing to users.



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

Reply via email to