flink
flink copied to clipboard
[FLINK-35037][table-planner]Optimize uniqueKeys and upsertKeys inference of windows with ROW_NUMBER.
What is the purpose of the change
The PR aims to add valid uniqueKeys and uniqueKeys candidates for windows with ROW_NUMBER. The candidates are pairs of partition by keys and field of ROW_NUMBER for each window group.
Brief change log
- Add
getUniqueKeysOfWindowGroupfunction to resolve uniqueKeys candidates for window group who contains ROW_NUMBER. - Change uniqueKeys/UpsertKeys/ColumnUniqueness inference logic for relNodes of
Window,BatchPhysicalOverAggregateandStreamPhysicalOverAggregate types. - Test the logic in corresponding tests, like
FlinkRelMdColumnUniquenessTest - Fix wrong initialization of window groups in
FlinkRelMdHandlerTestBase.
Verifying this change
This change added tests and can be verified as follows:
- *Added tests in
FlinkRelMdColumnUniquenessTest,FlinkRelMdUniqueKeysTestandFlinkRelMdUpsertKeysTestto check if partition by keys and field of ROW_NUMBER are candidates. *
Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (no)
- The public API, i.e., is any changed class annotated with
@Public(Evolving): (no) - The serializers: (no)
- The runtime per-record code paths (performance sensitive): (no)
- Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
- The S3 file system connector: (no)
Documentation
- Does this pull request introduce a new feature? (no)
- If yes, how is the feature documented? (not applicable)
CI report:
- 47e9fe2fbdc2a0ebd9084a2d4acdce12fd917d47 Azure: SUCCESS
Bot commands
The @flinkbot bot supports the following commands:@flinkbot run azurere-run the last Azure build