github-actions[bot] commented on code in PR #69702:
URL: https://github.com/apache/doris/pull/69702#discussion_r4390966561


##########
fe/fe-connector/fe-connector-iceberg/src/main/java/org/apache/doris/connector/iceberg/IcebergConnectorTransaction.java:
##########
@@ -1195,7 +1194,7 @@ private void applyRowDeltaValidations(RowDelta rowDelta, 
Table icebergTable,
             List<TIcebergCommitData> commitData, List<String> 
referencedDataFiles) {
         applyBaseSnapshotValidation(rowDelta);
         applyConflictDetectionFilter(rowDelta, icebergTable, commitData);
-        if (isSerializableIsolationLevel(icebergTable)) {
+        if (isSerializableIsolationLevel(icebergTable, writeOperation)) {

Review Comment:
   [P1] Preserve SQL UPDATE identity before selecting isolation
   
   Real SQL UPDATE reaches this call with `writeOperation=MERGE`: 
`ExternalRowLevelUpdatePlanBuilder.buildMergePlan` creates the shared merge 
sink, and `PhysicalPlanTranslator.visitPhysicalExternalRowLevelMergeSink` 
hardcodes `WriteOperation.MERGE` (PhysicalPlanTranslator.java:613-619); the 
write handle/context preserve it. With 
`write.update.isolation-level=serializable` (including its default) and 
`write.merge.isolation-level=snapshot`, UPDATE now reads the MERGE property and 
skips `validateNoConflictingDataFiles`, allowing a matching concurrent append 
that its configured isolation should reject. Conversely, UPDATE=snapshot with 
the default MERGE setting still rejects appends. Preserve UPDATE versus MERGE 
through the engine-to-connector operation and cover the SQL/planner path; the 
enabled UPDATE test constructs `IcebergWriteContext(UPDATE)` directly and 
misses this.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to