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

Vladislav Pyatkov updated IGNITE-18299:
---------------------------------------
    Labels: ignite-3  (was: )

> 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
>            Priority: Major
>              Labels: ignite-3
>
> *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)

Reply via email to