Top.Mail.Ru
Модуль uuid | Tarantool
Tarantool
Узнайте содержание релиза 2.8

Модуль uuid

Модуль uuid

A «UUID» is a Universally unique identifier. If an application requires that a value be unique only within a single computer or on a single database, then a simple counter is better than a UUID, because getting a UUID is time-consuming (it requires a syscall). For clusters of computers, or widely distributed applications, UUIDs are better.

Ниже приведен перечень всех функций и элементов модуля 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()
возвращает:UUID
тип возвращаемого значения:
 16-байтная строка
uuid.str()
возвращает:UUID
тип возвращаемого значения:
 36-байтная двоичная строка
uuid.fromstr(uuid_str)
Параметры:
  • uuid_str – UUID в 36-байтной шестнадцатеричной строке
возвращает:

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

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

cdata.

uuid.frombin(uuid_bin)
Параметры:
  • uuid_str – UUID в 16-байтной двоичной строке
возвращает:

конвертированный 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 может быть одним из следующих флагов:

  • „l“ - порядок от младшего к старшему,
  • „b“ - порядок от старшего к младшему,
  • „h“ - порядок зависит от хоста (по умолчанию),
  • „n“ - порядок зависит от сети
Параметры:
  • byte-order (string) – один из 'l', 'b', 'h' или 'n'.
возвращает:

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
...