You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Flink Jira Bot (Jira)" <ji...@apache.org> on 2022/07/07 22:38:00 UTC

[jira] [Updated] (FLINK-13503) Add contract in `LookupableTableSource` to specify the behavior when lookupKeys contains null

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

Flink Jira Bot updated FLINK-13503:
-----------------------------------
    Labels: auto-deprioritized-major auto-unassigned pull-request-available stale-minor  (was: auto-deprioritized-major auto-unassigned pull-request-available)

I am the [Flink Jira Bot|https://github.com/apache/flink-jira-bot/] and I help the community manage its development. I see this issues has been marked as Minor but is unassigned and neither itself nor its Sub-Tasks have been updated for 180 days. I have gone ahead and marked it "stale-minor". If this ticket is still Minor, please either assign yourself or give an update. Afterwards, please remove the label or in 7 days the issue will be deprioritized.


> Add contract in `LookupableTableSource` to specify the behavior when lookupKeys contains null
> ---------------------------------------------------------------------------------------------
>
>                 Key: FLINK-13503
>                 URL: https://issues.apache.org/jira/browse/FLINK-13503
>             Project: Flink
>          Issue Type: Technical Debt
>          Components: Connectors / JDBC, Table SQL / API
>    Affects Versions: 1.9.0, 1.10.0
>            Reporter: Jing Zhang
>            Priority: Minor
>              Labels: auto-deprioritized-major, auto-unassigned, pull-request-available, stale-minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> I think we should add contract in `LookupableTableSource` to specify expected behavior when the lookupKeys contains null value.  
> For example, one input record of eval method is (null,1) which means to look up data in (a,b) columns which key satisfy the requirement.  there are at least three possibility here.
>   * to ignore null value, that is, in the above example, only looks `b = 1`
>   * to lookup `is value`, that is, in the above example, only looks `a is null and b = 1`
>   * to return empty records, that is, in the above example, only looks `a = null and b = 1`
> In fact, there are different behavior in current code. 
> For example, in Jdbc connector,
> The query template in `JdbcLookUpFunction` like:
> SELECT c, d, e, f from T where a = ? and b = ?
> If pass (null, 1) to `eval` method, it will generate the following query:
> SELECT c, d, e, f from T where a = null and b = 1
> Which always outputs empty records.
> BTW, Is this behavior reasonable?
> and the `InMemoryLookupableTableSource` behaviors like point 2 in the above list.
> some private connector in Blink behaviors like point 1



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