Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Расширения space_object

Расширить space_object пользовательскими функциями можно следующим образом:

  1. Создайте Lua-функцию.
  2. Добавьте имя функции в предопределенную глобальную переменную box.schema.space_mt, которая имеет тип table. Добавление в box.schema.space_mt делает функцию доступной для всех спейсов.

3. Вызовите функцию для space_object: space_object:function-name([parameters]). Также можно сделать пользовательскую функцию доступной только для одного спейса, вызвав getmetatable(space_object) и затем добавив имя функции в метатаблицу.

См. также: Расширения index_object.

Пример:

-- Доступный для любого спейса, без параметров.-- После таких запросов значение глобальной переменной global_variable будет 6.box.schema.space.create('t')box.space.t:create_index('i')global_variable = 5function f(space_arg) global_variable = global_variable + 1 endbox.schema.space_mt.counter = fbox.space.t:counter()