Инструменты пользователя

Инструменты сайта


databases:tarantool

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
databases:tarantool [2021/12/28 12:42]
admin
databases:tarantool [2021/12/29 10:52] (текущий)
admin [Примеры]
Строка 487: Строка 487:
 capi_connection:call('easy.easy2') capi_connection:call('easy.easy2')
 </code> </code>
 +</details>
 +
 +
 +
 +<details>
 +<summary> :!: **Еще пример использования С** </summary>
 +
 +В основном используются API функции [[https://github.com/tarantool/msgpuck|модуля msgpuck]]\\
 +
 +
 +"hardest.c"
 +<code c>
 +#include "/usr/include/tarantool/module.h"
 +#include "/var/msgpuck/msgpuck.h"
 +
 +int hardest(box_function_ctx_t *ctx, const char *args, const char *args_end)
 +{
 +        uint32_t space_id= box_space_id_by_name("capi_test", strlen("capi_test"));
 +        char tuple[1024];
 +        char *tuple_pointer= tuple;
 +        tuple_pointer= mp_encode_array(tuple_pointer, 2);
 +        tuple_pointer= mp_encode_uint(tuple_pointer, 10000);
 +        tuple_pointer= mp_encode_str(tuple_pointer, "String 2", 8);
 +        int n= box_insert(space_id, tuple, tuple_pointer, NULL);
 +        return n;
 +}
 +</code>
 +
 +После компиляции модуля выполните в терминале тарантула:
 +<code lua>
 +box.schema.func.create('hardest', {language = "C"})
 +box.schema.user.grant('guest', 'execute', 'function', 'hardest')
 +box.schema.user.grant('guest', 'read,write', 'space', 'capi_test')
 +capi_connection:call('hardest')
 +
 +-- Выполнение
 +box.space.capi_test:select()
 +</code>
 +</details>
 +
 +
 +<details>
 +<summary> :!: **Использование SQL** </summary>
 +
 +Подключаемся к консоли, двумя командами задаем язык и разделитель команд:\\
 +<code bash>
 +tarantool> \set language sql
 +tarantool> \set delimiter ;
 +</code>
 +
 +Далее выполняем команды в формате SQL
 +<code sql>
 +tarantool> create table table1 (column1 integer primary key, column2 varchar(100));
 +tarantool> insert into table1 values (1, 'A'); insert into table1 values (2, 'B'); 
 +tarantool> update table1 set column2='AB' where column1='2';
 +tarantool> select * from table1;
 +</code>
 +Результат аналогичен использованию команд типа "box.space..."\\
 +Здесь создается пространство "table1", и вставка пары кортежей (записей).\\
 </details> </details>
  
databases/tarantool.1640695365.txt.gz · Последнее изменение: 2021/12/28 12:42 — admin