get
Параметры:
space_object(space_object) — ссылка на объектkey(scalar/table) — значение для сопоставления с ключом индекса, который может быть составным.
Возвращает
кортеж, ключ индекса которого совпадает с key, или nil.
Тип возвращаемого значения
tuple
Возможные ошибки:
space_objectне существует.ER_TRANSACTION_CONFLICT— если обнаружен конфликт транзакций в режиме транзакций MVCC.
Факторы сложности:
Размер индекса, тип индекса, количество индексов, к которым получен доступ, настройки журнала упреждающей записи (WAL).
Функция box.space...select вернет набор кортежей в виде Lua-таблицы;
функция box.space...get вернет самое большее один кортеж.
Можно получить первый кортеж в спейсе, добавив [1].
Таким образом, box.space.tester:get{1} эквивалентна box.space.tester:select{1}[1], если найден только один кортеж.
Пример:
box.space.tester:get{1}
Использование имен полей вместо номеров полей:
В get() можно использовать имена полей, описанные в необязательном операторе space_object:format().
Это связано с тем, что функция get() возвращает объект, который можно использовать с большинством функций,
описанных в box.tuple, включая tuple_object[field-name].
Например, можно форматировать спейс tester с полем под названием x и использовать имя x в определении индекса:
box.space.tester:format({{name='x',type='scalar'}})box.space.tester:create_index('I',{parts={'x'}})
Тогда, если get или select вернут отдельный кортеж, можно сослаться на поле x в кортеже по имени:
box.space.tester:get{1}['x']box.space.tester:select{1}[1]['x']