Сканирование замены
API сканирования замены позволяет зарегистрировать обратный вызов, который вызывается при чтении таблицы, отсутствующей в каталоге. Например, при выполнении запроса такого как SELECT * FROM my_table и my_table не существует, обратный вызов сканирования замены будет вызван с my_table в качестве параметра. Затем сканирование замены может вставить функцию таблицы со специфическим параметром для замены чтения таблицы.
Обзор справки API
void duckdb_add_replacement_scan(duckdb_database db, duckdb_replacement_callback_t replacement, void *extra_data, duckdb_delete_callback_t delete_callback); void duckdb_replacement_scan_set_function_name(duckdb_replacement_scan_info info, const char *function_name); void duckdb_replacement_scan_add_parameter(duckdb_replacement_scan_info info, duckdb_value parameter); void duckdb_replacement_scan_set_error(duckdb_replacement_scan_info info, const char *error);
duckdb_add_replacement_scan
Добавляет определение сканирования замены в указанную базу данных.
Синтаксис
void duckdb_add_replacement_scan( duckdb_database db, duckdb_replacement_callback_t replacement, void *extra_data, duckdb_delete_callback_t delete_callback );
Параметры
-
db: Объект базы данных, к которому добавляется сканирование замены -
replacement: Обратный вызов сканирования замены -
extra_data: Дополнительные данные, передаваемые обратно в указанный обратный вызов -
delete_callback: Обратный вызов удаления для вызова по дополнительным данным, если таковые имеются
duckdb_replacement_scan_set_function_name
Устанавливает имя функции замены. Если эта функция вызывается в обратном вызове замены, выполняется сканирование замены. Если она не вызывается, обратный вызов замены не выполняется.
Синтаксис
void duckdb_replacement_scan_set_function_name( duckdb_replacement_scan_info info, const char *function_name );
Параметры
-
info: Объект информации -
function_name: Имя функции для подстановки.
duckdb_replacement_scan_add_parameter
Добавляет параметр к функции сканирования замены.
Синтаксис
void duckdb_replacement_scan_add_parameter( duckdb_replacement_scan_info info, duckdb_value parameter );
Параметры
-
info: Объект информации -
parameter: Параметр для добавления.
duckdb_replacement_scan_set_error
Сообщает, что при выполнении сканирования замены произошла ошибка.
Синтаксис
void duckdb_replacement_scan_set_error( duckdb_replacement_scan_info info, const char *error );
Параметры
-
info: Объект информации -
error: Сообщение об ошибке
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/api/c/replacement_scans.html