⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
替换扫描

替换扫描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:错误消息