可以提供配置选项来更改数据库系统的不同设置。请注意,许多这些设置稍后也可以使用PRAGMA
语句进行更改。应该创建配置对象,填充值并传递给duckdb_open_ext
。
Example
duckdb_database db;
duckdb_config config;
// create the configuration object
if (duckdb_create_config(&config) == DuckDBError) {
// handle error
}
// set some configuration options
duckdb_set_config(config, "access_mode", "READ_WRITE"); // or READ_ONLY
duckdb_set_config(config, "threads", "8");
duckdb_set_config(config, "max_memory", "8GB");
duckdb_set_config(config, "default_order", "DESC");
// open the database using the configuration
if (duckdb_open_ext(NULL, &db, config, NULL) == DuckDBError) {
// handle error
}
// cleanup the configuration object
duckdb_destroy_config(&config);
// run queries...
// cleanup
duckdb_close(&db);
API Reference Overview
duckdb_state duckdb_create_config(duckdb_config *out_config);
size_t duckdb_config_count();
duckdb_state duckdb_get_config_flag(size_t index, const char **out_name, const char **out_description);
duckdb_state duckdb_set_config(duckdb_config config, const char *name, const char *option);
void duckdb_destroy_config(duckdb_config *config);
duckdb_create_config
初始化一个空的配置对象,该对象可用于通过duckdb_open_ext
为DuckDB实例提供启动选项。
必须使用'duckdb_destroy_config'销毁duckdb_config
除非发生内存分配失败,否则这将始终成功。
请注意,即使函数返回DuckDBError
,也应该始终在生成的配置上调用duckdb_destroy_config
。
Syntax
duckdb_state duckdb_create_config(
duckdb_config *out_config
);
Parameters
out_config
: 结果配置对象。
Return Value
DuckDBSuccess
on success or DuckDBError
on failure.
duckdb_config_count
这将返回可用于duckdb_get_config_flag
的配置选项的总数。
这不应该在循环中调用,因为它内部会循环遍历所有选项。
Return Value
可用的配置选项数量。
Syntax
size_t duckdb_config_count(
);
duckdb_get_config_flag
获取特定配置选项的人类可读名称和描述。这可以用于例如显示配置选项。除非index
超出范围(即>= duckdb_config_count
),否则这将成功。
结果名称或描述不得被释放。
Syntax
duckdb_state duckdb_get_config_flag(
size_t index,
const char **out_name,
const char **out_description
);
Parameters
index
: 配置选项的索引(介于0和duckdb_config_count
之间)out_name
: 配置标志的名称。out_description
: 配置标志的描述。
Return Value
DuckDBSuccess
on success or DuckDBError
on failure.
duckdb_set_config
为指定的配置设置指定的选项。配置选项由名称指示。
要获取配置选项的列表,请参见 duckdb_get_config_flag
。
在源代码中,配置选项定义在config.cpp
中。
如果名称无效,或者为选项提供的值无效,则可能会失败。
Syntax
duckdb_state duckdb_set_config(
duckdb_config config,
const char *name,
const char *option
);
Parameters
config
: 用于设置选项的配置对象。name
: 要设置的配置标志的名称。option
: 设置配置标志的值。
Return Value
DuckDBSuccess
on success or DuckDBError
on failure.
duckdb_destroy_config
销毁指定的配置对象并释放为该对象分配的所有内存。
Syntax
void duckdb_destroy_config(
duckdb_config *config
);
Parameters
config
: 要销毁的配置对象。