Skip to content

DELETE using _rowaddr incorrectly applied to all fragments #117

@qidian99

Description

@qidian99

When performing a DELETE operation using _rowaddr as the filter, the delete is incorrectly applied across all fragments instead of only the targeted row.

Reproduction Steps

create table mor (id int, val string);

insert into mor values
  (1, 'val1'),
  (2, 'val2'),
  (3, 'val3');

select _rowaddr, * from mor;
-- returns:
-- 0             1   val1
-- 4294967296    2   val2
-- 8589934592    3   val3

delete from mor where _rowaddr = 0;

Expected Behavior

Only the row with _rowaddr = 0 should be deleted.

Actual Behavior

Image

After running the delete, querying the table returns no rows, meaning the delete was incorrectly applied to all fragments.

This suggests _rowaddr filtering is not constrained per fragment


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions