[Tarantool-patches] [PATCH v2 1/2] uuid: support comparison of uuid values in Lua

Oleg Babin olegrok at tarantool.org
Tue Nov 24 22:23:08 MSK 2020


Thanks for your review!

On 24/11/2020 18:20, Igor Munkin wrote:
> Oleg,
>
> Thanks for the patch! Considering the version on the remote branch, LGTM
> except a single nit below.
>
> On 18.11.20,olegrok at tarantool.org  wrote:
>> From: Oleg Babin<babinoleg at mail.ru>
>>
>> Since Tarantool has uuid data type sometimes we want to compare
>> uuid vaues as it's possible for primitive types and decimals. This
>> patch exports function for uuid comparison and implements le and
>> lt metamethods for uuid type.
> Minor: Strictly saying, you're right, but AFAICS we usually use the key
> name (i.e. __le and __lt) for metamethods in description.

Fixed. Description is updated, branch is force-pushed. New description:

     Since Tarantool has uuid data type sometimes we want to compare
     uuid values as it's possible for primitive types and decimals. This
     patch exports function for uuid comparison and implements __le and
     __lt metamethods for uuid type.


>> Closes #5511
>>
>> @TarantoolBot document
>> Title: uuid comparison is supported
>>
>> Currently comparison between uuid values is supported.
>> Example:
>> ```lua
>> u1 = uuid.fromstr('aaaaaaaa-aaaa-4000-b000-000000000001')
>> u2 = uuid.fromstr('bbbbbbbb-bbbb-4000-b000-000000000001')
>>
>> u1 > u2  -- false
>> u1 >= u2 -- false
>> u1 <= u2 -- true
>> u1 < u2  -- true
>> ```
>> ---
>> Issue:https://github.com/tarantool/tarantool/issues/5511
>> Branch:https://github.com/tarantool/tarantool/tree/olegrok/5511-uuid-cmp-v2
>>
>>   src/exports.h          |  1 +
>>   src/lua/uuid.lua       | 25 +++++++++++++
>>   test/app/uuid.result   | 79 ++++++++++++++++++++++++++++++++++++++++++
>>   test/app/uuid.test.lua | 29 ++++++++++++++++
>>   4 files changed, 134 insertions(+)
>>
> <snipped>
>
>> diff --git a/src/lua/uuid.lua b/src/lua/uuid.lua
>> index 42016601d..08991cfeb 100644
>> --- a/src/lua/uuid.lua
>> +++ b/src/lua/uuid.lua
> <snipped>
>
>> +local uuid_lt = function(lhs, rhs)
>> +    return uuid_cmp(lhs, rhs) < 0
>> +end
>> +local uuid_le = function(lhs, rhs)
>> +    return uuid_cmp(lhs, rhs) <= 0
>> +end
> Side note: I see no reason to define these oneline functions (you can
> simply store an anonymous function right to the metatable), but I see
> them everywhere in Tarantool sources, so feel free to ignore this note.

Let's keep general style of this module and define comparators as local 
functions. I stay them as is.



More information about the Tarantool-patches mailing list