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

Timo Walther commented on FLINK-22354:
--------------------------------------

I'm fine with precision 3 if this is a well-chosen decision. Regarding the 
configurable precision, if the functions would use the new built-in function 
stack this change would be straight forward and consistent. We should aim to 
support the configurable precious ideally in this release. We should not block 
the release on this, but if we manage to get it in the story would definitely 
be rounder. Because users are used to the semantics of those functions.

> Failed to define watermark on computed column of CURRENT_TIMESTAMP and 
> LOCALTIMESTAMP
> -------------------------------------------------------------------------------------
>
>                 Key: FLINK-22354
>                 URL: https://issues.apache.org/jira/browse/FLINK-22354
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>            Reporter: Jark Wu
>            Assignee: Leonard Xu
>            Priority: Blocker
>             Fix For: 1.13.0, 1.14.0
>
>
> It is very common to define watermarks on {{localtimestamp}} and 
> {{current_tiemstamp}} to support *ingestion time*.  However, the following 
> DDLs failed in v1.13. I also tested the following DDLs can pass in v1.12.1, 
> so this is a regression. 
> The root cause may be introduced by FLINK-21435 which adds a [strict check to 
> only allow  precision = 
> 3|https://github.com/apache/flink/blob/f51168041512b0473decabb2088c1ff4fa4f34bc/flink-table/flink-table-api-java/src/main/java/org/apache/flink/table/catalog/DefaultSchemaResolver.java#L225]
>  (precision = 0 should also can be time attribute), however the precision of 
> return type of {{current_timestamp}} and {{localtimestamp}} are 0 (another 
> long-lived bug). We should fix them both. 
> {code:sql}
> Flink SQL> create table datagen_source (
> >     order_number BIGINT,
> >     price        int,
> >     buyer        string,
> >     ts as current_timestamp,
> >     proctime as proctime(),
> >     watermark for ts as ts - interval '0.001' second
> > ) with (
> >     'connector' = 'datagen',
> >     'rows-per-second' = '1'
> > );
> [ERROR] Could not execute SQL statement. Reason:
> org.apache.flink.table.api.ValidationException: Invalid data type of time 
> field for watermark definition. The field must be of type TIMESTAMP(3) or 
> TIMESTAMP_LTZ(3).
> Flink SQL> create table datagen_source (
> >     order_number BIGINT,
> >     price        int,
> >     buyer        string,
> >     ts as cast(current_timestamp as timestamp_ltz(3)),
> >     proctime as proctime(),
> >     watermark for ts as ts - interval '0.001' second
> > ) with (
> >     'connector' = 'datagen',
> >     'rows-per-second' = '1'
> > );
> [INFO] Execute statement succeed.
> Flink SQL> create table datagen_source2 (
> >     order_number BIGINT,
> >     price        int,
> >     buyer        string,
> >     ts as localtimestamp,
> >     proctime as proctime(),
> >     watermark for ts as ts - interval '0.001' second
> > ) with (
> >     'connector' = 'datagen',
> >     'rows-per-second' = '1'
> > );
> [ERROR] Could not execute SQL statement. Reason:
> org.apache.flink.table.api.ValidationException: Invalid data type of time 
> field for watermark definition. The field must be of type TIMESTAMP(3) or 
> TIMESTAMP_LTZ(3).
> {code}



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

Reply via email to