[
https://issues.apache.org/jira/browse/FLINK-14539?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-14539:
-----------------------------------
Labels: pull-request-available (was: )
> Unique key metadata should be ketp when using concat or concat_ws in some
> cases
> -------------------------------------------------------------------------------
>
> Key: FLINK-14539
> URL: https://issues.apache.org/jira/browse/FLINK-14539
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 1.9.0, 1.9.1
> Reporter: Kevin Zhang
> Assignee: Kevin Zhang
> Priority: Major
> Labels: pull-request-available
>
> Currently unique key metadata of a project relnode are only kept in the
> following three situations:
> # project the child unique keys while not changing them
> # cast the child unique key when ignoring nulls and the original type of the
> field and cast type are the same
> # rename the child unique keys
> Besides these situations, concat and concat_ws should also keep the metadata
> if they won't break the uniqueness of the child unique keys, i.e. each
> operands is in one of the above situations, and the operands include all the
> child unique keys.
> Say the f0 and f1 are the unique key fields of the child node, the following
> sqls should keep the unique key metadata
> {code:sql}
> select concat(f0, f1)
> -- the type of f0 and f1 are both varchar originally and ignore nulls
> select concat(cast(f0 as varchar), f1)
> select cast(concat(f0, f1) as varchar)
> {code}
> while the following sqls should discard the unique key metadata
> {code:sql}
> -- the type of f0 and f1 are both varchar originally
> select concat(cast(f0 as bigint), f1)
> select cast(concat(f0, f1) as bigint)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)