Модуль box
-
int
box_return_tuple(box_function_ctx_t *ctx, box_tuple_t *tuple) Возврат кортежа с помощью хранимой процедуры на языке C.
Для возвращаемого кортежа Tarantool проводит автоматический подсчет ссылок. Пример программы, которая использует
box_return_tuple(): write.c.Параметры: - ctx (box_funtion_ctx_t*) – непрозрачная структура, передаваемая Tarantool в хранимую процедуру на языке C
- tuple (box_tuple_t*) – возвращаемый кортеж
Результат: -1 в случае ошибки (возможная нехватка памяти; проверьте box_error_last())
Результат: 0 в остальных случаях
-
uint32_t
box_space_id_by_name(const char *name, uint32_t len) Поиск идентификатора спейса по имени.
Данная функция делает запрос выборки SELECT из системного спейса
_vspace.Параметры: - char* name (const) – имя спейса
- len (uint32_t) – длина имени
name
Результат: BOX_ID_NILв случае ошибки или отсутствия (проверьте box_error_last())Результат: space_id в остальных случаях
См. также
box_index_id_by_name
-
uint32_t
box_index_id_by_name(uint32_t space_id, const char *name, uint32_t len) Поиск идентификатора индекса по имени.
Данная функция делает запрос выборки SELECT из системного спейса
_vindex.Параметры: - space_id (uint32_t) – идентификатор спейса
- char* name (const) – имя индекса
- len (uint32_t) – длина имени
name
Результат: BOX_ID_NILв случае ошибки или отсутствия (проверьте box_error_last())Результат: space_id в остальных случаях
См. также
box_space_id_by_name
-
int
box_insert(uint32_t space_id, const char *tuple, const char *tuple_end, box_tuple_t **result) Выполнение запроса вставки или замены (INSERT/REPLACE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- char* tuple (const) – закодированный кортеж в формате MsgPack-массива ([ field1, field2, …])
- char* tuple_end (const) – конец кортежа
tuple - result (box_tuple_t**) – аргумент вывода. Возвращаемый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.insert()
-
int
box_replace(uint32_t space_id, const char *tuple, const char *tuple_end, box_tuple_t **result) Выполнение запроса замены (REPLACE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- char* tuple (const) – закодированный кортеж в формате MsgPack-массива ([ field1, field2, …])
- char* tuple_end (const) – конец кортежа
tuple - result (box_tuple_t**) – аргумент вывода. Возвращаемый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.replace()
-
int
box_delete(uint32_t space_id, uint32_t index_id, const char *key, const char *key_end, box_tuple_t **result) Выполнение запроса удаления (DELETE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- index_id (uint32_t) – идентификатор индекса
- char* key (const) – закодированный ключ в формате MsgPack-массива ([ field1, field2, …])
- char* key_end (const) – конец ключа
key - result (box_tuple_t**) – аргумент вывода. Старый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.delete()
-
int
box_update(uint32_t space_id, uint32_t index_id, const char *key, const char *key_end, const char *ops, const char *ops_end, int index_base, box_tuple_t **result) Выполнение запроса обновления (UPDATE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- index_id (uint32_t) – идентификатор индекса
- char* key (const) – закодированный ключ в формате MsgPack-массива ([ field1, field2, …])
- char* key_end (const) – конец ключа
key - char* ops (const) – закодированные операции в формате MsgPack-массива, например
[[ '=', field_id, value ], ['!', 2, 'xxx']] - char* ops_end (const) – конец раздела операций
ops - index_base (int) – 0, если идентификаторы полей field_id с основанием 0, как в C, 1, если идентификаторы полей с основанием 1, как в Lua
- result (box_tuple_t**) – аргумент вывода. Старый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.update()
-
int
box_upsert(uint32_t space_id, uint32_t index_id, const char *tuple, const char *tuple_end, const char *ops, const char *ops_end, int index_base, box_tuple_t **result) Выполнение запроса обновления и вставки (UPSERT).
Параметры: - space_id (uint32_t) – идентификатор спейса
- index_id (uint32_t) – идентификатор индекса
- char* tuple (const) – закодированный кортеж в формате MsgPack-массива ([ field1, field2, …])
- char* tuple_end (const) – конец кортежа
tuple - char* ops (const) – закодированные операции в формате MsgPack-массива, например
[[ '=', field_id, value ], ['!', 2, 'xxx']] - char* ops_end (const) – конец операций
ops - index_base (int) – 0, если идентификаторы полей field_id с основанием 0, как в C, 1, если идентификаторы полей с основанием 1, как в Lua
- result (box_tuple_t**) – аргумент вывода. Старый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.upsert()