- Apr 13, 2022
-
-
Vladimir Davydov authored
The trigger is invoked on IPROTO CALL/EVAL. The trigger callback is passed a context with function name or eval expression and arguments (MsgPack data). It will be used for auditing CALL/EVAL events in the EE version. NO_TEST=ee NO_DOC=internal NO_CHANGELOG=internal
-
- Jun 24, 2019
-
-
Kirill Shcherbatov authored
Re-factor box_lua_call and box_lua_eval so that they don't take call_request. This approach is more scalable: in case of a functional index, the user expects to see a tuple with field names so we should be able to pass not only raw msgpack, but also a tuple to a Lua call so we need an universal way to pass arguments to _call methods. To pass a tuple msgpack introduced a new port_msgpack: the port class with dump_lua method. A new method get_msgpack returns a content of a port as a msgpack data. The lifecycle of the returned value is implementation-specific: it may either be returned directly from the port, in which case the data will stay alive as long as the port is alive, or it may be allocated on the fiber()->gc, in which case the caller is responsible for cleaning up. Needed for #4182, #1260
-
- Jul 13, 2018
-
-
Kirill Shcherbatov authored
Closes #2946. @TarantoolBot document Title: fixed module reload There was a bug in tarantool documentation: https://tarantool.io/en/doc/1.7/book/box/ box_schema/#lua-function.box.schema.func.reload Now it is allowed to reload all functions in loadable module via one method. Legacy method including finction name is forbidden. box.schema.func.reload("utils") -- ok since now box.schema.func.reload("utils.func1") -- forbidden since now Global reload is still unsupported because it seems to be useless. box.schema.func.reload() -- invalid!
-
- Jan 18, 2018
-
-
Vladimir Davydov authored
The iproto subsystem switches between two output buffers once in a while in order to reclaim memory so passing a pointer to the output buffer directly to box_process_call() or box_process_eval() is incorrect in case the called function yields. To fix that, let's make these functions return the CALL/EVAL result in a port object, which then can then be encoded in msgpack with port_dump(). Needed for #946
-
- Jan 17, 2018
-
-
Vladimir Davydov authored
We can do it for free now as all functions used by call.cc have already been converted to C and there's nothing in call.cc that really needs any C++ features.
-
- Aug 15, 2017
-
-
Georgy Kirichenko authored
This patch adds ability to reload C procedures on the fly without downtime. To achive that, Tarantool loads a new copy of shared library and starts routing all new request to the new version. The previous version remains active until all started calls are finished. All shared libraries are loaded with RTLD_LOCAL, therefore two or more copies can co-exist without any problems. From now box loads all external modules via an unique symlink to avoid caching inside dlopen(). If one of some module function is reloaded then all other functions from this module will be reloaded. Reviewed and heavily patched by Roman Tsisyk. Closes #910
-
- Aug 09, 2017
-
-
Roman Tsisyk authored
Needed for #910
-
- Jul 28, 2017
-
-
Vladislav Shpilevoy authored
-
- May 20, 2016
-
-
Konstantin Osipov authored
-
- Aug 12, 2015
-
-
Konstantin Osipov authored
-