Top.Mail.Ru
box.space._func | Tarantool
Tarantool
Узнайте содержание релиза 2.8

box.space._func

box.space._func

box.space._func

_func – это системный спейс, который содержит кортежи с функциями, созданными с помощью box.schema.func.create().

Кортежи в данном спейсе включают в себя следующие поля:

  • числовой идентификатор функции, число,
  • имя функции
  • флаг,
  • название языка (необязательно): „LUA“ (по умолчанию) или „C“

Спейс _func не содержит саму функцию. Lua-функции создаются по-прежнему с помощью function имя_функции () ... end без каких-либо добавлений в спейс _func. Спейс _func предназначен лишь для хранения кортежей с функциями так, чтобы их имена могли использоваться в функциях выдачи/отмены прав.

Доступны следующие операции:

Пример:

В следующем примере создадим функцию с именем ‘f7’, поместим ее в спейс _func в Tarantool’е и выдадим права на „выполнение“ этой функции пользователю „guest“.

tarantool> function f7()
         >  box.session.uid()
         > end
---
...
tarantool> box.schema.func.create('f7')
---
...
tarantool> box.schema.user.grant('guest', 'execute', 'function', 'f7')
---
...
tarantool> box.schema.user.revoke('guest', 'execute', 'function', 'f7')
---
...