[ 
https://issues.apache.org/jira/browse/IGNITE-18882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Semyon Danilov updated IGNITE-18882:
------------------------------------
    Description: 
This test in AbstractMvPartitionStorageGcTest should pass   


{code:java}
void testTombstoneFirst() {
        addAndCommit(null);

        addAndCommit(TABLE_ROW);

        addAndCommit(TABLE_ROW2);

        BinaryRowAndRowId row = pollForVacuum(HybridTimestamp.MAX_VALUE);

        assertRowMatches(row.binaryRow(), TABLE_ROW);
    }
{code}


At this moment, storages will store the tombstone if it is the first committed 
value which disrupts the GC flow.

addWrite with null argument as a first version of row is valid, for example: 


{code:sql}
CREATE TABLE test (
  id INT
);
BEGIN;
INSERT INTO test VALUES(1);
DELETE from test where id = 1;
COMMIT;
{code}


is ok, but tombstone should not be stored (so the operation should be no-op)

  was:
This test in AbstractMvPartitionStorageGcTest should pass   


{code:java}
void testTombstoneFirst() {
        addAndCommit(null);

        addAndCommit(TABLE_ROW);

        addAndCommit(TABLE_ROW2);

        BinaryRowAndRowId row = pollForVacuum(HybridTimestamp.MAX_VALUE);

        assertRowMatches(row.binaryRow(), TABLE_ROW);
    }
{code}


At this moment, storages will store the tombstone if it is the first committed 
value which disrupts the GC flow.

addWrite with null argument as a first version of row is valid, for example: 


{code:sql}
CREATE TABLE test (id INT);
DELETE from test where id = 0;
{code}


is ok, but tombstone should not be stored (so the operation should be no-op)


> Fix tombstone is stored if it is the first entry of version chain
> -----------------------------------------------------------------
>
>                 Key: IGNITE-18882
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18882
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Semyon Danilov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> This test in AbstractMvPartitionStorageGcTest should pass   
> {code:java}
> void testTombstoneFirst() {
>         addAndCommit(null);
>         addAndCommit(TABLE_ROW);
>         addAndCommit(TABLE_ROW2);
>         BinaryRowAndRowId row = pollForVacuum(HybridTimestamp.MAX_VALUE);
>         assertRowMatches(row.binaryRow(), TABLE_ROW);
>     }
> {code}
> At this moment, storages will store the tombstone if it is the first 
> committed value which disrupts the GC flow.
> addWrite with null argument as a first version of row is valid, for example: 
> {code:sql}
> CREATE TABLE test (
>   id INT
> );
> BEGIN;
> INSERT INTO test VALUES(1);
> DELETE from test where id = 1;
> COMMIT;
> {code}
> is ok, but tombstone should not be stored (so the operation should be no-op)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to