[
https://issues.apache.org/jira/browse/FLINK-41348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ramin Gharib reassigned FLINK-41348:
------------------------------------
Assignee: Ramin Gharib
> Merge nested VARIANT modification calls into one pass
> -----------------------------------------------------
>
> Key: FLINK-41348
> URL: https://issues.apache.org/jira/browse/FLINK-41348
> Project: Flink
> Issue Type: Sub-task
> Components: Table SQL / Planner
> Reporter: Ramin Gharib
> Assignee: Ramin Gharib
> Priority: Major
>
> Each modification function reads a whole VARIANT and writes a new one. In a
> nested chain, each inner result is written only for the next call to read. A
> planner rule replaces the chain with one internal call that does all the
> edits in one pass.
> {code:sql}
> VARIANT_DELETE(VARIANT_SET(v, '$.processed_at', ts), '$.user.email')
> -- Without the rule: VARIANT_SET writes v1, VARIANT_DELETE reads v1 and
> writes v2
> -- With the rule: one call reads v, applies both edits and writes v2
> {code}
> Scope:
> * The result is the same, and the edits still run from the inner call to the
> outer call.
> * Skip a chain when the query also uses an inner result on its own, such as
> in another column.
> * Skip a chain that contains a TRY_ call.
> * VARIANT_MERGE joins the rule once FLINK-41347 lands.
> * Plan tests for merged and skipped chains, and restore tests from compiled
> plans.
> Depends on FLINK-41339, FLINK-41340, FLINK-41341 and FLINK-41342
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)