[ 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)