[ 
https://issues.apache.org/jira/browse/FLINK-33353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ferenc Csaky closed FLINK-33353.
--------------------------------
    Fix Version/s: 1.20.1
       Resolution: Fixed

The linked issue fixes this problem.

> SQL fails because "TimestampType.kind" is not serialized 
> ---------------------------------------------------------
>
>                 Key: FLINK-33353
>                 URL: https://issues.apache.org/jira/browse/FLINK-33353
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>    Affects Versions: 1.18.0
>            Reporter: Ferenc Csaky
>            Priority: Major
>             Fix For: 1.20.1
>
>
> We have a custom persistent catalog store, which stores tables, views etc. in 
> a DB. In our application, it is required to utilize the serialized formats of 
> entities, but the same applies to the Hive, as it functions as a persistent 
> catalog.
> Take the following example SQL:
> {code:sql}
> CREATE TABLE IF NOT EXISTS `txn_gen` (
>   `txn_id` INT,
>   `amount` INT,
>   `ts` TIMESTAMP(3),
>    WATERMARK FOR `ts` AS `ts` - INTERVAL '1' SECOND
> ) WITH (
>   'connector' = 'datagen',
>   'fields.txn_id.min' = '1',
>   'fields.txn_id.max' = '5',
>   'rows-per-second' = '1'
> );
> CREATE VIEW IF NOT EXISTS aggr_ten_sec AS
>   SELECT txn_id,
>          TUMBLE_ROWTIME(`ts`, INTERVAL '10' SECOND) AS w_row_time,
>          COUNT(txn_id) AS txn_count
>     FROM txn_gen
>     GROUP BY txn_id, TUMBLE(`ts`, INTERVAL '10' SECOND);
> SELECT txn_id,
>        SUM(txn_count),
>        TUMBLE_START(w_row_time, INTERVAL '20' SECOND) AS total_txn_count
>   FROM aggr_ten_sec
>   GROUP BY txn_id, TUMBLE(w_row_time, INTERVAL '20' SECOND);
> {code}
> This will work without any problems when we simply execute it in a 
> {{TableEnvironment}}, but it fails with the below error when we try to 
> execute the query based on the serialized table metadata.
> {code}
> org.apache.flink.table.api.TableException: Window aggregate can only be 
> defined over a time attribute column, but TIMESTAMP(3) encountered.
> {code}
> If there is a view which would require to use ROWTIME, it will be lost and we 
> cannot recreate the same query from the serialized entites.
> Currently in 
> [TimestampType|https://github.com/apache/flink/blob/master/flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/logical/TimestampType.java]
>  the "kind" field is deliberatly annotated as {{@Internal}} and is not 
> serialized, although it breaks this functionality.



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

Reply via email to