Module uuid | Tarantool
Документация на русском языке
поддерживается сообществом

Module uuid

UUID означает универсальный уникальный идентификатор. Если приложение требует, чтобы значение было уникальным в рамках одной машины или одной БД, лучше использовать простой счетчик, а не UUID. Это связано с тем, что получать UUID-значения времязатратно и требует системного вызова. Используйте UUID для кластеров машин и крупных распределенных приложений. Tarantool генерирует UUID-значения по варианту 1 версии 4 правил, определенных в RFC 4122.

Ниже приведен перечень всех функций и элементов модуля uuid.

Имя Назначение
uuid.nil Объект nil
uuid()
uuid.bin()
uuid.str()
Получение UUID
uuid.new() Создание UUID
uuid.fromstr()
uuid.frombin()
uuid_object:bin()
uuid_object:str()
Получение конвертированного UUID
uuid.is_uuid() Проверка, является ли указанное значение UUID
uuid_object:isnil() Проверка, состоит ли UUID из одних нулей
uuid.nil

Объект nil

uuid.new()

Since version 2.4.1. Create a UUID sequence. You can use it in an index over a uuid field. For example, to create such index for a space named test, say:

tarantool> box.space.test:create_index("pk", {parts={{field = 1, type = 'uuid'}}})

Теперь можно вставить uuid’ы в спейс:

tarantool> box.space.test:insert{uuid.new()}
---
- [e631fdcc-0e8a-4d2f-83fd-b0ce6762b13f]
...

tarantool> box.space.test:insert{uuid.fromstr('64d22e4d-ac92-4a23-899a-e59f34af5479')}
---
- [64d22e4d-ac92-4a23-899a-e59f34af5479]
...

tarantool> box.space.test:select{}
---
- - [64d22e4d-ac92-4a23-899a-e59f34af5479]
- [e631fdcc-0e8a-4d2f-83fd-b0ce6762b13f]
...
возвращает:UUID
тип возвращаемого значения:
 cdata.
uuid.__call()
возвращает:UUID
тип возвращаемого значения:
 cdata.
uuid.bin([byte-order])
Параметры:
  • byte-order (string) –

    Byte order of the resulting UUID:

    • 'l' - little-endian
    • 'b' - big-endian
    • 'h', 'host' - endianness depends on host (default)
    • 'n', 'network' - endianness depends on network
возвращает:

UUID

тип возвращаемого значения:
 

16-байтная строка

uuid.str()
возвращает:UUID
тип возвращаемого значения:
 36-байтная двоичная строка
uuid.fromstr(uuid-str)
Параметры:
  • uuid-str (string) – UUID в 36-байтной шестнадцатеричной строке
возвращает:

конвертированный UUID

тип возвращаемого значения:
 

cdata.

uuid.frombin(uuid-bin[, byte-order])
Параметры:
  • uuid-bin (string) – UUID в 16-байтной двоичной строке
  • byte-order (string) –

    Byte order of the given string:

    • 'l' - little-endian
    • 'b' - big-endian
    • 'h', 'host' - endianness depends on host (default)
    • 'n', 'network' - endianness depends on network
возвращает:

конвертированный UUID

тип возвращаемого значения:
 

cdata.

uuid.is_uuid(value)

Since version 2.6.1.

Параметры:
  • value – проверяемое значение
возвращает:

true, если указанное значение имеет тип uuid, в противном случае false

тип возвращаемого значения:
 

bool (логический)

object uuid_object
uuid_object:bin([byte-order])
Параметры:
  • byte-order (string) –

    Byte order of the resulting UUID:

    • 'l' - little-endian
    • 'b' - big-endian
    • 'h', 'host' - endianness depends on host (default)
    • 'n', 'network' - endianness depends on network
возвращает:

UUID, сконвертированный из введенного значения формата cdata.

тип возвращаемого значения:
 

16-байтная двоичная строка

uuid_object:str()
возвращает:UUID, сконвертированный из введенного значения формата cdata.
тип возвращаемого значения:
 36-байтная шестнадцатеричная строка
uuid_object:isnil()

Значение UUID из одних нулей может быть выражено как uuid.NULL или uuid.fromstr('00000000-0000-0000-0000-000000000000'). Сравнение со значением из одних нулей также может быть выражено как uuid_with_type_cdata == uuid.NULL.

возвращает:true (правда), если значение состоит из одних нулей, в противном случае false (ложь).
тип возвращаемого значения:
 bool (логический)

tarantool> uuid = require('uuid')
---
...
tarantool> uuid(), uuid.bin(), uuid.str()
---
- 16ffedc8-cbae-4f93-a05e-349f3ab70baa
- !!binary FvG+Vy1MfUC6kIyeM81DYw==
- 67c999d2-5dce-4e58-be16-ac1bcb93160f
...
tarantool> uu = uuid()
---
...
tarantool> #uu:bin(), #uu:str(), type(uu), uu:isnil()
---
- 16
- 36
- cdata
- false
...