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

Prashant Wason updated HUDI-5405:
---------------------------------
    Fix Version/s: 0.14.1
                       (was: 0.14.0)

> Avoid using Projections in generic Merge Into DMLs
> --------------------------------------------------
>
>                 Key: HUDI-5405
>                 URL: https://issues.apache.org/jira/browse/HUDI-5405
>             Project: Apache Hudi
>          Issue Type: Bug
>          Components: spark-sql
>    Affects Versions: 0.12.1
>            Reporter: Alexey Kudinkin
>            Priority: Critical
>             Fix For: 0.14.1
>
>
> Currently, `MergeIntoHoodieTableCommand` squarely relies on semantic 
> implemented by `ExpressionPayload` to be able to insert/update records.
> While this is necessary since MIT semantic enables users to do sophisticated 
> and fine-grained updates (for ex, partial updating), this is not necessary in 
> the most generic case:
>  
> {code:java}
> MERGE INTO target
> USING ... source
> ON target.id = source.id
> WHEN MATCHED THEN UPDATE *
> WHEN NOT MATCHED THEN INSERT *{code}
> This is essentially just a SQL way of implementing an upsert – if there are 
> matching records in the table we update them, otherwise – insert.
> In this case there's actually no need to use ExpressionPayload at all, and we 
> can just simply use normal Hudi upserting flow to handle it (avoiding all of 
> the ExpressionPayload overhead)



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

Reply via email to