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

lincoln lee updated FLINK-28987:
--------------------------------
    Description: 
FLINK-28779 introduces a new lookup hint, for LegacyTableSourceTable interface, 
it defines only one lookup capability of either sync or async is supported by 
'isAsyncEnabled', but we add a unnecessary fallback path to fetch both async 
and sync lookup in `LookupJoinUtil`, this should be fixed.
{code:java}
if (tableSource.isAsyncEnabled()) {
asyncLookupFunction = 
tableSource.getAsyncLookupFunction(lookupFieldNamesInOrder);
}
syncLookupFunction = tableSource.getLookupFunction(lookupFieldNamesInOrder);

{code}
Once this was fixed, it can completely avoid create user lookup function 
instance to determine if async lookup is enabled for execution, this can make 
the exec lookup join node immutable and easier to maintain.

Also, since the new hint adds the capability of configuring async params on 
join level (different joins in same query may has different params), so the 
description of lookup join transformation should carry async params and retry 
strategy (which take effect in runtime) for easier debugging

  was:
FLINK-28779 introduces a new lookup hint, for LegacyTableSourceTable interface, 
it defines only one lookup capability of either sync or async is supported by 
'isAsyncEnabled', but we add a unnecessary fallback path to fetch both async 
and sync lookup in `LookupJoinUtil`, this should be fixed.

{code}

if (tableSource.isAsyncEnabled()) {
asyncLookupFunction = 
tableSource.getAsyncLookupFunction(lookupFieldNamesInOrder);
}
syncLookupFunction = tableSource.getLookupFunction(lookupFieldNamesInOrder);

{code}

 

Also, since the new hint adds the capability of configuring async params on 
join level (different joins in same query may has different params), so the 
description of lookup join transformation should carry async params and retry 
strategy (which take effect in runtime) for easier debugging


> Incorrect async to sync lookup fallback path of LegacyTableSourceTable
> ----------------------------------------------------------------------
>
>                 Key: FLINK-28987
>                 URL: https://issues.apache.org/jira/browse/FLINK-28987
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Planner
>    Affects Versions: 1.16.0
>            Reporter: lincoln lee
>            Assignee: lincoln lee
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.16.0
>
>
> FLINK-28779 introduces a new lookup hint, for LegacyTableSourceTable 
> interface, it defines only one lookup capability of either sync or async is 
> supported by 'isAsyncEnabled', but we add a unnecessary fallback path to 
> fetch both async and sync lookup in `LookupJoinUtil`, this should be fixed.
> {code:java}
> if (tableSource.isAsyncEnabled()) {
> asyncLookupFunction = 
> tableSource.getAsyncLookupFunction(lookupFieldNamesInOrder);
> }
> syncLookupFunction = tableSource.getLookupFunction(lookupFieldNamesInOrder);
> {code}
> Once this was fixed, it can completely avoid create user lookup function 
> instance to determine if async lookup is enabled for execution, this can make 
> the exec lookup join node immutable and easier to maintain.
> Also, since the new hint adds the capability of configuring async params on 
> join level (different joins in same query may has different params), so the 
> description of lookup join transformation should carry async params and retry 
> strategy (which take effect in runtime) for easier debugging



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

Reply via email to