You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladislav Pyatkov (Jira)" <ji...@apache.org> on 2022/11/30 15:12:00 UTC

[jira] [Created] (IGNITE-18299) Value comparison in table operations

Vladislav Pyatkov created IGNITE-18299:
------------------------------------------

             Summary: Value comparison in table operations
                 Key: IGNITE-18299
                 URL: https://issues.apache.org/jira/browse/IGNITE-18299
             Project: Ignite
          Issue Type: Improvement
            Reporter: Vladislav Pyatkov


*Motivation:*
InternalTable has two operations that requires to check a stored value with a provided one. The operations are deleteExact and replace (the variant with an old value).
Currently, we are checking equality just after extract a binary row from storage according to the method:
{code}
private boolean equalValues(@NotNull BinaryRow row, @NotNull BinaryRow row2) {
    if (row.hasValue() ^ row2.hasValue()) {
        return false;
    }
    return row.valueSlice().compareTo(row2.valueSlice()) == 0;
}
{code} 
This approach does not work even for really same rows, because there are different implementation of BinaryRow here. Moreover, there is no bother about different schemas of the rows.

*Definition of Done:*
1) Necessary, ensure that the schema of requested row is greater or equals with the schema of row got from a storage.
2) Then upgrade the row from storage, in order to both rows become in the same versions (the same implementation for both rows is also here - row with schema).
3) Only after these two steps we ready to compare the rows withing the method above. 



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