[
https://issues.apache.org/jira/browse/FLINK-34399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17819354#comment-17819354
]
Ferenc Csaky commented on FLINK-34399:
--------------------------------------
Executed the following test scenarios:
# Simple datagen table:
{code:sql}
CREATE TABLE IF NOT EXISTS `datagen_table` (
`col_str` STRING,
`col_int` INT,
`col_ts` TIMESTAMP(3),
WATERMARK FOR `col_ts` AS col_ts - INTERVAL '5' SECOND
) WITH (
'connector' = 'datagen'
);
{code}
{{asSerializableString()}} result:
{code:sql}
SELECT `col_str`, `col_int`, `col_ts` FROM
`default_catalog`.`default_database`.`datagen_table`
{code}
# Aggreagte view:
{code:sql}
CREATE TABLE IF NOT EXISTS `txn_gen` (
`id` INT,
`amount` INT,
`timestamp` TIMESTAMP(3),
WATERMARK FOR `timestamp` AS `timestamp` - INTERVAL '1' SECOND
) WITH (
'connector' = 'datagen',
'fields.id.max' = '5',
'fields.id.min' = '1',
'rows-per-second' = '1'
);
CREATE VIEW IF NOT EXISTS `aggr_five_sec` AS SELECT
`id`,
COUNT(`id`) AS `txn_count`,
TUMBLE_ROWTIME(`timestamp`, INTERVAL '5' SECOND) AS `w_row_time`
FROM `txn_gen`
GROUP BY `id`, TUMBLE(`timestamp`, INTERVAL '5' SECOND)
{code}
{{asSerializableString()}} result:
{code:sql}
SELECT `id`, `txn_count`, `w_row_time` FROM
`default_catalog`.`default_database`.`aggr_five_sec`
{code}
# Join view:
{code:sql}
CREATE TEMPORARY TABLE IF NOT EXISTS `location_updates` (
`character_id` INT,
`location` STRING,
`proctime` AS PROCTIME()
)
WITH (
'connector' = 'faker',
'fields.character_id.expression' = '#{number.numberBetween ''0'',''100''}',
'fields.location.expression' = '#{harry_potter.location}'
);
CREATE TEMPORARY TABLE IF NOT EXISTS `characters` (
`character_id` INT,
`name` STRING
)
WITH (
'connector' = 'faker',
'fields.character_id.expression' = '#{number.numberBetween ''0'',''100''}',
'fields.name.expression' = '#{harry_potter.characters}'
);
CREATE TEMPORARY VIEW IF NOT EXISTS `joined` AS SELECT
c.character_id,
l.location,
c.name
FROM location_updates AS l
JOIN characters FOR SYSTEM_TIME AS OF proctime AS c
ON l.character_id = c.character_id;
{code}
{{asSerializableString()}} result:
{code:sql}
SELECT `character_id`, `location`, `name` FROM
`default_catalog`.`default_database`.`joined`
{code}
Job execution went fine, all tests gave the expected resulst. Also checked the
related PRs for this feature, it is very well covered with unit tests, so I
think it looks good and works as desired.
> Release Testing: Verify FLINK-33644 Make QueryOperations SQL serializable
> -------------------------------------------------------------------------
>
> Key: FLINK-34399
> URL: https://issues.apache.org/jira/browse/FLINK-34399
> Project: Flink
> Issue Type: Sub-task
> Components: Table SQL / API
> Reporter: Dawid Wysakowicz
> Assignee: Ferenc Csaky
> Priority: Major
> Labels: release-testing
>
> Test suggestions:
> 1. Write a few Table API programs.
> 2. Call Table.getQueryOperation#asSerializableString, manually verify the
> produced SQL query
> 3. Check the produced SQL query is runnable and produces the same results as
> the Table API program:
> {code}
> Table table = tEnv.from("a") ...
> String sqlQuery = table.getQueryOperation().asSerializableString();
> //verify the sqlQuery is runnable
> tEnv.sqlQuery(sqlQuery).execute().collect()
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)