Skip to content

Commit da2a26f

Browse files
committed
fix: DELETE using _rowaddr incorrectly applied to all fragments
1 parent 6db8f08 commit da2a26f

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

lance-spark-3.5_2.12/src/main/java/com/lancedb/lance/spark/write/SparkPositionDeltaWrite.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,14 @@ private LanceDeltaWriter(LanceConfig config, LanceDataWriter writer) {
149149

150150
@Override
151151
public void delete(InternalRow metadata, InternalRow id) throws IOException {
152+
long rowAddr = id.getLong(0);
153+
int fragmentIdFromAddr = (int) (rowAddr >> 32);
152154
int fragmentId = metadata.getInt(0);
155+
156+
if (fragmentId != fragmentIdFromAddr) {
157+
return;
158+
}
159+
153160
deletedRows.compute(
154161
fragmentId,
155162
(k, v) -> {

0 commit comments

Comments
 (0)