Обновлена 15 сентября 2026 г. в 08:55
Расширения space_object
Расширить space_object пользовательскими функциями можно следующим
образом:
- Создайте Lua-функцию.
- Добавьте имя функции в предопределенную глобальную переменную
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()