You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by "rangareddy (via GitHub)" <gi...@apache.org> on 2026/09/02 05:10:13 UTC
Re: [I] update cannot change partition path value [hudi]
rangareddy commented on issue #17311:
URL: https://github.com/apache/hudi/issues/17311#issuecomment-5504704565
Re-checked against `master` at `a2788eef922e`. **Recommend closing this as superseded by HUDI-8823.**
The behaviour reported here cannot happen any more. HUDI-8568 was filed 2024-11-23 describing a silent wrong result: update the partition column, get the old value back with no error. Six weeks later HUDI-8823, "Ban update query from changing partition column value", resolved that by rejecting the statement outright. It is **Closed/Fixed**, and it landed in `6b4c8f3308dd` ("[HUDI-8823] Ban update from updating primary key and partition key", #12587, 2025-01-14).
On current `master`, an UPDATE that assigns to a partition field throws `HoodieAnalysisException` before any write happens:
https://github.com/apache/hudi/blob/a2788eef922e2375432ead3fe50af7fe5f55faf7/hudi-spark-datasource/hudi-spark3-common/src/main/scala/org/apache/spark/sql/hudi/command/UpdateHoodieTableCommand.scala#L132-L139
The Spark 4 copy carries the same check, and the behaviour is pinned by a test at `TestUpdateTable.scala:419-428`, so the repro in the description now fails fast rather than returning `(1,1,"a")`.
Two consequences worth stating explicitly, since they affect what should happen to this ticket rather than to the code:
- Patching this issue as written would mean removing a deliberate, tested restriction. That is a design reversal, not a bug fix, and belongs on `dev@` rather than in a drive-by PR. If cross-partition UPDATE is still wanted, it is cleaner to reopen it as a feature request that references HUDI-8823, so the reviewer sees the ban is being lifted on purpose.
- Moving a record across partitions from SQL is already supported today via MERGE INTO with a global index and the matching `update.partition.path` config enabled. See `MergeIntoHoodieTableCommand.scala:306-317` and the index-to-config map at `:1197-1201`.
One small piece of residue if this stays open in any form: the rejection message says "Please remove the assignment clause to avoid the error", which does not tell a user what to do instead. Naming the MERGE INTO route there would save the next person the trip to this ticket.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@hudi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org