Hi,

This is because temporal table join doesn't support join on a nested join.
In blink planner, a temporal table join will be translated into lookup join
which will use the equality condition fields as the lookup keys.
However, nested fields can't be lookup keys for now.

Is that possible to have a top-level fields as the join key in your case?

Best,
Jark

On Wed, 25 Mar 2020 at 18:08, izual <izual...@163.com> wrote:

> Hi, Community:
> I defined a dim table(tblDim) with schema :
>
> root
>
>  |-- dim_nested_fields: ROW<`id` INT, `product_name` STRING>
>
>
> and the part of SQL is : JOIN ... ON leftTable.`nested_field`.id =
> tblDim.`dim_nested_fields`.id.
>
>
> which will throw an exception like:
>
> Exception in thread "main" org.apache.flink.table.api.TableException:
> Temporal table join requires an equality condition on fields of table
> [MockTableSource(dim_nested_fields)].
>
>
> Then I found these code snippets in UnitTest: FOR SYSTEM_TIME AS OF
> T.proctime AS D ON T.a + 1 = D.id + 2
> Which will throw the same exception too.
>
> In my opinion, these two are not the same case.
> Why ` join ... on ... tblDim.`dim_nested_fields`.id ` failed, is it by
> design or a bug?
> And what's the recommended way to solve this?
>
> Thanks.
>
>
>
>

Reply via email to