You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "Sagar Sumit (Jira)" <ji...@apache.org> on 2023/08/07 18:10:00 UTC
[jira] [Created] (HUDI-6662) Merge Into fails if there is an extra data column in the join expression
Sagar Sumit created HUDI-6662:
---------------------------------
Summary: Merge Into fails if there is an extra data column in the join expression
Key: HUDI-6662
URL: https://issues.apache.org/jira/browse/HUDI-6662
Project: Apache Hudi
Issue Type: Task
Reporter: Sagar Sumit
Fix For: 0.14.0
{code:java}
|create table $tableName (
| id int,
| name string,
| price double,
| ts long
|) using hudi
| location '${tmp.getCanonicalPath}'
| tblproperties (
| primaryKey ='id',
| preCombineField = 'ts'
| )
-- insert 2 records --
insert into $tableName values(1, 'a1', 10, 1000);
insert into $tableName values(2, 'a2', 11, 1000)
-- merge into --
| merge into $tableName as t0
| using (
| select 1 as id, 'a1' as name, 12 as price, 1003 as ts
| ) s0
| on t0.id = s0.id and t0.name = s0.name
| when matched then update set *
| WHEN NOT MATCHED THEN INSERT *{code}
This will throw the followin error with the latest master, while the previous versions worked
{code:java}
org.apache.spark.sql.AnalysisException: Only simple conditions of the form `t.id = s.id` using primary key or partition path columns are allowed on tables with primary key. (illegal column(s) used: `partition`
at org.apache.spark.sql.hudi.command.MergeIntoHoodieTableCommand.recordKeyAttributeToConditionExpression$lzycompute(MergeIntoHoodieTableCommand.scala:183)
at org.apache.spark.sql.hudi.command.MergeIntoHoodieTableCommand.recordKeyAttributeToConditionExpression(MergeIntoHoodieTableCommand.scala:130)
at org.apache.spark.sql.hudi.command.MergeIntoHoodieTableCommand.projectedJoinedDataset(MergeIntoHoodieTableCommand.scala:355)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)