refactor prepared statements C API
Текущий МР наводит порядок с экспортированными API для откомпилированных SQL выражений.
- Изменились API для для исполнения выражений (как уже находящихся в глобальном кэше, так и мимо кэша). Теперь мы подаем на вход message pack вместо сишной структуры параметров. Как следствие, больше нет нужды в sql_bind_list_decode (он просто опасен из-за утечек памяти).
- Наведен порядок во внутренних функциях с порядком выходных аргументов.
- Упрощена жизнь пользователей, у которых есть несколько подключений к экземпляру тарантула (конкретно - sbroad в picodata). Теперь если откомпилировать выражение в одной сессии, то при вызове execute через C API в другой мы подтянем его из глобального кэша (и не нужно делать ручками prepare). Так как проверка привилегий все равно будет произведена на этапе исполнения, то дырки в безопасности тут нет.
- Поправил API для sql_prepare (теперь это sql_prepare_ext) - в нем больше нет исходящего параметра port (и его можно будет убрать из модуля тарантула).
Edited by Denis Smirnov