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]