C-API-Referenz
Diese Seite enthält die Referenz der DuckDB-C-API.
Die Referenz enthält mehrere Hinweise zur Abkündigung. Diese betreffen Methoden, deren langfristige Verfügbarkeit nicht garantiert ist, da sie in Zukunft entfernt werden können. Die DuckDB-Entwickler planen Abkündigungen jedoch langsam, da mehrere der veralteten Methoden noch keine vollständig funktionierende Alternative haben. Sie werden daher nicht entfernt, bevor eine Alternative verfügbar ist, und selbst dann gibt es eine Übergangsfrist von einigen Minor-Versionen. Der Grund, warum die Methoden bereits in v1.0 als veraltet gekennzeichnet sind, ist, dass sie nicht zur stabilen API von v1.0 gehören, die langfristig verfügbare Methoden enthält.
API-Referenzübersicht
Öffnen und Verbinden
duckdb_instance_cache duckdb_create_instance_cache();
duckdb_state duckdb_get_or_create_from_cache(duckdb_instance_cache instance_cache, const char *path, duckdb_database *out_database, duckdb_config config, char **out_error);
void duckdb_destroy_instance_cache(duckdb_instance_cache *instance_cache);
duckdb_state duckdb_open(const char *path, duckdb_database *out_database);
duckdb_state duckdb_open_ext(const char *path, duckdb_database *out_database, duckdb_config config, char **out_error);
void duckdb_close(duckdb_database *database);
duckdb_state duckdb_connect(duckdb_database database, duckdb_connection *out_connection);
void duckdb_interrupt(duckdb_connection connection);
duckdb_query_progress_type duckdb_query_progress(duckdb_connection connection);
void duckdb_disconnect(duckdb_connection *connection);
void duckdb_connection_get_client_context(duckdb_connection connection, duckdb_client_context *out_context);
void duckdb_connection_get_arrow_options(duckdb_connection connection, duckdb_arrow_options *out_arrow_options);
idx_t duckdb_client_context_get_connection_id(duckdb_client_context context);
void duckdb_destroy_client_context(duckdb_client_context *context);
void duckdb_destroy_arrow_options(duckdb_arrow_options *arrow_options);
const char *duckdb_library_version();
duckdb_value duckdb_get_table_names(duckdb_connection connection, const char *query, bool qualified);
Konfiguration
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);
Fehlerdaten
duckdb_error_data duckdb_create_error_data(duckdb_error_type type, const char *message);
void duckdb_destroy_error_data(duckdb_error_data *error_data);
duckdb_error_type duckdb_error_data_error_type(duckdb_error_data error_data);
const char *duckdb_error_data_message(duckdb_error_data error_data);
bool duckdb_error_data_has_error(duckdb_error_data error_data);
Abfrageausführung
duckdb_state duckdb_query(duckdb_connection connection, const char *query, duckdb_result *out_result);
void duckdb_destroy_result(duckdb_result *result);
const char *duckdb_column_name(duckdb_result *result, idx_t col);
duckdb_type duckdb_column_type(duckdb_result *result, idx_t col);
duckdb_statement_type duckdb_result_statement_type(duckdb_result result);
duckdb_logical_type duckdb_column_logical_type(duckdb_result *result, idx_t col);
duckdb_arrow_options duckdb_result_get_arrow_options(duckdb_result *result);
idx_t duckdb_column_count(duckdb_result *result);
idx_t duckdb_row_count(duckdb_result *result);
idx_t duckdb_rows_changed(duckdb_result *result);
void *duckdb_column_data(duckdb_result *result, idx_t col);
bool *duckdb_nullmask_data(duckdb_result *result, idx_t col);
const char *duckdb_result_error(duckdb_result *result);
duckdb_error_type duckdb_result_error_type(duckdb_result *result);
Ergebnisfunktionen
duckdb_data_chunk duckdb_result_get_chunk(duckdb_result result, idx_t chunk_index);
bool duckdb_result_is_streaming(duckdb_result result);
idx_t duckdb_result_chunk_count(duckdb_result result);
duckdb_result_type duckdb_result_return_type(duckdb_result result);
Sichere Abruffunktionen
bool duckdb_value_boolean(duckdb_result *result, idx_t col, idx_t row);
int8_t duckdb_value_int8(duckdb_result *result, idx_t col, idx_t row);
int16_t duckdb_value_int16(duckdb_result *result, idx_t col, idx_t row);
int32_t duckdb_value_int32(duckdb_result *result, idx_t col, idx_t row);
int64_t duckdb_value_int64(duckdb_result *result, idx_t col, idx_t row);
duckdb_hugeint duckdb_value_hugeint(duckdb_result *result, idx_t col, idx_t row);
duckdb_uhugeint duckdb_value_uhugeint(duckdb_result *result, idx_t col, idx_t row);
duckdb_decimal duckdb_value_decimal(duckdb_result *result, idx_t col, idx_t row);
uint8_t duckdb_value_uint8(duckdb_result *result, idx_t col, idx_t row);
uint16_t duckdb_value_uint16(duckdb_result *result, idx_t col, idx_t row);
uint32_t duckdb_value_uint32(duckdb_result *result, idx_t col, idx_t row);
uint64_t duckdb_value_uint64(duckdb_result *result, idx_t col, idx_t row);
float duckdb_value_float(duckdb_result *result, idx_t col, idx_t row);
double duckdb_value_double(duckdb_result *result, idx_t col, idx_t row);
duckdb_date duckdb_value_date(duckdb_result *result, idx_t col, idx_t row);
duckdb_time duckdb_value_time(duckdb_result *result, idx_t col, idx_t row);
duckdb_timestamp duckdb_value_timestamp(duckdb_result *result, idx_t col, idx_t row);
duckdb_interval duckdb_value_interval(duckdb_result *result, idx_t col, idx_t row);
char *duckdb_value_varchar(duckdb_result *result, idx_t col, idx_t row);
duckdb_string duckdb_value_string(duckdb_result *result, idx_t col, idx_t row);
char *duckdb_value_varchar_internal(duckdb_result *result, idx_t col, idx_t row);
duckdb_string duckdb_value_string_internal(duckdb_result *result, idx_t col, idx_t row);
duckdb_blob duckdb_value_blob(duckdb_result *result, idx_t col, idx_t row);
bool duckdb_value_is_null(duckdb_result *result, idx_t col, idx_t row);
Hilfsfunktionen
void *duckdb_malloc(size_t size);
void duckdb_free(void *ptr);
idx_t duckdb_vector_size();
bool duckdb_string_is_inlined(duckdb_string_t string);
uint32_t duckdb_string_t_length(duckdb_string_t string);
const char *duckdb_string_t_data(duckdb_string_t *string);
Hilfsfunktionen für Date, Time und Timestamp
duckdb_date_struct duckdb_from_date(duckdb_date date);
duckdb_date duckdb_to_date(duckdb_date_struct date);
bool duckdb_is_finite_date(duckdb_date date);
duckdb_time_struct duckdb_from_time(duckdb_time time);
duckdb_time_tz duckdb_create_time_tz(int64_t micros, int32_t offset);
duckdb_time_tz_struct duckdb_from_time_tz(duckdb_time_tz micros);
duckdb_time duckdb_to_time(duckdb_time_struct time);
duckdb_timestamp_struct duckdb_from_timestamp(duckdb_timestamp ts);
duckdb_timestamp duckdb_to_timestamp(duckdb_timestamp_struct ts);
bool duckdb_is_finite_timestamp(duckdb_timestamp ts);
bool duckdb_is_finite_timestamp_s(duckdb_timestamp_s ts);
bool duckdb_is_finite_timestamp_ms(duckdb_timestamp_ms ts);
bool duckdb_is_finite_timestamp_ns(duckdb_timestamp_ns ts);
Hugeint-Hilfsfunktionen
double duckdb_hugeint_to_double(duckdb_hugeint val);
duckdb_hugeint duckdb_double_to_hugeint(double val);
Unsigned-Hugeint-Hilfsfunktionen
double duckdb_uhugeint_to_double(duckdb_uhugeint val);
duckdb_uhugeint duckdb_double_to_uhugeint(double val);
Decimal-Hilfsfunktionen
duckdb_decimal duckdb_double_to_decimal(double val, uint8_t width, uint8_t scale);
double duckdb_decimal_to_double(duckdb_decimal val);
Prepared Statements
duckdb_state duckdb_prepare(duckdb_connection connection, const char *query, duckdb_prepared_statement *out_prepared_statement);
void duckdb_destroy_prepare(duckdb_prepared_statement *prepared_statement);
const char *duckdb_prepare_error(duckdb_prepared_statement prepared_statement);
idx_t duckdb_nparams(duckdb_prepared_statement prepared_statement);
const char *duckdb_parameter_name(duckdb_prepared_statement prepared_statement, idx_t index);
duckdb_type duckdb_param_type(duckdb_prepared_statement prepared_statement, idx_t param_idx);
duckdb_logical_type duckdb_param_logical_type(duckdb_prepared_statement prepared_statement, idx_t param_idx);
duckdb_state duckdb_clear_bindings(duckdb_prepared_statement prepared_statement);
duckdb_statement_type duckdb_prepared_statement_type(duckdb_prepared_statement statement);
idx_t duckdb_prepared_statement_column_count(duckdb_prepared_statement prepared_statement);
const char *duckdb_prepared_statement_column_name(duckdb_prepared_statement prepared_statement, idx_t col_idx);
duckdb_logical_type duckdb_prepared_statement_column_logical_type(duckdb_prepared_statement prepared_statement, idx_t col_idx);
duckdb_type duckdb_prepared_statement_column_type(duckdb_prepared_statement prepared_statement, idx_t col_idx);
Werte an Prepared Statements binden
duckdb_state duckdb_bind_value(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_value val);
duckdb_state duckdb_bind_parameter_index(duckdb_prepared_statement prepared_statement, idx_t *param_idx_out, const char *name);
duckdb_state duckdb_bind_boolean(duckdb_prepared_statement prepared_statement, idx_t param_idx, bool val);
duckdb_state duckdb_bind_int8(duckdb_prepared_statement prepared_statement, idx_t param_idx, int8_t val);
duckdb_state duckdb_bind_int16(duckdb_prepared_statement prepared_statement, idx_t param_idx, int16_t val);
duckdb_state duckdb_bind_int32(duckdb_prepared_statement prepared_statement, idx_t param_idx, int32_t val);
duckdb_state duckdb_bind_int64(duckdb_prepared_statement prepared_statement, idx_t param_idx, int64_t val);
duckdb_state duckdb_bind_hugeint(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_hugeint val);
duckdb_state duckdb_bind_uhugeint(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_uhugeint val);
duckdb_state duckdb_bind_decimal(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_decimal val);
duckdb_state duckdb_bind_uint8(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint8_t val);
duckdb_state duckdb_bind_uint16(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint16_t val);
duckdb_state duckdb_bind_uint32(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint32_t val);
duckdb_state duckdb_bind_uint64(duckdb_prepared_statement prepared_statement, idx_t param_idx, uint64_t val);
duckdb_state duckdb_bind_float(duckdb_prepared_statement prepared_statement, idx_t param_idx, float val);
duckdb_state duckdb_bind_double(duckdb_prepared_statement prepared_statement, idx_t param_idx, double val);
duckdb_state duckdb_bind_date(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_date val);
duckdb_state duckdb_bind_time(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_time val);
duckdb_state duckdb_bind_timestamp(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_timestamp val);
duckdb_state duckdb_bind_timestamp_tz(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_timestamp val);
duckdb_state duckdb_bind_interval(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_interval val);
duckdb_state duckdb_bind_varchar(duckdb_prepared_statement prepared_statement, idx_t param_idx, const char *val);
duckdb_state duckdb_bind_varchar_length(duckdb_prepared_statement prepared_statement, idx_t param_idx, const char *val, idx_t length);
duckdb_state duckdb_bind_blob(duckdb_prepared_statement prepared_statement, idx_t param_idx, const void *data, idx_t length);
duckdb_state duckdb_bind_null(duckdb_prepared_statement prepared_statement, idx_t param_idx);
Prepared Statements ausführen
duckdb_state duckdb_execute_prepared(duckdb_prepared_statement prepared_statement, duckdb_result *out_result);
duckdb_state duckdb_execute_prepared_streaming(duckdb_prepared_statement prepared_statement, duckdb_result *out_result);
Anweisungen extrahieren
idx_t duckdb_extract_statements(duckdb_connection connection, const char *query, duckdb_extracted_statements *out_extracted_statements);
duckdb_state duckdb_prepare_extracted_statement(duckdb_connection connection, duckdb_extracted_statements extracted_statements, idx_t index, duckdb_prepared_statement *out_prepared_statement);
const char *duckdb_extract_statements_error(duckdb_extracted_statements extracted_statements);
void duckdb_destroy_extracted(duckdb_extracted_statements *extracted_statements);
Pending-Ergebnis-Schnittstelle
duckdb_state duckdb_pending_prepared(duckdb_prepared_statement prepared_statement, duckdb_pending_result *out_result);
duckdb_state duckdb_pending_prepared_streaming(duckdb_prepared_statement prepared_statement, duckdb_pending_result *out_result);
void duckdb_destroy_pending(duckdb_pending_result *pending_result);
const char *duckdb_pending_error(duckdb_pending_result pending_result);
duckdb_pending_state duckdb_pending_execute_task(duckdb_pending_result pending_result);
duckdb_pending_state duckdb_pending_execute_check_state(duckdb_pending_result pending_result);
duckdb_state duckdb_execute_pending(duckdb_pending_result pending_result, duckdb_result *out_result);
bool duckdb_pending_execution_is_finished(duckdb_pending_state pending_state);
Value-Schnittstelle
void duckdb_destroy_value(duckdb_value *value);
duckdb_value duckdb_create_varchar(const char *text);
duckdb_value duckdb_create_varchar_length(const char *text, idx_t length);
duckdb_value duckdb_create_bool(bool input);
duckdb_value duckdb_create_int8(int8_t input);
duckdb_value duckdb_create_uint8(uint8_t input);
duckdb_value duckdb_create_int16(int16_t input);
duckdb_value duckdb_create_uint16(uint16_t input);
duckdb_value duckdb_create_int32(int32_t input);
duckdb_value duckdb_create_uint32(uint32_t input);
duckdb_value duckdb_create_uint64(uint64_t input);
duckdb_value duckdb_create_int64(int64_t val);
duckdb_value duckdb_create_hugeint(duckdb_hugeint input);
duckdb_value duckdb_create_uhugeint(duckdb_uhugeint input);
duckdb_value duckdb_create_bignum(duckdb_bignum input);
duckdb_value duckdb_create_decimal(duckdb_decimal input);
duckdb_value duckdb_create_float(float input);
duckdb_value duckdb_create_double(double input);
duckdb_value duckdb_create_date(duckdb_date input);
duckdb_value duckdb_create_time(duckdb_time input);
duckdb_value duckdb_create_time_ns(duckdb_time_ns input);
duckdb_value duckdb_create_time_tz_value(duckdb_time_tz value);
duckdb_value duckdb_create_timestamp(duckdb_timestamp input);
duckdb_value duckdb_create_timestamp_tz(duckdb_timestamp input);
duckdb_value duckdb_create_timestamp_s(duckdb_timestamp_s input);
duckdb_value duckdb_create_timestamp_ms(duckdb_timestamp_ms input);
duckdb_value duckdb_create_timestamp_ns(duckdb_timestamp_ns input);
duckdb_value duckdb_create_interval(duckdb_interval input);
duckdb_value duckdb_create_blob(const uint8_t *data, idx_t length);
duckdb_value duckdb_create_bit(duckdb_bit input);
duckdb_value duckdb_create_uuid(duckdb_uhugeint input);
bool duckdb_get_bool(duckdb_value val);
int8_t duckdb_get_int8(duckdb_value val);
uint8_t duckdb_get_uint8(duckdb_value val);
int16_t duckdb_get_int16(duckdb_value val);
uint16_t duckdb_get_uint16(duckdb_value val);
int32_t duckdb_get_int32(duckdb_value val);
uint32_t duckdb_get_uint32(duckdb_value val);
int64_t duckdb_get_int64(duckdb_value val);
uint64_t duckdb_get_uint64(duckdb_value val);
duckdb_hugeint duckdb_get_hugeint(duckdb_value val);
duckdb_uhugeint duckdb_get_uhugeint(duckdb_value val);
duckdb_bignum duckdb_get_bignum(duckdb_value val);
duckdb_decimal duckdb_get_decimal(duckdb_value val);
float duckdb_get_float(duckdb_value val);
double duckdb_get_double(duckdb_value val);
duckdb_date duckdb_get_date(duckdb_value val);
duckdb_time duckdb_get_time(duckdb_value val);
duckdb_time_ns duckdb_get_time_ns(duckdb_value val);
duckdb_time_tz duckdb_get_time_tz(duckdb_value val);
duckdb_timestamp duckdb_get_timestamp(duckdb_value val);
duckdb_timestamp duckdb_get_timestamp_tz(duckdb_value val);
duckdb_timestamp_s duckdb_get_timestamp_s(duckdb_value val);
duckdb_timestamp_ms duckdb_get_timestamp_ms(duckdb_value val);
duckdb_timestamp_ns duckdb_get_timestamp_ns(duckdb_value val);
duckdb_interval duckdb_get_interval(duckdb_value val);
duckdb_logical_type duckdb_get_value_type(duckdb_value val);
duckdb_blob duckdb_get_blob(duckdb_value val);
duckdb_bit duckdb_get_bit(duckdb_value val);
duckdb_uhugeint duckdb_get_uuid(duckdb_value val);
char *duckdb_get_varchar(duckdb_value value);
duckdb_value duckdb_create_struct_value(duckdb_logical_type type, duckdb_value *values);
duckdb_value duckdb_create_list_value(duckdb_logical_type type, duckdb_value *values, idx_t value_count);
duckdb_value duckdb_create_array_value(duckdb_logical_type type, duckdb_value *values, idx_t value_count);
duckdb_value duckdb_create_map_value(duckdb_logical_type map_type, duckdb_value *keys, duckdb_value *values, idx_t entry_count);
duckdb_value duckdb_create_union_value(duckdb_logical_type union_type, idx_t tag_index, duckdb_value value);
idx_t duckdb_get_map_size(duckdb_value value);
duckdb_value duckdb_get_map_key(duckdb_value value, idx_t index);
duckdb_value duckdb_get_map_value(duckdb_value value, idx_t index);
bool duckdb_is_null_value(duckdb_value value);
duckdb_value duckdb_create_null_value();
idx_t duckdb_get_list_size(duckdb_value value);
duckdb_value duckdb_get_list_child(duckdb_value value, idx_t index);
duckdb_value duckdb_create_enum_value(duckdb_logical_type type, uint64_t value);
uint64_t duckdb_get_enum_value(duckdb_value value);
duckdb_value duckdb_get_struct_child(duckdb_value value, idx_t index);
char *duckdb_value_to_string(duckdb_value value);
Logical-Type-Schnittstelle
duckdb_logical_type duckdb_create_logical_type(duckdb_type type);
char *duckdb_logical_type_get_alias(duckdb_logical_type type);
void duckdb_logical_type_set_alias(duckdb_logical_type type, const char *alias);
duckdb_logical_type duckdb_create_list_type(duckdb_logical_type type);
duckdb_logical_type duckdb_create_array_type(duckdb_logical_type type, idx_t array_size);
duckdb_logical_type duckdb_create_map_type(duckdb_logical_type key_type, duckdb_logical_type value_type);
duckdb_logical_type duckdb_create_union_type(duckdb_logical_type *member_types, const char **member_names, idx_t member_count);
duckdb_logical_type duckdb_create_struct_type(duckdb_logical_type *member_types, const char **member_names, idx_t member_count);
duckdb_logical_type duckdb_create_enum_type(const char **member_names, idx_t member_count);
duckdb_logical_type duckdb_create_decimal_type(uint8_t width, uint8_t scale);
duckdb_type duckdb_get_type_id(duckdb_logical_type type);
uint8_t duckdb_decimal_width(duckdb_logical_type type);
uint8_t duckdb_decimal_scale(duckdb_logical_type type);
duckdb_type duckdb_decimal_internal_type(duckdb_logical_type type);
duckdb_type duckdb_enum_internal_type(duckdb_logical_type type);
uint32_t duckdb_enum_dictionary_size(duckdb_logical_type type);
char *duckdb_enum_dictionary_value(duckdb_logical_type type, idx_t index);
duckdb_logical_type duckdb_list_type_child_type(duckdb_logical_type type);
duckdb_logical_type duckdb_array_type_child_type(duckdb_logical_type type);
idx_t duckdb_array_type_array_size(duckdb_logical_type type);
duckdb_logical_type duckdb_map_type_key_type(duckdb_logical_type type);
duckdb_logical_type duckdb_map_type_value_type(duckdb_logical_type type);
idx_t duckdb_struct_type_child_count(duckdb_logical_type type);
char *duckdb_struct_type_child_name(duckdb_logical_type type, idx_t index);
duckdb_logical_type duckdb_struct_type_child_type(duckdb_logical_type type, idx_t index);
idx_t duckdb_union_type_member_count(duckdb_logical_type type);
char *duckdb_union_type_member_name(duckdb_logical_type type, idx_t index);
duckdb_logical_type duckdb_union_type_member_type(duckdb_logical_type type, idx_t index);
void duckdb_destroy_logical_type(duckdb_logical_type *type);
duckdb_state duckdb_register_logical_type(duckdb_connection con, duckdb_logical_type type, duckdb_create_type_info info);
Data-Chunk-Schnittstelle
duckdb_data_chunk duckdb_create_data_chunk(duckdb_logical_type *types, idx_t column_count);
void duckdb_destroy_data_chunk(duckdb_data_chunk *chunk);
void duckdb_data_chunk_reset(duckdb_data_chunk chunk);
idx_t duckdb_data_chunk_get_column_count(duckdb_data_chunk chunk);
duckdb_vector duckdb_data_chunk_get_vector(duckdb_data_chunk chunk, idx_t col_idx);
idx_t duckdb_data_chunk_get_size(duckdb_data_chunk chunk);
void duckdb_data_chunk_set_size(duckdb_data_chunk chunk, idx_t size);
Vector-Schnittstelle
duckdb_vector duckdb_create_vector(duckdb_logical_type type, idx_t capacity);
void duckdb_destroy_vector(duckdb_vector *vector);
duckdb_logical_type duckdb_vector_get_column_type(duckdb_vector vector);
void *duckdb_vector_get_data(duckdb_vector vector);
uint64_t *duckdb_vector_get_validity(duckdb_vector vector);
void duckdb_vector_ensure_validity_writable(duckdb_vector vector);
void duckdb_vector_assign_string_element(duckdb_vector vector, idx_t index, const char *str);
void duckdb_vector_assign_string_element_len(duckdb_vector vector, idx_t index, const char *str, idx_t str_len);
duckdb_vector duckdb_list_vector_get_child(duckdb_vector vector);
idx_t duckdb_list_vector_get_size(duckdb_vector vector);
duckdb_state duckdb_list_vector_set_size(duckdb_vector vector, idx_t size);
duckdb_state duckdb_list_vector_reserve(duckdb_vector vector, idx_t required_capacity);
duckdb_vector duckdb_struct_vector_get_child(duckdb_vector vector, idx_t index);
duckdb_vector duckdb_array_vector_get_child(duckdb_vector vector);
void duckdb_slice_vector(duckdb_vector vector, duckdb_selection_vector sel, idx_t len);
void duckdb_vector_copy_sel(duckdb_vector src, duckdb_vector dst, duckdb_selection_vector sel, idx_t src_count, idx_t src_offset, idx_t dst_offset);
void duckdb_vector_reference_value(duckdb_vector vector, duckdb_value value);
void duckdb_vector_reference_vector(duckdb_vector to_vector, duckdb_vector from_vector);
Validity-Mask-Funktionen
bool duckdb_validity_row_is_valid(uint64_t *validity, idx_t row);
void duckdb_validity_set_row_validity(uint64_t *validity, idx_t row, bool valid);
void duckdb_validity_set_row_invalid(uint64_t *validity, idx_t row);
void duckdb_validity_set_row_valid(uint64_t *validity, idx_t row);
Skalare Funktionen
duckdb_scalar_function duckdb_create_scalar_function();
void duckdb_destroy_scalar_function(duckdb_scalar_function *scalar_function);
void duckdb_scalar_function_set_name(duckdb_scalar_function scalar_function, const char *name);
void duckdb_scalar_function_set_varargs(duckdb_scalar_function scalar_function, duckdb_logical_type type);
void duckdb_scalar_function_set_special_handling(duckdb_scalar_function scalar_function);
void duckdb_scalar_function_set_volatile(duckdb_scalar_function scalar_function);
void duckdb_scalar_function_add_parameter(duckdb_scalar_function scalar_function, duckdb_logical_type type);
void duckdb_scalar_function_set_return_type(duckdb_scalar_function scalar_function, duckdb_logical_type type);
void duckdb_scalar_function_set_extra_info(duckdb_scalar_function scalar_function, void *extra_info, duckdb_delete_callback_t destroy);
void duckdb_scalar_function_set_bind(duckdb_scalar_function scalar_function, duckdb_scalar_function_bind_t bind);
void duckdb_scalar_function_set_bind_data(duckdb_bind_info info, void *bind_data, duckdb_delete_callback_t destroy);
void duckdb_scalar_function_set_bind_data_copy(duckdb_bind_info info, duckdb_copy_callback_t copy);
void duckdb_scalar_function_bind_set_error(duckdb_bind_info info, const char *error);
void duckdb_scalar_function_set_function(duckdb_scalar_function scalar_function, duckdb_scalar_function_t function);
duckdb_state duckdb_register_scalar_function(duckdb_connection con, duckdb_scalar_function scalar_function);
void *duckdb_scalar_function_get_extra_info(duckdb_function_info info);
void *duckdb_scalar_function_bind_get_extra_info(duckdb_bind_info info);
void *duckdb_scalar_function_get_bind_data(duckdb_function_info info);
void duckdb_scalar_function_get_client_context(duckdb_bind_info info, duckdb_client_context *out_context);
void duckdb_scalar_function_set_error(duckdb_function_info info, const char *error);
duckdb_scalar_function_set duckdb_create_scalar_function_set(const char *name);
void duckdb_destroy_scalar_function_set(duckdb_scalar_function_set *scalar_function_set);
duckdb_state duckdb_add_scalar_function_to_set(duckdb_scalar_function_set set, duckdb_scalar_function function);
duckdb_state duckdb_register_scalar_function_set(duckdb_connection con, duckdb_scalar_function_set set);
idx_t duckdb_scalar_function_bind_get_argument_count(duckdb_bind_info info);
duckdb_expression duckdb_scalar_function_bind_get_argument(duckdb_bind_info info, idx_t index);
Selection-Vector-Schnittstelle
duckdb_selection_vector duckdb_create_selection_vector(idx_t size);
void duckdb_destroy_selection_vector(duckdb_selection_vector sel);
sel_t *duckdb_selection_vector_get_data_ptr(duckdb_selection_vector sel);
Aggregatfunktionen
duckdb_aggregate_function duckdb_create_aggregate_function();
void duckdb_destroy_aggregate_function(duckdb_aggregate_function *aggregate_function);
void duckdb_aggregate_function_set_name(duckdb_aggregate_function aggregate_function, const char *name);
void duckdb_aggregate_function_add_parameter(duckdb_aggregate_function aggregate_function, duckdb_logical_type type);
void duckdb_aggregate_function_set_return_type(duckdb_aggregate_function aggregate_function, duckdb_logical_type type);
void duckdb_aggregate_function_set_functions(duckdb_aggregate_function aggregate_function, duckdb_aggregate_state_size state_size, duckdb_aggregate_init_t state_init, duckdb_aggregate_update_t update, duckdb_aggregate_combine_t combine, duckdb_aggregate_finalize_t finalize);
void duckdb_aggregate_function_set_destructor(duckdb_aggregate_function aggregate_function, duckdb_aggregate_destroy_t destroy);
duckdb_state duckdb_register_aggregate_function(duckdb_connection con, duckdb_aggregate_function aggregate_function);
void duckdb_aggregate_function_set_special_handling(duckdb_aggregate_function aggregate_function);
void duckdb_aggregate_function_set_extra_info(duckdb_aggregate_function aggregate_function, void *extra_info, duckdb_delete_callback_t destroy);
void *duckdb_aggregate_function_get_extra_info(duckdb_function_info info);
void duckdb_aggregate_function_set_error(duckdb_function_info info, const char *error);
duckdb_aggregate_function_set duckdb_create_aggregate_function_set(const char *name);
void duckdb_destroy_aggregate_function_set(duckdb_aggregate_function_set *aggregate_function_set);
duckdb_state duckdb_add_aggregate_function_to_set(duckdb_aggregate_function_set set, duckdb_aggregate_function function);
duckdb_state duckdb_register_aggregate_function_set(duckdb_connection con, duckdb_aggregate_function_set set);
Tabellenfunktionen
duckdb_table_function duckdb_create_table_function();
void duckdb_destroy_table_function(duckdb_table_function *table_function);
void duckdb_table_function_set_name(duckdb_table_function table_function, const char *name);
void duckdb_table_function_add_parameter(duckdb_table_function table_function, duckdb_logical_type type);
void duckdb_table_function_add_named_parameter(duckdb_table_function table_function, const char *name, duckdb_logical_type type);
void duckdb_table_function_set_extra_info(duckdb_table_function table_function, void *extra_info, duckdb_delete_callback_t destroy);
void duckdb_table_function_set_bind(duckdb_table_function table_function, duckdb_table_function_bind_t bind);
void duckdb_table_function_set_init(duckdb_table_function table_function, duckdb_table_function_init_t init);
void duckdb_table_function_set_local_init(duckdb_table_function table_function, duckdb_table_function_init_t init);
void duckdb_table_function_set_function(duckdb_table_function table_function, duckdb_table_function_t function);
void duckdb_table_function_supports_projection_pushdown(duckdb_table_function table_function, bool pushdown);
duckdb_state duckdb_register_table_function(duckdb_connection con, duckdb_table_function function);
Tabellenfunktion binden
void *duckdb_bind_get_extra_info(duckdb_bind_info info);
void duckdb_table_function_get_client_context(duckdb_bind_info info, duckdb_client_context *out_context);
void duckdb_bind_add_result_column(duckdb_bind_info info, const char *name, duckdb_logical_type type);
idx_t duckdb_bind_get_parameter_count(duckdb_bind_info info);
duckdb_value duckdb_bind_get_parameter(duckdb_bind_info info, idx_t index);
duckdb_value duckdb_bind_get_named_parameter(duckdb_bind_info info, const char *name);
void duckdb_bind_set_bind_data(duckdb_bind_info info, void *bind_data, duckdb_delete_callback_t destroy);
void duckdb_bind_set_cardinality(duckdb_bind_info info, idx_t cardinality, bool is_exact);
void duckdb_bind_set_error(duckdb_bind_info info, const char *error);
Tabellenfunktion initialisieren
void *duckdb_init_get_extra_info(duckdb_init_info info);
void *duckdb_init_get_bind_data(duckdb_init_info info);
void duckdb_init_set_init_data(duckdb_init_info info, void *init_data, duckdb_delete_callback_t destroy);
idx_t duckdb_init_get_column_count(duckdb_init_info info);
idx_t duckdb_init_get_column_index(duckdb_init_info info, idx_t column_index);
void duckdb_init_set_max_threads(duckdb_init_info info, idx_t max_threads);
void duckdb_init_set_error(duckdb_init_info info, const char *error);
Tabellenfunktion
void *duckdb_function_get_extra_info(duckdb_function_info info);
void *duckdb_function_get_bind_data(duckdb_function_info info);
void *duckdb_function_get_init_data(duckdb_function_info info);
void *duckdb_function_get_local_init_data(duckdb_function_info info);
void duckdb_function_set_error(duckdb_function_info info, const char *error);
Replacement Scans
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);
Profiling-Informationen
duckdb_profiling_info duckdb_get_profiling_info(duckdb_connection connection);
duckdb_value duckdb_profiling_info_get_value(duckdb_profiling_info info, const char *key);
duckdb_value duckdb_profiling_info_get_metrics(duckdb_profiling_info info);
idx_t duckdb_profiling_info_get_child_count(duckdb_profiling_info info);
duckdb_profiling_info duckdb_profiling_info_get_child(duckdb_profiling_info info, idx_t index);
Appender
duckdb_state duckdb_appender_create(duckdb_connection connection, const char *schema, const char *table, duckdb_appender *out_appender);
duckdb_state duckdb_appender_create_ext(duckdb_connection connection, const char *catalog, const char *schema, const char *table, duckdb_appender *out_appender);
duckdb_state duckdb_appender_create_query(duckdb_connection connection, const char *query, idx_t column_count, duckdb_logical_type *types, const char *table_name, const char **column_names, duckdb_appender *out_appender);
idx_t duckdb_appender_column_count(duckdb_appender appender);
duckdb_logical_type duckdb_appender_column_type(duckdb_appender appender, idx_t col_idx);
const char *duckdb_appender_error(duckdb_appender appender);
duckdb_error_data duckdb_appender_error_data(duckdb_appender appender);
duckdb_state duckdb_appender_flush(duckdb_appender appender);
duckdb_state duckdb_appender_close(duckdb_appender appender);
duckdb_state duckdb_appender_destroy(duckdb_appender *appender);
duckdb_state duckdb_appender_add_column(duckdb_appender appender, const char *name);
duckdb_state duckdb_appender_clear_columns(duckdb_appender appender);
duckdb_state duckdb_appender_begin_row(duckdb_appender appender);
duckdb_state duckdb_appender_end_row(duckdb_appender appender);
duckdb_state duckdb_append_default(duckdb_appender appender);
duckdb_state duckdb_append_default_to_chunk(duckdb_appender appender, duckdb_data_chunk chunk, idx_t col, idx_t row);
duckdb_state duckdb_append_bool(duckdb_appender appender, bool value);
duckdb_state duckdb_append_int8(duckdb_appender appender, int8_t value);
duckdb_state duckdb_append_int16(duckdb_appender appender, int16_t value);
duckdb_state duckdb_append_int32(duckdb_appender appender, int32_t value);
duckdb_state duckdb_append_int64(duckdb_appender appender, int64_t value);
duckdb_state duckdb_append_hugeint(duckdb_appender appender, duckdb_hugeint value);
duckdb_state duckdb_append_uint8(duckdb_appender appender, uint8_t value);
duckdb_state duckdb_append_uint16(duckdb_appender appender, uint16_t value);
duckdb_state duckdb_append_uint32(duckdb_appender appender, uint32_t value);
duckdb_state duckdb_append_uint64(duckdb_appender appender, uint64_t value);
duckdb_state duckdb_append_uhugeint(duckdb_appender appender, duckdb_uhugeint value);
duckdb_state duckdb_append_float(duckdb_appender appender, float value);
duckdb_state duckdb_append_double(duckdb_appender appender, double value);
duckdb_state duckdb_append_date(duckdb_appender appender, duckdb_date value);
duckdb_state duckdb_append_time(duckdb_appender appender, duckdb_time value);
duckdb_state duckdb_append_timestamp(duckdb_appender appender, duckdb_timestamp value);
duckdb_state duckdb_append_interval(duckdb_appender appender, duckdb_interval value);
duckdb_state duckdb_append_varchar(duckdb_appender appender, const char *val);
duckdb_state duckdb_append_varchar_length(duckdb_appender appender, const char *val, idx_t length);
duckdb_state duckdb_append_blob(duckdb_appender appender, const void *data, idx_t length);
duckdb_state duckdb_append_null(duckdb_appender appender);
duckdb_state duckdb_append_value(duckdb_appender appender, duckdb_value value);
duckdb_state duckdb_append_data_chunk(duckdb_appender appender, duckdb_data_chunk chunk);
Tabellenbeschreibung
duckdb_state duckdb_table_description_create(duckdb_connection connection, const char *schema, const char *table, duckdb_table_description *out);
duckdb_state duckdb_table_description_create_ext(duckdb_connection connection, const char *catalog, const char *schema, const char *table, duckdb_table_description *out);
void duckdb_table_description_destroy(duckdb_table_description *table_description);
const char *duckdb_table_description_error(duckdb_table_description table_description);
duckdb_state duckdb_column_has_default(duckdb_table_description table_description, idx_t index, bool *out);
char *duckdb_table_description_get_column_name(duckdb_table_description table_description, idx_t index);
Arrow-Schnittstelle
duckdb_error_data duckdb_to_arrow_schema(duckdb_arrow_options arrow_options, duckdb_logical_type *types, const char **names, idx_t column_count, struct ArrowSchema *out_schema);
duckdb_error_data duckdb_data_chunk_to_arrow(duckdb_arrow_options arrow_options, duckdb_data_chunk chunk, struct ArrowArray *out_arrow_array);
duckdb_error_data duckdb_schema_from_arrow(duckdb_connection connection, struct ArrowSchema *schema, duckdb_arrow_converted_schema *out_types);
duckdb_error_data duckdb_data_chunk_from_arrow(duckdb_connection connection, struct ArrowArray *arrow_array, duckdb_arrow_converted_schema converted_schema, duckdb_data_chunk *out_chunk);
void duckdb_destroy_arrow_converted_schema(duckdb_arrow_converted_schema *arrow_converted_schema);
duckdb_state duckdb_query_arrow(duckdb_connection connection, const char *query, duckdb_arrow *out_result);
duckdb_state duckdb_query_arrow_schema(duckdb_arrow result, duckdb_arrow_schema *out_schema);
duckdb_state duckdb_prepared_arrow_schema(duckdb_prepared_statement prepared, duckdb_arrow_schema *out_schema);
void duckdb_result_arrow_array(duckdb_result result, duckdb_data_chunk chunk, duckdb_arrow_array *out_array);
duckdb_state duckdb_query_arrow_array(duckdb_arrow result, duckdb_arrow_array *out_array);
idx_t duckdb_arrow_column_count(duckdb_arrow result);
idx_t duckdb_arrow_row_count(duckdb_arrow result);
idx_t duckdb_arrow_rows_changed(duckdb_arrow result);
const char *duckdb_query_arrow_error(duckdb_arrow result);
void duckdb_destroy_arrow(duckdb_arrow *result);
void duckdb_destroy_arrow_stream(duckdb_arrow_stream *stream_p);
duckdb_state duckdb_execute_prepared_arrow(duckdb_prepared_statement prepared_statement, duckdb_arrow *out_result);
duckdb_state duckdb_arrow_scan(duckdb_connection connection, const char *table_name, duckdb_arrow_stream arrow);
duckdb_state duckdb_arrow_array_scan(duckdb_connection connection, const char *table_name, duckdb_arrow_schema arrow_schema, duckdb_arrow_array arrow_array, duckdb_arrow_stream *out_stream);
Threading-Informationen
void duckdb_execute_tasks(duckdb_database database, idx_t max_tasks);
duckdb_task_state duckdb_create_task_state(duckdb_database database);
void duckdb_execute_tasks_state(duckdb_task_state state);
idx_t duckdb_execute_n_tasks_state(duckdb_task_state state, idx_t max_tasks);
void duckdb_finish_execution(duckdb_task_state state);
bool duckdb_task_state_is_finished(duckdb_task_state state);
void duckdb_destroy_task_state(duckdb_task_state state);
bool duckdb_execution_is_finished(duckdb_connection con);
Streaming-Ergebnis-Schnittstelle
duckdb_data_chunk duckdb_stream_fetch_chunk(duckdb_result result);
duckdb_data_chunk duckdb_fetch_chunk(duckdb_result result);
Cast-Funktionen
duckdb_cast_function duckdb_create_cast_function();
void duckdb_cast_function_set_source_type(duckdb_cast_function cast_function, duckdb_logical_type source_type);
void duckdb_cast_function_set_target_type(duckdb_cast_function cast_function, duckdb_logical_type target_type);
void duckdb_cast_function_set_implicit_cast_cost(duckdb_cast_function cast_function, int64_t cost);
void duckdb_cast_function_set_function(duckdb_cast_function cast_function, duckdb_cast_function_t function);
void duckdb_cast_function_set_extra_info(duckdb_cast_function cast_function, void *extra_info, duckdb_delete_callback_t destroy);
void *duckdb_cast_function_get_extra_info(duckdb_function_info info);
duckdb_cast_mode duckdb_cast_function_get_cast_mode(duckdb_function_info info);
void duckdb_cast_function_set_error(duckdb_function_info info, const char *error);
void duckdb_cast_function_set_row_error(duckdb_function_info info, const char *error, idx_t row, duckdb_vector output);
duckdb_state duckdb_register_cast_function(duckdb_connection con, duckdb_cast_function cast_function);
void duckdb_destroy_cast_function(duckdb_cast_function *cast_function);
Ausdrucksschnittstelle
void duckdb_destroy_expression(duckdb_expression *expr);
duckdb_logical_type duckdb_expression_return_type(duckdb_expression expr);
bool duckdb_expression_is_foldable(duckdb_expression expr);
duckdb_error_data duckdb_expression_fold(duckdb_client_context context, duckdb_expression expr, duckdb_value *out_value);
duckdb_create_instance_cache
Erzeugt einen neuen Datenbank-Instanz-Cache. Der Instanz-Cache ist erforderlich, wenn ein Client/Programm mehrere Datenbanken zur selben Datei im selben Prozess (erneut) öffnet. Muss mit ‘duckdb_destroy_instance_cache’ zerstört werden.
Rückgabewert
Der Datenbank-Instanz-Cache.
Syntax
duckdb_instance_cache duckdb_create_instance_cache(
);
duckdb_get_or_create_from_cache
Erzeugt eine neue Datenbankinstanz im Instanz-Cache oder ruft eine vorhandene Datenbankinstanz ab. Muss mit ‘duckdb_close’ geschlossen werden.
Syntax
duckdb_state duckdb_get_or_create_from_cache(
duckdb_instance_cache instance_cache,
const char *path,
duckdb_database *out_database,
duckdb_config config,
char **out_error
);
Parameter
instance_cache: Der Instanzcache, in dem die Datenbank erzeugt oder aus dem sie geholt wird.path: Pfad zur Datenbankdatei auf der Festplatte. Bothnullptrand:memory:open or retrieve an in-memory database.out_database: Die resultierende gecachte Datenbank.config: (Optional) configuration used to create the database.out_error: Falls gesetzt und die FunktionDuckDBErrorzurückgibt, enthält dies die Fehlermeldung. Note that the error message must be freed usingduckdb_free.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_destroy_instance_cache
Zerstört einen vorhandenen Datenbank-Instanz-Cache und gibt seinen Speicher frei.
Syntax
void duckdb_destroy_instance_cache(
duckdb_instance_cache *instance_cache
);
Parameter
instance_cache: Der zu zerstörende Instanzcache.
duckdb_open
Erzeugt eine neue Datenbank oder öffnet eine vorhandene Datenbankdatei am angegebenen Pfad. Wenn kein Pfad angegeben ist, wird stattdessen eine neue In-Memory-Datenbank erzeugt. Die Datenbank muss mit ‘duckdb_close’ geschlossen werden.
Syntax
duckdb_state duckdb_open(
const char *path,
duckdb_database *out_database
);
Parameter
path: Pfad zur Datenbankdatei auf der Festplatte. Bothnullptrand:memory:open an in-memory database.out_database: Das resultierende Datenbankobjekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_open_ext
Erweiterte Version von duckdb_open. Erzeugt eine neue Datenbank oder öffnet eine vorhandene Datenbankdatei am angegebenen Pfad. Die Datenbank muss mit ‘duckdb_close’ geschlossen werden.
Syntax
duckdb_state duckdb_open_ext(
const char *path,
duckdb_database *out_database,
duckdb_config config,
char **out_error
);
Parameter
path: Pfad zur Datenbankdatei auf der Festplatte. Bothnullptrand:memory:open an in-memory database.out_database: Das resultierende Datenbankobjekt.config: (Optional) configuration used to start up the database.out_error: Falls gesetzt und die FunktionDuckDBErrorzurückgibt, enthält dies die Fehlermeldung. Note that the error message must be freed usingduckdb_free.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_close
Schließt die angegebene Datenbank und gibt den gesamten dafür allokierten Speicher frei.
Dies sollte aufgerufen werden, wenn Sie mit einer über duckdb_open oder duckdb_open_ext allokierten Datenbank fertig sind.
Beachten Sie, dass das Unterlassen von duckdb_close (z. B. bei einem Programmabsturz) keine Datenkorruption verursacht.
Dennoch wird empfohlen, ein Datenbankobjekt stets korrekt zu schließen, wenn Sie damit fertig sind.
Syntax
void duckdb_close(
duckdb_database *database
);
Parameter
database: Das herunterzufahrende Datenbankobjekt.
duckdb_connect
Öffnet eine Verbindung zu einer Datenbank. Verbindungen sind erforderlich, um die Datenbank abzufragen, und speichern den transaktionalen Zustand der Verbindung. Die erzeugte Verbindung sollte mit ‘duckdb_disconnect’ geschlossen werden.
Syntax
duckdb_state duckdb_connect(
duckdb_database database,
duckdb_connection *out_connection
);
Parameter
database: Die Datenbankdatei, mit der verbunden wird.out_connection: Das resultierende Verbindungsobjekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_interrupt
Laufende Abfrage unterbrechen
Syntax
void duckdb_interrupt(
duckdb_connection connection
);
Parameter
connection: Die zu unterbrechende Verbindung
duckdb_query_progress
Fortschritt der laufenden Abfrage abrufen
Syntax
duckdb_query_progress_type duckdb_query_progress(
duckdb_connection connection
);
Parameter
connection: Die aktive Verbindung
Rückgabewert
-1, wenn kein Fortschritt vorliegt, sonst ein Prozentwert des Fortschritts
duckdb_disconnect
Schließt die angegebene Verbindung und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_disconnect(
duckdb_connection *connection
);
Parameter
connection: Die zu schließende Verbindung.
duckdb_connection_get_client_context
Ruft den Client-Kontext der Verbindung ab.
Syntax
void duckdb_connection_get_client_context(
duckdb_connection connection,
duckdb_client_context *out_context
);
Parameter
connection: Die Verbindung.out_context: Der Client-Kontext der Verbindung. Must be destroyed withduckdb_destroy_client_context.
duckdb_connection_get_arrow_options
Ruft die Arrow-Optionen der Verbindung ab.
Syntax
void duckdb_connection_get_arrow_options(
duckdb_connection connection,
duckdb_arrow_options *out_arrow_options
);
Parameter
connection: Die Verbindung.
duckdb_client_context_get_connection_id
Gibt die Verbindungs-ID des Client-Kontexts zurück.
Syntax
idx_t duckdb_client_context_get_connection_id(
duckdb_client_context context
);
Parameter
context: Der Client-Kontext.
Rückgabewert
Die Verbindungs-ID des Client-Kontexts.
duckdb_destroy_client_context
Zerstört den Client-Kontext und gibt seinen Speicher frei.
Syntax
void duckdb_destroy_client_context(
duckdb_client_context *context
);
Parameter
context: Der zu zerstörende Client-Kontext.
duckdb_destroy_arrow_options
Zerstört die Arrow-Optionen und gibt ihren Speicher frei.
Syntax
void duckdb_destroy_arrow_options(
duckdb_arrow_options *arrow_options
);
Parameter
arrow_options: Die zu zerstörenden Arrow-Optionen.
duckdb_library_version
Gibt die Version der eingebundenen DuckDB zurück, mit einem Versionspostfix für Entwicklungsversionen
Wird üblicherweise für die Entwicklung von C-Erweiterungen verwendet, die dies für eine Kompatibilitätsprüfung zurückgeben müssen.
Syntax
const char *duckdb_library_version(
);
duckdb_get_table_names
Gibt die Liste der (vollständig qualifizierten) Tabellennamen der Abfrage zurück.
Syntax
duckdb_value duckdb_get_table_names(
duckdb_connection connection,
const char *query,
bool qualified
);
Parameter
connection: Die Verbindung, für die die Tabellennamen ermittelt werden.query: Die Abfrage, für die die Tabellennamen ermittelt werden.qualified: Gibt vollständig qualifizierte Tabellennamen (catalog.schema.table), if set to true, else only the (not escaped) table names.
Rückgabewert
Ein duckdb_value vom Typ VARCHAR[] mit den (vollständig qualifizierten) Tabellennamen der Abfrage. Muss mit duckdb_destroy_value zerstört werden.
duckdb_create_config
Initialisiert ein leeres Konfigurationsobjekt, das Startoptionen für die DuckDB-Instanz
über duckdb_open_ext bereitstellt.
Das duckdb_config muss mit ‘duckdb_destroy_config’ zerstört werden
Dies gelingt immer, sofern kein malloc-Fehler auftritt.
Beachten Sie, dass duckdb_destroy_config immer für die resultierende Konfiguration aufgerufen werden sollte, auch wenn die Funktion
DuckDBError zurückgibt.
Syntax
duckdb_state duckdb_create_config(
duckdb_config *out_config
);
Parameter
out_config: Das resultierende Konfigurationsobjekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_config_count
Gibt die Gesamtzahl der Konfigurationsoptionen zurück, die mit duckdb_get_config_flag verwendet werden können.
Dies sollte nicht in einer Schleife aufgerufen werden, da intern über alle Optionen iteriert wird.
Rückgabewert
Die Anzahl der verfügbaren Konfigurationsoptionen.
Syntax
size_t duckdb_config_count(
);
duckdb_get_config_flag
Ermittelt einen menschenlesbaren Namen und eine Beschreibung einer bestimmten Konfigurationsoption. Dies kann z. B. verwendet werden, um
Konfigurationsoptionen anzuzeigen. Dies gelingt, sofern index nicht außerhalb des Bereichs liegt (d. h. >= duckdb_config_count).
Der Ergebnisname oder die Beschreibung darf NICHT freigegeben werden.
Syntax
duckdb_state duckdb_get_config_flag(
size_t index,
const char **out_name,
const char **out_description
);
Parameter
index: Der Index der Konfigurationsoption (zwischen 0 undduckdb_config_count)out_name: Ein Name des Konfigurationsflags.out_description: Eine Beschreibung des Konfigurationsflags.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_set_config
Setzt die angegebene Option für die angegebene Konfiguration. Die Konfigurationsoption wird über den Namen angegeben.
Eine Liste der Konfigurationsoptionen finden Sie unter duckdb_get_config_flag.
Im Quellcode sind Konfigurationsoptionen in config.cpp definiert.
Dies kann fehlschlagen, wenn der Name ungültig ist oder der für die Option angegebene Wert ungültig ist.
Syntax
duckdb_state duckdb_set_config(
duckdb_config config,
const char *name,
const char *option
);
Parameter
config: Das Konfigurationsobjekt, für das die Option gesetzt wird.name: Der Name des zu setzenden Konfigurationsflags.option: Der Wert, auf den das Konfigurationsflag gesetzt wird.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_destroy_config
Zerstört das angegebene Konfigurationsobjekt und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_config(
duckdb_config *config
);
Parameter
config: Das zu zerstörende Konfigurationsobjekt.
duckdb_create_error_data
Erzeugt duckdb_error_data.
Muss mit duckdb_destroy_error_data zerstört werden.
Syntax
duckdb_error_data duckdb_create_error_data(
duckdb_error_type type,
const char *message
);
Parameter
type: Der Fehlertyp.message: Die Fehlermeldung.
Rückgabewert
Die Fehlerdaten.
duckdb_destroy_error_data
Zerstört die Fehlerdaten und gibt ihren Speicher frei.
Syntax
void duckdb_destroy_error_data(
duckdb_error_data *error_data
);
Parameter
error_data: Die zu zerstörenden Fehlerdaten.
duckdb_error_data_error_type
Gibt den duckdb_error_type der Fehlerdaten zurück.
Syntax
duckdb_error_type duckdb_error_data_error_type(
duckdb_error_data error_data
);
Parameter
error_data: Die Fehlerdaten.
Rückgabewert
Der Fehlertyp.
duckdb_error_data_message
Gibt die Fehlermeldung der Fehlerdaten zurück. Darf nicht freigegeben werden.
Syntax
const char *duckdb_error_data_message(
duckdb_error_data error_data
);
Parameter
error_data: Die Fehlerdaten.
Rückgabewert
Die Fehlermeldung.
duckdb_error_data_has_error
Gibt zurück, ob die Fehlerdaten einen Fehler enthalten.
Syntax
bool duckdb_error_data_has_error(
duckdb_error_data error_data
);
Parameter
error_data: Die Fehlerdaten.
Rückgabewert
True, wenn die Fehlerdaten eine Exception enthalten, sonst false.
duckdb_query
Führt eine SQL-Abfrage in einer Verbindung aus und speichert das vollständige (materialisierte) Ergebnis im Zeiger out_result.
Wenn die Abfrage fehlschlägt, wird DuckDBError zurückgegeben, und die Fehlermeldung kann durch Aufruf von
duckdb_result_error abgerufen werden.
Beachten Sie, dass nach duckdb_query duckdb_destroy_result für das Ergebnisobjekt aufgerufen werden muss, auch wenn die
Abfrage fehlschlägt, andernfalls wird der im Ergebnis gespeicherte Fehler nicht korrekt freigegeben.
Syntax
duckdb_state duckdb_query(
duckdb_connection connection,
const char *query,
duckdb_result *out_result
);
Parameter
connection: Die Verbindung, in der die Abfrage ausgeführt wird.query: Die auszuführende SQL-Abfrage.out_result: Das Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_destroy_result
Schließt das Ergebnis und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_result(
duckdb_result *result
);
Parameter
result: Das zu zerstörende Ergebnis.
duckdb_column_name
Gibt den Spaltennamen der angegebenen Spalte zurück. Das Ergebnis muss nicht freigegeben werden; die Spaltennamen werden automatisch zerstört, wenn das Ergebnis zerstört wird.
Gibt NULL zurück, wenn die Spalte außerhalb des Bereichs liegt.
Syntax
const char *duckdb_column_name(
duckdb_result *result,
idx_t col
);
Parameter
result: Das Ergebnisobjekt, von dem der Spaltenname geholt wird.col: Der Spaltenindex.
Rückgabewert
Der Spaltenname der angegebenen Spalte.
duckdb_column_type
Gibt den Spaltentyp der angegebenen Spalte zurück.
Gibt DUCKDB_TYPE_INVALID zurück, wenn die Spalte außerhalb des Bereichs liegt.
Syntax
duckdb_type duckdb_column_type(
duckdb_result *result,
idx_t col
);
Parameter
result: Das Ergebnisobjekt, von dem der Spaltentyp geholt wird.col: Der Spaltenindex.
Rückgabewert
Der Spaltentyp der angegebenen Spalte.
duckdb_result_statement_type
Gibt den Anweisungstyp der ausgeführten Anweisung zurück
Syntax
duckdb_statement_type duckdb_result_statement_type(
duckdb_result result
);
Parameter
result: Das Ergebnisobjekt, von dem der Statement-Typ geholt wird.
Rückgabewert
duckdb_statement_type-Wert oder DUCKDB_STATEMENT_TYPE_INVALID
duckdb_column_logical_type
Gibt den logischen Spaltentyp der angegebenen Spalte zurück.
Der Rückgabetyp dieses Aufrufs sollte mit duckdb_destroy_logical_type zerstört werden.
Gibt NULL zurück, wenn die Spalte außerhalb des Bereichs liegt.
Syntax
duckdb_logical_type duckdb_column_logical_type(
duckdb_result *result,
idx_t col
);
Parameter
result: Das Ergebnisobjekt, von dem der Spaltentyp geholt wird.col: Der Spaltenindex.
Rückgabewert
Der logische Spaltentyp der angegebenen Spalte.
duckdb_result_get_arrow_options
Gibt die dem angegebenen Ergebnis zugeordneten Arrow-Optionen zurück. Diese Optionen definieren, wie die Arrow-Arrays/das Schema erzeugt werden sollen.
Syntax
duckdb_arrow_options duckdb_result_get_arrow_options(
duckdb_result *result
);
Parameter
result: Das Ergebnisobjekt, von dem die Arrow-Optionen geholt werden.
Rückgabewert
Die dem angegebenen Ergebnis zugeordneten Arrow-Optionen. Diese müssen mit
duckdb_destroy_arrow_options zerstört werden.
duckdb_column_count
Gibt die Anzahl der Spalten im Ergebnisobjekt zurück.
Syntax
idx_t duckdb_column_count(
duckdb_result *result
);
Parameter
result: Das Ergebnisobjekt.
Rückgabewert
Die Anzahl der Spalten im Ergebnisobjekt.
duckdb_row_count
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt die Anzahl der Zeilen im Ergebnisobjekt zurück.
Syntax
idx_t duckdb_row_count(
duckdb_result *result
);
Parameter
result: Das Ergebnisobjekt.
Rückgabewert
Die Anzahl der Zeilen im Ergebnisobjekt.
duckdb_rows_changed
Gibt die Anzahl der von der im Ergebnis gespeicherten Abfrage geänderten Zeilen zurück. Dies ist nur für INSERT/UPDATE/DELETE- Abfragen relevant. Bei anderen Abfragen ist rows_changed 0.
Syntax
idx_t duckdb_rows_changed(
duckdb_result *result
);
Parameter
result: Das Ergebnisobjekt.
Rückgabewert
Die Anzahl der geänderten Zeilen.
duckdb_column_data
Deprecated Diese Methode ist veraltet. Verwenden Sie stattdessen bevorzugt
duckdb_result_get_chunk.
Gibt die Daten einer bestimmten Spalte eines Ergebnisses im spaltenorientierten Format zurück.
Die Funktion gibt ein dichtes Array mit den Ergebnisdaten zurück. Der genaue im Array gespeicherte Typ hängt vom
entsprechenden duckdb_type ab (bereitgestellt von duckdb_column_type). Den genauen Typ für den Zugriff auf die Daten
finden Sie in den Kommentaren im Abschnitt Typen oder in der Enum DUCKDB_TYPE.
For example, for a column of type DUCKDB_TYPE_INTEGER, rows can be accessed in the following manner:
int32_t *data = (int32_t *) duckdb_column_data(&result, 0);printf("Data for row %d: %d\n", row, data[row]);Syntax
void *duckdb_column_data(
duckdb_result *result,
idx_t col
);
Parameter
result: Das Ergebnisobjekt, von dem die Spaltendaten geholt werden.col: Der Spaltenindex.
Rückgabewert
Die Spaltendaten der angegebenen Spalte.
duckdb_nullmask_data
Deprecated Diese Methode ist veraltet. Verwenden Sie stattdessen bevorzugt
duckdb_result_get_chunk.
Gibt die Nullmaske einer bestimmten Spalte eines Ergebnisses im spaltenorientierten Format zurück. Die Nullmaske gibt für jede Zeile
an, ob die entsprechende Zeile NULL ist. Wenn eine Zeile NULL ist, sind die Werte im von duckdb_column_data
bereitgestellten Array undefiniert.
int32_t *data = (int32_t *) duckdb_column_data(&result, 0);bool *nullmask = duckdb_nullmask_data(&result, 0);if (nullmask[row]) { printf("Data for row %d: NULL\n", row);} else { printf("Data for row %d: %d\n", row, data[row]);}Syntax
bool *duckdb_nullmask_data(
duckdb_result *result,
idx_t col
);
Parameter
result: Das Ergebnisobjekt, von dem die Nullmask geholt wird.col: Der Spaltenindex.
Rückgabewert
Die Nullmaske der angegebenen Spalte.
duckdb_result_error
Gibt die im Ergebnis enthaltene Fehlermeldung zurück. Der Fehler ist nur gesetzt, wenn duckdb_query DuckDBError zurückgibt.
Das Ergebnis dieser Funktion darf nicht freigegeben werden. Es wird bereinigt, wenn duckdb_destroy_result aufgerufen wird.
Syntax
const char *duckdb_result_error(
duckdb_result *result
);
Parameter
result: Das Ergebnisobjekt, von dem der Fehler geholt wird.
Rückgabewert
Der Fehler des Ergebnisses.
duckdb_result_error_type
Gibt den im Ergebnis enthaltenen Ergebnisfehlertyp zurück. Der Fehler ist nur gesetzt, wenn duckdb_query
DuckDBError zurückgibt.
Syntax
duckdb_error_type duckdb_result_error_type(
duckdb_result *result
);
Parameter
result: Das Ergebnisobjekt, von dem der Fehler geholt wird.
Rückgabewert
Der Fehlertyp des Ergebnisses.
duckdb_result_get_chunk
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Holt einen Data-Chunk aus dem duckdb_result. Diese Funktion sollte wiederholt aufgerufen werden, bis das Ergebnis erschöpft ist.
Das Ergebnis muss mit duckdb_destroy_data_chunk zerstört werden.
Diese Funktion ersetzt alle duckdb_value-Funktionen sowie die Funktionen duckdb_column_data und duckdb_nullmask_data.
Sie führt zu deutlich besserer Leistung und sollte in neueren Codebasen bevorzugt werden.
Wenn diese Funktion verwendet wird, können keine der anderen Ergebnisfunktionen verwendet werden und umgekehrt (d. h., diese Funktion kann nicht mit den Legacy-Ergebnisfunktionen gemischt werden).
Verwenden Sie duckdb_result_chunk_count, um festzustellen, wie viele Chunks das Ergebnis enthält.
Syntax
duckdb_data_chunk duckdb_result_get_chunk(
duckdb_result result,
idx_t chunk_index
);
Parameter
result: Das Ergebnisobjekt, von dem der Data Chunk geholt wird.chunk_index: Der Chunk-Index, von dem geholt wird.
Rückgabewert
Der resultierende Data-Chunk. Gibt NULL zurück, wenn der Chunk-Index außerhalb des Bereichs liegt.
duckdb_result_is_streaming
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Prüft, ob der Typ des internen Ergebnisses StreamQueryErgebnis ist.
Syntax
bool duckdb_result_is_streaming(
duckdb_result result
);
Parameter
result: Das zu prüfende Ergebnisobjekt.
Rückgabewert
Ob das Ergebnisobjekt vom Typ StreamQueryErgebnis ist
duckdb_result_chunk_count
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt die Anzahl der Data-Chunks im Ergebnis zurück.
Syntax
idx_t duckdb_result_chunk_count(
duckdb_result result
);
Parameter
result: Das Ergebnisobjekt
Rückgabewert
Anzahl der Data-Chunks im Ergebnis.
duckdb_result_return_type
Gibt den return_type des angegebenen Ergebnisses zurück oder DUCKDB_RETURN_TYPE_INVALID bei Fehler
Syntax
duckdb_result_type duckdb_result_return_type(
duckdb_result result
);
Parameter
result: Das Ergebnisobjekt
Rückgabewert
Der return_type
duckdb_value_boolean
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der Boolean-Wert an der angegebenen Position oder false, wenn der Wert nicht konvertiert werden kann.
Syntax
bool duckdb_value_boolean(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_int8
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der int8_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
int8_t duckdb_value_int8(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_int16
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der int16_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
int16_t duckdb_value_int16(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_int32
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der int32_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
int32_t duckdb_value_int32(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_int64
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der int64_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
int64_t duckdb_value_int64(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_hugeint
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_hugeint-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_hugeint duckdb_value_hugeint(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_uhugeint
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_uhugeint-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_uhugeint duckdb_value_uhugeint(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_decimal
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_decimal-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_decimal duckdb_value_decimal(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_uint8
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der uint8_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
uint8_t duckdb_value_uint8(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_uint16
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der uint16_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
uint16_t duckdb_value_uint16(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_uint32
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der uint32_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
uint32_t duckdb_value_uint32(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_uint64
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der uint64_t-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
uint64_t duckdb_value_uint64(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_float
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der Float-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
float duckdb_value_float(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_double
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der Double-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
double duckdb_value_double(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_date
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_date-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_date duckdb_value_date(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_time
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_time-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_time duckdb_value_time(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_timestamp
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_timestamp-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_timestamp duckdb_value_timestamp(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_interval
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_interval-Wert an der angegebenen Position oder 0, wenn der Wert nicht konvertiert werden kann.
Syntax
duckdb_interval duckdb_value_interval(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_varchar
Deprecated Diese Methode ist veraltet. Verwenden Sie stattdessen duckdb_value_string. Diese Funktion funktioniert nicht korrekt, wenn der String Nullbytes enthält.
Rückgabewert
Der Textwert an der angegebenen Position als nullterminierter String oder nullptr, wenn der Wert nicht
konvertiert werden kann. Das Ergebnis muss mit duckdb_free freigegeben werden.
Syntax
char *duckdb_value_varchar(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_string
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Keine Unterstützung für verschachtelte Typen und andere komplexe Typen.
Das resultierende Feld “string.data” muss mit duckdb_free. freigegeben werden.
Rückgabewert
Der Stringwert an der angegebenen Position. Versucht, den Ergebniswert in einen String zu casten.
Syntax
duckdb_string duckdb_value_string(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_varchar_internal
Deprecated Diese Methode ist veraltet. Verwenden Sie stattdessen duckdb_value_string_internal. Diese Funktion funktioniert nicht korrekt, wenn der String Nullbytes enthält.
Rückgabewert
Der char*-Wert an der angegebenen Position. Funktioniert NUR mit VARCHAR-Spalten und führt keinen Auto-Cast durch. Wenn die Spalte KEINE VARCHAR-Spalte ist, gibt diese Funktion NULL zurück.
Das Ergebnis darf NICHT freigegeben werden.
Syntax
char *duckdb_value_varchar_internal(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_string_internal
Deprecated Diese Methode ist veraltet. Verwenden Sie stattdessen duckdb_value_string_internal. Diese Funktion funktioniert nicht korrekt, wenn der String Nullbytes enthält.
Rückgabewert
Der char*-Wert an der angegebenen Position. Funktioniert NUR mit VARCHAR-Spalten und führt keinen Auto-Cast durch. Wenn die Spalte KEINE VARCHAR-Spalte ist, gibt diese Funktion NULL zurück.
Das Ergebnis darf NICHT freigegeben werden.
Syntax
duckdb_string duckdb_value_string_internal(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_blob
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Der duckdb_blob-Wert an der angegebenen Position. Gibt einen Blob mit blob.data auf nullptr zurück, wenn der
Wert nicht konvertiert werden kann. Das resultierende Feld “blob.data” muss mit duckdb_free. freigegeben werden.
Syntax
duckdb_blob duckdb_value_blob(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_value_is_null
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Rückgabewert
Gibt true zurück, wenn der Wert am angegebenen Index NULL ist, sonst false.
Syntax
bool duckdb_value_is_null(
duckdb_result *result,
idx_t col,
idx_t row
);
duckdb_malloc
Allokiert size Bytes Speicher mit der internen malloc-Funktion von DuckDB. Jeder auf diese Weise allokierte Speicher
sollte mit duckdb_free freigegeben werden.
Syntax
void *duckdb_malloc(
size_t size
);
Parameter
size: Die Anzahl der zu allokierenden Bytes.
Rückgabewert
Ein Zeiger auf den allokierten Speicherbereich.
duckdb_free
Gibt einen Wert frei, der von duckdb_malloc, duckdb_value_varchar, duckdb_value_blob oder
duckdb_value_string zurückgegeben wurde.
Syntax
void duckdb_free(
void *ptr
);
Parameter
ptr: Der freizugebende Speicherbereich.
duckdb_vector_size
Die von DuckDB verwendete interne Vektorgröße.
Das ist die Anzahl der Tupel, die in einen mit duckdb_create_data_chunk erzeugten Data-Chunk passen.
Rückgabewert
Die Vektorgröße.
Syntax
idx_t duckdb_vector_size(
);
duckdb_string_is_inlined
Ob der duckdb_string_t-Wert inline gespeichert ist. Das bedeutet, dass die Stringdaten keine separate Allokation haben.
Syntax
bool duckdb_string_is_inlined(
duckdb_string_t string
);
duckdb_string_t_length
Ermittelt die Stringlänge eines string_t
Syntax
uint32_t duckdb_string_t_length(
duckdb_string_t string
);
Parameter
string: Die Zeichenkette, deren Länge ermittelt wird.
Rückgabewert
Die Länge.
duckdb_string_t_data
Gibt einen Zeiger auf die Stringdaten eines string_t zurück
Syntax
const char *duckdb_string_t_data(
duckdb_string_t *string
);
Parameter
string: Die Zeichenkette, deren Zeiger ermittelt wird.
Rückgabewert
Der Zeiger.
duckdb_from_date
Zerlegt ein duckdb_date-Objekt in Jahr, Monat und Tag (gespeichert als duckdb_date_struct).
Syntax
duckdb_date_struct duckdb_from_date(
duckdb_date date
);
Parameter
date: Das Datumsobjekt, wie aus einerDUCKDB_TYPE_DATE-Spalte erhalten.
Rückgabewert
Die duckdb_date_struct mit den zerlegten Elementen.
duckdb_to_date
Setzt ein duckdb_date aus Jahr, Monat und Tag (duckdb_date_struct) wieder zusammen.
Syntax
duckdb_date duckdb_to_date(
duckdb_date_struct date
);
Parameter
date: Jahr, Monat und Tag, gespeichert in einemduckdb_date_struct.
Rückgabewert
Das duckdb_date-Element.
duckdb_is_finite_date
Prüft, ob ein duckdb_date ein endlicher Wert ist.
Syntax
bool duckdb_is_finite_date(
duckdb_date date
);
Parameter
date: Das Datumsobjekt, wie aus einerDUCKDB_TYPE_DATE-Spalte erhalten.
Rückgabewert
True, wenn das Datum endlich ist, false bei ±infinity.
duckdb_from_time
Zerlegt ein duckdb_time-Objekt in Stunde, Minute, Sekunde und Mikrosekunde (gespeichert als duckdb_time_struct).
Syntax
duckdb_time_struct duckdb_from_time(
duckdb_time time
);
Parameter
time: Das Zeitobjekt, wie aus einerDUCKDB_TYPE_TIME-Spalte erhalten.
Rückgabewert
Die duckdb_time_struct mit den zerlegten Elementen.
duckdb_create_time_tz
Erzeugt ein duckdb_time_tz-Objekt aus Mikrosekunden und einem Zeitzonenoffset.
Syntax
duckdb_time_tz duckdb_create_time_tz(
int64_t micros,
int32_t offset
);
Parameter
micros: Die Mikrosekunden-Komponente der Zeit.offset: Die Zeitzonen-Offset-Komponente der Zeit.
Rückgabewert
Das duckdb_time_tz-Element.
duckdb_from_time_tz
Zerlegt ein TIME_TZ-Objekt in Mikrosekunden und einen Zeitzonenoffset.
Verwenden Sie duckdb_from_time, um die Mikrosekunden weiter in Stunde, Minute, Sekunde und Mikrosekunde zu zerlegen.
Syntax
duckdb_time_tz_struct duckdb_from_time_tz(
duckdb_time_tz micros
);
Parameter
micros: Das Zeitobjekt, wie aus einerDUCKDB_TYPE_TIME_TZ-Spalte erhalten.
duckdb_to_time
Setzt ein duckdb_time aus Stunde, Minute, Sekunde und Mikrosekunde (duckdb_time_struct) wieder zusammen.
Syntax
duckdb_time duckdb_to_time(
duckdb_time_struct time
);
Parameter
time: Stunde, Minute, Sekunde und Mikrosekunde in einemduckdb_time_struct.
Rückgabewert
Das duckdb_time-Element.
duckdb_from_timestamp
Zerlegt ein duckdb_timestamp-Objekt in eine duckdb_timestamp_struct.
Syntax
duckdb_timestamp_struct duckdb_from_timestamp(
duckdb_timestamp ts
);
Parameter
ts: Das ts-Objekt, wie aus einerDUCKDB_TYPE_TIMESTAMP-Spalte erhalten.
Rückgabewert
Die duckdb_timestamp_struct mit den zerlegten Elementen.
duckdb_to_timestamp
Setzt einen duckdb_timestamp aus einer duckdb_timestamp_struct wieder zusammen.
Syntax
duckdb_timestamp duckdb_to_timestamp(
duckdb_timestamp_struct ts
);
Parameter
ts: Die zerlegten Elemente in einemduckdb_timestamp_struct.
Rückgabewert
Das duckdb_timestamp-Element.
duckdb_is_finite_timestamp
Prüft, ob ein duckdb_timestamp ein endlicher Wert ist.
Syntax
bool duckdb_is_finite_timestamp(
duckdb_timestamp ts
);
Parameter
ts: Das duckdb_timestamp-Objekt, wie aus einerDUCKDB_TYPE_TIMESTAMP-Spalte erhalten.
Rückgabewert
True, wenn der Timestamp endlich ist, false bei ±infinity.
duckdb_is_finite_timestamp_s
Prüft, ob ein duckdb_timestamp_s ein endlicher Wert ist.
Syntax
bool duckdb_is_finite_timestamp_s(
duckdb_timestamp_s ts
);
Parameter
ts: Das duckdb_timestamp_s-Objekt, wie aus einerDUCKDB_TYPE_TIMESTAMP_S-Spalte erhalten.
Rückgabewert
True, wenn der Timestamp endlich ist, false bei ±infinity.
duckdb_is_finite_timestamp_ms
Prüft, ob ein duckdb_timestamp_ms ein endlicher Wert ist.
Syntax
bool duckdb_is_finite_timestamp_ms(
duckdb_timestamp_ms ts
);
Parameter
ts: Das duckdb_timestamp_ms-Objekt, wie aus einerDUCKDB_TYPE_TIMESTAMP_MS-Spalte erhalten.
Rückgabewert
True, wenn der Timestamp endlich ist, false bei ±infinity.
duckdb_is_finite_timestamp_ns
Prüft, ob ein duckdb_timestamp_ns ein endlicher Wert ist.
Syntax
bool duckdb_is_finite_timestamp_ns(
duckdb_timestamp_ns ts
);
Parameter
ts: Das duckdb_timestamp_ns-Objekt, wie aus einerDUCKDB_TYPE_TIMESTAMP_NS-Spalte erhalten.
Rückgabewert
True, wenn der Timestamp endlich ist, false bei ±infinity.
duckdb_hugeint_to_double
Konvertiert ein duckdb_hugeint-Objekt (aus einer DUCKDB_TYPE_HUGEINT-Spalte) in ein Double.
Syntax
double duckdb_hugeint_to_double(
duckdb_hugeint val
);
Parameter
val: Der Hugeint-Wert.
Rückgabewert
Das konvertierte double-Element.
duckdb_double_to_hugeint
Konvertiert einen Double-Wert in ein duckdb_hugeint-Objekt.
Wenn die Konvertierung fehlschlägt, weil der Double-Wert zu groß ist, ist das Ergebnis 0.
Syntax
duckdb_hugeint duckdb_double_to_hugeint(
double val
);
Parameter
val: Der Double-Wert.
Rückgabewert
Das konvertierte duckdb_hugeint-Element.
duckdb_uhugeint_to_double
Konvertiert ein duckdb_uhugeint-Objekt (aus einer DUCKDB_TYPE_UHUGEINT-Spalte) in ein Double.
Syntax
double duckdb_uhugeint_to_double(
duckdb_uhugeint val
);
Parameter
val: Der Uhugeint-Wert.
Rückgabewert
Das konvertierte double-Element.
duckdb_double_to_uhugeint
Konvertiert einen Double-Wert in ein duckdb_uhugeint-Objekt.
Wenn die Konvertierung fehlschlägt, weil der Double-Wert zu groß ist, ist das Ergebnis 0.
Syntax
duckdb_uhugeint duckdb_double_to_uhugeint(
double val
);
Parameter
val: Der Double-Wert.
Rückgabewert
Das konvertierte duckdb_uhugeint-Element.
duckdb_double_to_decimal
Konvertiert einen Double-Wert in ein duckdb_decimal-Objekt.
Wenn die Konvertierung fehlschlägt, weil der Double-Wert zu groß ist oder Breite/Nachkommastellen ungültig sind, ist das Ergebnis 0.
Syntax
duckdb_decimal duckdb_double_to_decimal(
double val,
uint8_t width,
uint8_t scale
);
Parameter
val: Der Double-Wert.
Rückgabewert
Das konvertierte duckdb_decimal-Element.
duckdb_decimal_to_double
Konvertiert ein duckdb_decimal-Objekt (aus einer DUCKDB_TYPE_DECIMAL-Spalte) in ein Double.
Syntax
double duckdb_decimal_to_double(
duckdb_decimal val
);
Parameter
val: Der Decimal-Wert.
Rückgabewert
Das konvertierte double-Element.
duckdb_prepare
Erzeugt ein Prepared-Statement-Objekt aus einer Abfrage.
Beachten Sie, dass das Prepared Statement nach dem Aufruf von duckdb_prepare immer mit
duckdb_destroy_prepare zerstört werden sollte, auch wenn das Vorbereiten fehlschlägt.
Wenn das Vorbereiten fehlschlägt, kann duckdb_prepare_error aufgerufen werden, um den Grund zu ermitteln.
Syntax
duckdb_state duckdb_prepare(
duckdb_connection connection,
const char *query,
duckdb_prepared_statement *out_prepared_statement
);
Parameter
connection: Das Verbindungsobjektquery: Die vorzubereitende SQL-Abfrageout_prepared_statement: Das resultierende Prepared-Statement-Objekt
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_destroy_prepare
Schließt das Prepared Statement und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_prepare(
duckdb_prepared_statement *prepared_statement
);
Parameter
prepared_statement: Das zu zerstörende Prepared Statement.
duckdb_prepare_error
Gibt die dem angegebenen Prepared Statement zugeordnete Fehlermeldung zurück.
Wenn das Prepared Statement keine Fehlermeldung hat, wird stattdessen nullptr zurückgegeben.
Die Fehlermeldung sollte nicht freigegeben werden. Sie wird freigegeben, wenn duckdb_destroy_prepare aufgerufen wird.
Syntax
const char *duckdb_prepare_error(
duckdb_prepared_statement prepared_statement
);
Parameter
prepared_statement: Das Prepared Statement, von dem der Fehler ermittelt wird.
Rückgabewert
Die Fehlermeldung oder nullptr, wenn keine vorhanden ist.
duckdb_nparams
Gibt die Anzahl der Parameter zurück, die dem angegebenen Prepared Statement übergeben werden können.
Gibt 0 zurück, wenn die Abfrage nicht erfolgreich vorbereitet wurde.
Syntax
idx_t duckdb_nparams(
duckdb_prepared_statement prepared_statement
);
Parameter
prepared_statement: Das Prepared Statement, für das die Anzahl der Parameter ermittelt wird.
duckdb_parameter_name
Gibt den Namen zurück, mit dem der Parameter identifiziert wird.
Der zurückgegebene String sollte mit duckdb_free freigegeben werden.
Gibt NULL zurück, wenn der Index für das angegebene Prepared Statement außerhalb des Bereichs liegt.
Syntax
const char *duckdb_parameter_name(
duckdb_prepared_statement prepared_statement,
idx_t index
);
Parameter
prepared_statement: Das Prepared Statement, von dem der Parametername ermittelt wird.
duckdb_param_type
Gibt den Parametertyp des Parameter am angegebenen Index zurück.
Gibt DUCKDB_TYPE_INVALID zurück, wenn der Parameterindex außerhalb des Bereichs liegt oder die Anweisung nicht erfolgreich vorbereitet wurde.
Syntax
duckdb_type duckdb_param_type(
duckdb_prepared_statement prepared_statement,
idx_t param_idx
);
Parameter
prepared_statement: Das Prepared Statement.param_idx: Der Parameterindex.
Rückgabewert
Der Parametertyp
duckdb_param_logical_type
Gibt den logischen Typ des Parameter am angegebenen Index zurück.
Gibt nullptr zurück, wenn der Parameterindex außerhalb des Bereichs liegt oder die Anweisung nicht erfolgreich vorbereitet wurde.
Der Rückgabetyp dieses Aufrufs sollte mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_param_logical_type(
duckdb_prepared_statement prepared_statement,
idx_t param_idx
);
Parameter
prepared_statement: Das Prepared Statement.param_idx: Der Parameterindex.
Rückgabewert
Der logische Typ des Parameter
duckdb_clear_bindings
Löscht die an das Prepared Statement gebundenen Parameter.
Syntax
duckdb_state duckdb_clear_bindings(
duckdb_prepared_statement prepared_statement
);
duckdb_prepared_statement_type
Gibt den Anweisungstyp der auszuführenden Anweisung zurück
Syntax
duckdb_statement_type duckdb_prepared_statement_type(
duckdb_prepared_statement statement
);
Parameter
statement: Das Prepared Statement.
Rückgabewert
duckdb_statement_type-Wert oder DUCKDB_STATEMENT_TYPE_INVALID
duckdb_prepared_statement_column_count
Gibt die Anzahl der Spalten im Ergebnis des Prepared Statements zurück. Wenn einer der Spaltentypen ungültig ist, ist das Ergebnis 1.
Syntax
idx_t duckdb_prepared_statement_column_count(
duckdb_prepared_statement prepared_statement
);
Parameter
prepared_statement: Das Prepared Statement.
Rückgabewert
Die Anzahl der Spalten im Ergebnis des Prepared Statements.
duckdb_prepared_statement_column_name
Gibt den Namen der angegebenen Spalte im Ergebnis des prepared_statement zurück.
Der zurückgegebene String sollte mit duckdb_free freigegeben werden.
Gibt nullptr zurück, wenn die Spalte außerhalb des Bereichs liegt.
Syntax
const char *duckdb_prepared_statement_column_name(
duckdb_prepared_statement prepared_statement,
idx_t col_idx
);
Parameter
prepared_statement: Das Prepared Statement.col_idx: Der Spaltenindex.
Rückgabewert
Der Spaltenname der angegebenen Spalte.
duckdb_prepared_statement_column_logical_type
Gibt den Spaltentyp der angegebenen Spalte im Ergebnis des prepared_statement zurück.
Gibt DUCKDB_TYPE_INVALID zurück, wenn die Spalte außerhalb des Bereichs liegt.
Der Rückgabetyp dieses Aufrufs sollte mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_prepared_statement_column_logical_type(
duckdb_prepared_statement prepared_statement,
idx_t col_idx
);
Parameter
prepared_statement: Das Prepared Statement, von dem der Spaltentyp geholt wird.col_idx: Der Spaltenindex.
Rückgabewert
Der logische Typ der angegebenen Spalte.
duckdb_prepared_statement_column_type
Gibt den Spaltentyp der angegebenen Spalte im Ergebnis des prepared_statement zurück.
Gibt DUCKDB_TYPE_INVALID zurück, wenn die Spalte außerhalb des Bereichs liegt.
Syntax
duckdb_type duckdb_prepared_statement_column_type(
duckdb_prepared_statement prepared_statement,
idx_t col_idx
);
Parameter
prepared_statement: Das Prepared Statement, von dem der Spaltentyp geholt wird.col_idx: Der Spaltenindex.
Rückgabewert
Der Typ der angegebenen Spalte.
duckdb_bind_value
Bindet einen Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_value(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_value val
);
duckdb_bind_parameter_index
Ruft den Index des Parameter für das Prepared Statement ab, identifiziert über den Namen
Syntax
duckdb_state duckdb_bind_parameter_index(
duckdb_prepared_statement prepared_statement,
idx_t *param_idx_out,
const char *name
);
duckdb_bind_boolean
Bindet einen Bool-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_boolean(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
bool val
);
duckdb_bind_int8
Bindet einen int8_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_int8(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
int8_t val
);
duckdb_bind_int16
Bindet einen int16_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_int16(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
int16_t val
);
duckdb_bind_int32
Bindet einen int32_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_int32(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
int32_t val
);
duckdb_bind_int64
Bindet einen int64_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_int64(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
int64_t val
);
duckdb_bind_hugeint
Bindet einen duckdb_hugeint-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_hugeint(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_hugeint val
);
duckdb_bind_uhugeint
Bindet einen duckdb_uhugeint-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_uhugeint(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_uhugeint val
);
duckdb_bind_decimal
Bindet einen duckdb_decimal-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_decimal(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_decimal val
);
duckdb_bind_uint8
Bindet einen uint8_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_uint8(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
uint8_t val
);
duckdb_bind_uint16
Bindet einen uint16_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_uint16(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
uint16_t val
);
duckdb_bind_uint32
Bindet einen uint32_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_uint32(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
uint32_t val
);
duckdb_bind_uint64
Bindet einen uint64_t-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_uint64(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
uint64_t val
);
duckdb_bind_float
Bindet einen Float-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_float(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
float val
);
duckdb_bind_double
Bindet einen Double-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_double(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
double val
);
duckdb_bind_date
Bindet einen duckdb_date-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_date(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_date val
);
duckdb_bind_time
Bindet einen duckdb_time-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_time(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_time val
);
duckdb_bind_timestamp
Bindet einen duckdb_timestamp-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_timestamp(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_timestamp val
);
duckdb_bind_timestamp_tz
Bindet einen duckdb_timestamp-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_timestamp_tz(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_timestamp val
);
duckdb_bind_interval
Bindet einen duckdb_interval-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_interval(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
duckdb_interval val
);
duckdb_bind_varchar
Bindet einen nullterminierten VARCHAR-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_varchar(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
const char *val
);
duckdb_bind_varchar_length
Bindet einen VARCHAR-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_varchar_length(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
const char *val,
idx_t length
);
duckdb_bind_blob
Bindet einen Blob-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_blob(
duckdb_prepared_statement prepared_statement,
idx_t param_idx,
const void *data,
idx_t length
);
duckdb_bind_null
Bindet einen NULL-Wert an das Prepared Statement am angegebenen Index.
Syntax
duckdb_state duckdb_bind_null(
duckdb_prepared_statement prepared_statement,
idx_t param_idx
);
duckdb_execute_prepared
Führt das Prepared Statement mit den angegebenen gebundenen Parametern aus und gibt ein materialisiertes Abfrageergebnis zurück.
Diese Methode kann für jedes Prepared Statement mehrfach aufgerufen werden, und die Parameter können zwischen Aufrufen dieser Funktion geändert werden.
Beachten Sie, dass das Ergebnis mit duckdb_destroy_result freigegeben werden muss.
Syntax
duckdb_state duckdb_execute_prepared(
duckdb_prepared_statement prepared_statement,
duckdb_result *out_result
);
Parameter
prepared_statement: Das auszuführende Prepared Statement.out_result: Das Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_execute_prepared_streaming
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Führt das Prepared Statement mit den angegebenen gebundenen Parametern aus und gibt ein optional streamendes Abfrageergebnis zurück.
Um festzustellen, ob die resultierende Abfrage tatsächlich gestreamt wurde, verwenden Sie duckdb_result_is_streaming
Diese Methode kann für jedes Prepared Statement mehrfach aufgerufen werden, und die Parameter können zwischen Aufrufen dieser Funktion geändert werden.
Beachten Sie, dass das Ergebnis mit duckdb_destroy_result freigegeben werden muss.
Syntax
duckdb_state duckdb_execute_prepared_streaming(
duckdb_prepared_statement prepared_statement,
duckdb_result *out_result
);
Parameter
prepared_statement: Das auszuführende Prepared Statement.out_result: Das Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_extract_statements
Extrahiert alle Anweisungen aus einer Abfrage.
Beachten Sie, dass die extrahierten Anweisungen nach dem Aufruf von duckdb_extract_statements immer mit
duckdb_destroy_extracted zerstört werden sollten, auch wenn keine Anweisungen extrahiert wurden.
Wenn das Extrahieren fehlschlägt, kann duckdb_extract_statements_error aufgerufen werden, um den Grund zu ermitteln.
Syntax
idx_t duckdb_extract_statements(
duckdb_connection connection,
const char *query,
duckdb_extracted_statements *out_extracted_statements
);
Parameter
connection: Das Verbindungsobjektquery: Die zu extrahierende SQL-Abfrageout_extracted_statements: Das resultierende Objekt der extrahierten Anweisungen
Rückgabewert
Die Anzahl der extrahierten Anweisungen oder 0 bei Fehler.
duckdb_prepare_extracted_statement
Bereitet eine extrahierte Anweisung vor.
Beachten Sie, dass das Prepared Statement nach dem Aufruf von duckdb_prepare_extracted_statement immer mit
duckdb_destroy_prepare zerstört werden sollte, auch wenn das Vorbereiten fehlschlägt.
Wenn das Vorbereiten fehlschlägt, kann duckdb_prepare_error aufgerufen werden, um den Grund zu ermitteln.
Syntax
duckdb_state duckdb_prepare_extracted_statement(
duckdb_connection connection,
duckdb_extracted_statements extracted_statements,
idx_t index,
duckdb_prepared_statement *out_prepared_statement
);
Parameter
connection: Das Verbindungsobjektextracted_statements: Das Objekt der extrahierten Anweisungenindex: Der Index der vorzubereitenden extrahierten Anweisungout_prepared_statement: Das resultierende Prepared-Statement-Objekt
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_extract_statements_error
Gibt die in den extrahierten Anweisungen enthaltene Fehlermeldung zurück.
Das Ergebnis dieser Funktion darf nicht freigegeben werden. Es wird bereinigt, wenn duckdb_destroy_extracted aufgerufen wird.
Syntax
const char *duckdb_extract_statements_error(
duckdb_extracted_statements extracted_statements
);
Parameter
extracted_statements: Die extrahierten Anweisungen, von denen der Fehler geholt wird.
Rückgabewert
Der Fehler der extrahierten Anweisungen.
duckdb_destroy_extracted
Gibt den gesamten für die extrahierten Anweisungen allokierten Speicher frei.
Syntax
void duckdb_destroy_extracted(
duckdb_extracted_statements *extracted_statements
);
Parameter
extracted_statements: Die zu zerstörenden extrahierten Anweisungen.
duckdb_pending_prepared
Führt das Prepared Statement mit den angegebenen gebundenen Parametern aus und gibt ein Pending-Ergebnis zurück. Das Pending-Ergebnis ist eine Zwischenstruktur für eine noch nicht vollständig ausgeführte Abfrage. Das Pending-Ergebnis kann verwendet werden, um eine Abfrage schrittweise auszuführen und die Kontrolle zwischen Aufgaben an den Client zurückzugeben.
Beachten Sie, dass das Pending-Ergebnis nach dem Aufruf von duckdb_pending_prepared immer mit
duckdb_destroy_pending zerstört werden sollte, auch wenn diese Funktion DuckDBError zurückgibt.
Syntax
duckdb_state duckdb_pending_prepared(
duckdb_prepared_statement prepared_statement,
duckdb_pending_result *out_result
);
Parameter
prepared_statement: Das auszuführende Prepared Statement.out_result: Das Pending-Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_pending_prepared_streaming
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Führt das Prepared Statement mit den angegebenen gebundenen Parametern aus und gibt ein Pending-Ergebnis zurück. Dieses Pending-Ergebnis erzeugt bei der Ausführung ein streamendes duckdb_result. Das Pending-Ergebnis ist eine Zwischenstruktur für eine noch nicht vollständig ausgeführte Abfrage.
Beachten Sie, dass das Pending-Ergebnis nach dem Aufruf von duckdb_pending_prepared_streaming immer mit
duckdb_destroy_pending zerstört werden sollte, auch wenn diese Funktion DuckDBError zurückgibt.
Syntax
duckdb_state duckdb_pending_prepared_streaming(
duckdb_prepared_statement prepared_statement,
duckdb_pending_result *out_result
);
Parameter
prepared_statement: Das auszuführende Prepared Statement.out_result: Das Pending-Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_destroy_pending
Schließt das Pending-Ergebnis und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_pending(
duckdb_pending_result *pending_result
);
Parameter
pending_result: Das zu zerstörende Pending-Ergebnis.
duckdb_pending_error
Gibt die im Pending-Ergebnis enthaltene Fehlermeldung zurück.
Das Ergebnis dieser Funktion darf nicht freigegeben werden. Es wird bereinigt, wenn duckdb_destroy_pending aufgerufen wird.
Syntax
const char *duckdb_pending_error(
duckdb_pending_result pending_result
);
Parameter
pending_result: Das Pending-Ergebnis, von dem der Fehler geholt wird.
Rückgabewert
Der Fehler des Pending-Ergebniss.
duckdb_pending_execute_task
Führt eine einzelne Aufgabe innerhalb der Abfrage aus und gibt zurück, ob die Abfrage bereit ist.
Wenn dies DUCKDB_PENDING_RESULT_READY zurückgibt, kann duckdb_execute_pending aufgerufen werden, um das Ergebnis zu holen. Wenn dies DUCKDB_PENDING_RESULT_NOT_READY zurückgibt, sollte duckdb_pending_execute_task erneut aufgerufen werden. Wenn dies DUCKDB_PENDING_ERROR zurückgibt, ist bei der Ausführung ein Fehler aufgetreten.
Die Fehlermeldung kann durch Aufruf von duckdb_pending_error auf dem pending_result ermittelt werden.
Syntax
duckdb_pending_state duckdb_pending_execute_task(
duckdb_pending_result pending_result
);
Parameter
pending_result: Das Pending-Ergebnis, in dem ein Task ausgeführt wird.
Rückgabewert
Der Zustand des Pending-Ergebniss nach der Ausführung.
duckdb_pending_execute_check_state
Wenn dies DUCKDB_PENDING_RESULT_READY zurückgibt, kann duckdb_execute_pending aufgerufen werden, um das Ergebnis zu holen. Wenn dies DUCKDB_PENDING_RESULT_NOT_READY zurückgibt, sollte duckdb_pending_execute_check_state erneut aufgerufen werden. Wenn dies DUCKDB_PENDING_ERROR zurückgibt, ist bei der Ausführung ein Fehler aufgetreten.
Die Fehlermeldung kann durch Aufruf von duckdb_pending_error auf dem pending_result ermittelt werden.
Syntax
duckdb_pending_state duckdb_pending_execute_check_state(
duckdb_pending_result pending_result
);
Parameter
pending_result: Das Pending-Ergebnis.
Rückgabewert
Der Zustand des Pending-Ergebniss.
duckdb_execute_pending
Führt ein Pending-Query-Ergebnis vollständig aus und gibt das endgültige Abfrageergebnis zurück.
Wenn duckdb_pending_execute_task aufgerufen wurde, bis DUCKDB_PENDING_RESULT_READY zurückgegeben wurde, kehrt dies schnell zurück. Andernfalls müssen zuerst alle verbleibenden Aufgaben ausgeführt werden.
Beachten Sie, dass das Ergebnis mit duckdb_destroy_result freigegeben werden muss.
Syntax
duckdb_state duckdb_execute_pending(
duckdb_pending_result pending_result,
duckdb_result *out_result
);
Parameter
pending_result: Das auszuführende Pending-Ergebnis.out_result: Das Ergebnisobjekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_pending_execution_is_finished
Gibt zurück, ob ein duckdb_pending_state die Ausführung beendet hat. Wenn pending_state beispielsweise
DUCKDB_PENDING_RESULT_READY ist, gibt diese Funktion true zurück.
Syntax
bool duckdb_pending_execution_is_finished(
duckdb_pending_state pending_state
);
Parameter
pending_state: Der Pending-Status, anhand dessen entschieden wird, ob die Ausführung beendet wird.
Rückgabewert
Boolean, der angibt, dass die ausstehende Ausführung als beendet gelten soll.
duckdb_destroy_value
Zerstört den Wert und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_value(
duckdb_value *value
);
Parameter
value: Der zu zerstörende Wert.
duckdb_create_varchar
Erzeugt einen Wert aus einem nullterminierten String
Syntax
duckdb_value duckdb_create_varchar(
const char *text
);
Parameter
text: Die null-terminierte Zeichenkette
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_varchar_length
Erzeugt einen Wert aus einem String
Syntax
duckdb_value duckdb_create_varchar_length(
const char *text,
idx_t length
);
Parameter
text: The textlength: Die Länge des Texts
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_bool
Erzeugt einen Wert aus einem Boolean
Syntax
duckdb_value duckdb_create_bool(
bool input
);
Parameter
input: Der Boolean-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_int8
Erzeugt einen Wert aus einem int8_t (einem Tinyint)
Syntax
duckdb_value duckdb_create_int8(
int8_t input
);
Parameter
input: Der Tinyint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_uint8
Erzeugt einen Wert aus einem uint8_t (einem Utinyint)
Syntax
duckdb_value duckdb_create_uint8(
uint8_t input
);
Parameter
input: Der Utinyint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_int16
Erzeugt einen Wert aus einem int16_t (einem Smallint)
Syntax
duckdb_value duckdb_create_int16(
int16_t input
);
Parameter
input: Der Smallint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_uint16
Erzeugt einen Wert aus einem uint16_t (einem Usmallint)
Syntax
duckdb_value duckdb_create_uint16(
uint16_t input
);
Parameter
input: Der Usmallint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_int32
Erzeugt einen Wert aus einem int32_t (einem Integer)
Syntax
duckdb_value duckdb_create_int32(
int32_t input
);
Parameter
input: Der Integer-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_uint32
Erzeugt einen Wert aus einem uint32_t (einem Uinteger)
Syntax
duckdb_value duckdb_create_uint32(
uint32_t input
);
Parameter
input: Der Uinteger-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_uint64
Erzeugt einen Wert aus einem uint64_t (einem Ubigint)
Syntax
duckdb_value duckdb_create_uint64(
uint64_t input
);
Parameter
input: Der Ubigint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_int64
Erzeugt einen Wert aus einem int64
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_int64(
int64_t val
);
duckdb_create_hugeint
Erzeugt einen Wert aus einem Hugeint
Syntax
duckdb_value duckdb_create_hugeint(
duckdb_hugeint input
);
Parameter
input: Der Hugeint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_uhugeint
Erzeugt einen Wert aus einem Uhugeint
Syntax
duckdb_value duckdb_create_uhugeint(
duckdb_uhugeint input
);
Parameter
input: Der Uhugeint-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_bignum
Erzeugt einen BIGNUM-Wert aus einem duckdb_bignum
Syntax
duckdb_value duckdb_create_bignum(
duckdb_bignum input
);
Parameter
input: Der duckdb_bignum-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_decimal
Erzeugt einen DECIMAL-Wert aus einem duckdb_decimal
Syntax
duckdb_value duckdb_create_decimal(
duckdb_decimal input
);
Parameter
input: Der duckdb_decimal-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_float
Erzeugt einen Wert aus einem Float
Syntax
duckdb_value duckdb_create_float(
float input
);
Parameter
input: Der Float-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_double
Erzeugt einen Wert aus einem Double
Syntax
duckdb_value duckdb_create_double(
double input
);
Parameter
input: Der Double-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_date
Erzeugt einen Wert aus einem Date
Syntax
duckdb_value duckdb_create_date(
duckdb_date input
);
Parameter
input: Der Date-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_time
Erzeugt einen Wert aus einer Time
Syntax
duckdb_value duckdb_create_time(
duckdb_time input
);
Parameter
input: Der Time-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_time_ns
Erzeugt einen Wert aus einer time_ns
Syntax
duckdb_value duckdb_create_time_ns(
duckdb_time_ns input
);
Parameter
input: Der Time-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_time_tz_value
Erzeugt einen Wert aus einer time_tz.
Nicht zu verwechseln mit duckdb_create_time_tz, das ein duckdb_time_tz_t erzeugt.
Syntax
duckdb_value duckdb_create_time_tz_value(
duckdb_time_tz value
);
Parameter
value: Der time_tz-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_timestamp
Erzeugt einen TIMESTAMP-Wert aus einem duckdb_timestamp
Syntax
duckdb_value duckdb_create_timestamp(
duckdb_timestamp input
);
Parameter
input: Der duckdb_timestamp-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_timestamp_tz
Erzeugt einen TIMESTAMP_TZ-Wert aus einem duckdb_timestamp
Syntax
duckdb_value duckdb_create_timestamp_tz(
duckdb_timestamp input
);
Parameter
input: Der duckdb_timestamp-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_timestamp_s
Erzeugt einen TIMESTAMP_S-Wert aus einem duckdb_timestamp_s
Syntax
duckdb_value duckdb_create_timestamp_s(
duckdb_timestamp_s input
);
Parameter
input: Der duckdb_timestamp_s-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_timestamp_ms
Erzeugt einen TIMESTAMP_MS-Wert aus einem duckdb_timestamp_ms
Syntax
duckdb_value duckdb_create_timestamp_ms(
duckdb_timestamp_ms input
);
Parameter
input: Der duckdb_timestamp_ms-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_timestamp_ns
Erzeugt einen TIMESTAMP_NS-Wert aus einem duckdb_timestamp_ns
Syntax
duckdb_value duckdb_create_timestamp_ns(
duckdb_timestamp_ns input
);
Parameter
input: Der duckdb_timestamp_ns-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_interval
Erzeugt einen Wert aus einem Interval
Syntax
duckdb_value duckdb_create_interval(
duckdb_interval input
);
Parameter
input: Der Interval-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_blob
Erzeugt einen Wert aus einem Blob
Syntax
duckdb_value duckdb_create_blob(
const uint8_t *data,
idx_t length
);
Parameter
data: Die Blob-Datenlength: Die Länge der Blob-Daten
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_bit
Erzeugt einen BIT-Wert aus einem duckdb_bit
Syntax
duckdb_value duckdb_create_bit(
duckdb_bit input
);
Parameter
input: Der duckdb_bit-Wert
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_create_uuid
Erzeugt einen UUID-Wert aus einem Uhugeint
Syntax
duckdb_value duckdb_create_uuid(
duckdb_uhugeint input
);
Parameter
input: Das duckdb_uhugeint, das die UUID enthält
Rückgabewert
Der Wert. Dieser muss mit duckdb_destroy_value zerstört werden.
duckdb_get_bool
Gibt den Boolean-Wert des angegebenen Werts zurück.
Syntax
bool duckdb_get_bool(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen Boolean enthält
Rückgabewert
Ein Boolean oder false, wenn der Wert nicht konvertiert werden kann
duckdb_get_int8
Gibt den int8_t-Wert des angegebenen Werts zurück.
Syntax
int8_t duckdb_get_int8(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Tinyint enthält
Rückgabewert
Ein int8_t oder MinValue
duckdb_get_uint8
Gibt den uint8_t-Wert des angegebenen Werts zurück.
Syntax
uint8_t duckdb_get_uint8(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Utinyint enthält
Rückgabewert
Ein uint8_t oder MinValue
duckdb_get_int16
Gibt den int16_t-Wert des angegebenen Werts zurück.
Syntax
int16_t duckdb_get_int16(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Smallint enthält
Rückgabewert
Ein int16_t oder MinValue
duckdb_get_uint16
Gibt den uint16_t-Wert des angegebenen Werts zurück.
Syntax
uint16_t duckdb_get_uint16(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Usmallint enthält
Rückgabewert
Ein uint16_t oder MinValue
duckdb_get_int32
Gibt den int32_t-Wert des angegebenen Werts zurück.
Syntax
int32_t duckdb_get_int32(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Integer enthält
Rückgabewert
Ein int32_t oder MinValue
duckdb_get_uint32
Gibt den uint32_t-Wert des angegebenen Werts zurück.
Syntax
uint32_t duckdb_get_uint32(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Uinteger enthält
Rückgabewert
Ein uint32_t oder MinValue
duckdb_get_int64
Gibt den int64_t-Wert des angegebenen Werts zurück.
Syntax
int64_t duckdb_get_int64(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Bigint enthält
Rückgabewert
Ein int64_t oder MinValue
duckdb_get_uint64
Gibt den uint64_t-Wert des angegebenen Werts zurück.
Syntax
uint64_t duckdb_get_uint64(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Ubigint enthält
Rückgabewert
Ein uint64_t oder MinValue
duckdb_get_hugeint
Gibt den Hugeint-Wert des angegebenen Werts zurück.
Syntax
duckdb_hugeint duckdb_get_hugeint(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Hugeint enthält
Rückgabewert
Ein duckdb_hugeint oder MinValue
duckdb_get_uhugeint
Gibt den Uhugeint-Wert des angegebenen Werts zurück.
Syntax
duckdb_uhugeint duckdb_get_uhugeint(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Uhugeint enthält
Rückgabewert
Ein duckdb_uhugeint oder MinValue
duckdb_get_bignum
Gibt den duckdb_bignum-Wert des angegebenen Werts zurück.
Das Feld data muss mit duckdb_free zerstört werden.
Syntax
duckdb_bignum duckdb_get_bignum(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein BIGNUM enthält
Rückgabewert
Ein duckdb_bignum. Das Feld data muss mit duckdb_free zerstört werden.
duckdb_get_decimal
Gibt den duckdb_decimal-Wert des angegebenen Werts zurück.
Syntax
duckdb_decimal duckdb_get_decimal(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein DECIMAL enthält
Rückgabewert
Ein duckdb_decimal oder MinValue
duckdb_get_float
Gibt den Float-Wert des angegebenen Werts zurück.
Syntax
float duckdb_get_float(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen Float enthält
Rückgabewert
Ein Float oder NAN, wenn der Wert nicht konvertiert werden kann
duckdb_get_double
Gibt den Double-Wert des angegebenen Werts zurück.
Syntax
double duckdb_get_double(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen Double enthält
Rückgabewert
Ein Double oder NAN, wenn der Wert nicht konvertiert werden kann
duckdb_get_date
Gibt den Date-Wert des angegebenen Werts zurück.
Syntax
duckdb_date duckdb_get_date(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Date enthält
Rückgabewert
Ein duckdb_date oder MinValue
duckdb_get_time
Gibt den Time-Wert des angegebenen Werts zurück.
Syntax
duckdb_time duckdb_get_time(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das eine Time enthält
Rückgabewert
Ein duckdb_time oder MinValue
duckdb_get_time_ns
Gibt den time_ns-Wert des angegebenen Werts zurück.
Syntax
duckdb_time_ns duckdb_get_time_ns(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das eine time_ns enthält
Rückgabewert
Ein duckdb_time_ns oder MinValue<time_ns>, wenn der Wert nicht konvertiert werden kann
duckdb_get_time_tz
Gibt den time_tz-Wert des angegebenen Werts zurück.
Syntax
duckdb_time_tz duckdb_get_time_tz(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das eine time_tz enthält
Rückgabewert
Ein duckdb_time_tz oder MinValue<time_tz>, wenn der Wert nicht konvertiert werden kann
duckdb_get_timestamp
Gibt den TIMESTAMP-Wert des angegebenen Werts zurück.
Syntax
duckdb_timestamp duckdb_get_timestamp(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen TIMESTAMP enthält
Rückgabewert
Ein duckdb_timestamp oder MinValue
duckdb_get_timestamp_tz
Gibt den TIMESTAMP_TZ-Wert des angegebenen Werts zurück.
Syntax
duckdb_timestamp duckdb_get_timestamp_tz(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen TIMESTAMP_TZ enthält
Rückgabewert
Ein duckdb_timestamp oder MinValue<timestamp_tz>, wenn der Wert nicht konvertiert werden kann
duckdb_get_timestamp_s
Gibt den duckdb_timestamp_s-Wert des angegebenen Werts zurück.
Syntax
duckdb_timestamp_s duckdb_get_timestamp_s(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen TIMESTAMP_S enthält
Rückgabewert
Ein duckdb_timestamp_s oder MinValue<timestamp_s>, wenn der Wert nicht konvertiert werden kann
duckdb_get_timestamp_ms
Gibt den duckdb_timestamp_ms-Wert des angegebenen Werts zurück.
Syntax
duckdb_timestamp_ms duckdb_get_timestamp_ms(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen TIMESTAMP_MS enthält
Rückgabewert
Ein duckdb_timestamp_ms oder MinValue<timestamp_ms>, wenn der Wert nicht konvertiert werden kann
duckdb_get_timestamp_ns
Gibt den duckdb_timestamp_ns-Wert des angegebenen Werts zurück.
Syntax
duckdb_timestamp_ns duckdb_get_timestamp_ns(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das einen TIMESTAMP_NS enthält
Rückgabewert
Ein duckdb_timestamp_ns oder MinValue<timestamp_ns>, wenn der Wert nicht konvertiert werden kann
duckdb_get_interval
Gibt den Interval-Wert des angegebenen Werts zurück.
Syntax
duckdb_interval duckdb_get_interval(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Interval enthält
Rückgabewert
Ein duckdb_interval oder MinValue
duckdb_get_value_type
Gibt den Typ des angegebenen Werts zurück. Der Typ ist gültig, solange der Wert nicht zerstört wird. Der Typ selbst darf nicht zerstört werden.
Syntax
duckdb_logical_type duckdb_get_value_type(
duckdb_value val
);
Parameter
val: Ein duckdb_value
Rückgabewert
Ein duckdb_logical_type.
duckdb_get_blob
Gibt den Blob-Wert des angegebenen Werts zurück.
Syntax
duckdb_blob duckdb_get_blob(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein Blob enthält
Rückgabewert
Ein duckdb_blob
duckdb_get_bit
Gibt den duckdb_bit-Wert des angegebenen Werts zurück.
Das Feld data muss mit duckdb_free zerstört werden.
Syntax
duckdb_bit duckdb_get_bit(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das ein BIT enthält
Rückgabewert
Ein duckdb_bit
duckdb_get_uuid
Gibt einen duckdb_uhugeint zurück, der den UUID-Wert des angegebenen Werts darstellt.
Syntax
duckdb_uhugeint duckdb_get_uuid(
duckdb_value val
);
Parameter
val: Ein duckdb_value, das eine UUID enthält
Rückgabewert
Ein duckdb_uhugeint, der den UUID-Wert darstellt
duckdb_get_varchar
Ermittelt eine Stringdarstellung des angegebenen Werts.
Das Ergebnis muss mit duckdb_free zerstört werden.
Syntax
char *duckdb_get_varchar(
duckdb_value value
);
Parameter
value: Der Wert
Rückgabewert
Der Stringwert. Dieser muss mit duckdb_free zerstört werden.
duckdb_create_struct_value
Erzeugt einen Struct-Wert aus einem Typ und einem Array von Werten. Muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_struct_value(
duckdb_logical_type type,
duckdb_value *values
);
Parameter
type: Der Typ des Structsvalues: Die Werte für die Struct-Felder
Rückgabewert
Der Struct-Wert oder nullptr, wenn ein Kindtyp DUCKDB_TYPE_ANY oder DUCKDB_TYPE_INVALID ist.
duckdb_create_list_value
Erzeugt einen Listenwert aus einem Kind- (Element-) Typ und einem Array von Werten der Länge value_count.
Muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_list_value(
duckdb_logical_type type,
duckdb_value *values,
idx_t value_count
);
Parameter
type: Der Typ der Listevalues: Die Werte für die Listevalue_count: Die Anzahl der Werte in der Liste
Rückgabewert
Der Listenwert oder nullptr, wenn der Kindtyp DUCKDB_TYPE_ANY oder DUCKDB_TYPE_INVALID ist.
duckdb_create_array_value
Erzeugt einen Array-Wert aus einem Kind- (Element-) Typ und einem Array von Werten der Länge value_count.
Muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_array_value(
duckdb_logical_type type,
duckdb_value *values,
idx_t value_count
);
Parameter
type: Der Typ des Arraysvalues: Die Werte für das Arrayvalue_count: Die Anzahl der Werte im Array
Rückgabewert
Der Array-Wert oder nullptr, wenn der Kindtyp DUCKDB_TYPE_ANY oder DUCKDB_TYPE_INVALID ist.
duckdb_create_map_value
Erzeugt einen Map-Wert aus einem Map-Typ und zwei Arrays, eines für die Schlüssel und eines für die Werte, jeweils der Länge
entry_count. Muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_map_value(
duckdb_logical_type map_type,
duckdb_value *keys,
duckdb_value *values,
idx_t entry_count
);
Parameter
map_type: Der Map-Typkeys: Die Keys der Mapvalues: Die Values der Mapentry_count: Die Anzahl der Einträge (Key-Value-Paare) in der Map
Rückgabewert
Der Map-Wert oder nullptr, wenn die Parameter ungültig sind.
duckdb_create_union_value
Erzeugt einen Union-Wert aus einem Union-Typ, einem Tag-Index und einem Wert.
Muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_union_value(
duckdb_logical_type union_type,
idx_t tag_index,
duckdb_value value
);
Parameter
union_type: Der Union-Typtag_index: Der Index des Tags der Unionvalue: Der Wert der Union für dieses Tag
Rückgabewert
Der Union-Wert oder nullptr, wenn die Parameter ungültig sind.
duckdb_get_map_size
Gibt die Anzahl der Elemente in einem MAP-Wert zurück.
Syntax
idx_t duckdb_get_map_size(
duckdb_value value
);
Parameter
value: Der MAP-Wert.
Rückgabewert
Die Anzahl der Elemente in der Map.
duckdb_get_map_key
Gibt den MAP-Schlüssel am Index als duckdb_value zurück.
Syntax
duckdb_value duckdb_get_map_key(
duckdb_value value,
idx_t index
);
Parameter
value: Der MAP-Wert.index: Der Index des Keys.
Rückgabewert
Der Schlüssel als duckdb_value.
duckdb_get_map_value
Gibt den MAP-Wert am Index als duckdb_value zurück.
Syntax
duckdb_value duckdb_get_map_value(
duckdb_value value,
idx_t index
);
Parameter
value: Der MAP-Wert.index: Der Index des Values.
Rückgabewert
Der Wert als duckdb_value.
duckdb_is_null_value
Gibt zurück, ob der Typ des Werts SQLNULL ist.
Syntax
bool duckdb_is_null_value(
duckdb_value value
);
Parameter
value: Der zu prüfende Wert.
Rückgabewert
True, wenn der Typ des Werts SQLNULL ist, sonst false.
duckdb_create_null_value
Erzeugt einen Wert vom Typ SQLNULL.
Rückgabewert
Der duckdb_value, der SQLNULL darstellt. Dieser muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_null_value(
);
duckdb_get_list_size
Gibt die Anzahl der Elemente in einem LIST-Wert zurück.
Syntax
idx_t duckdb_get_list_size(
duckdb_value value
);
Parameter
value: Der LIST-Wert.
Rückgabewert
Die Anzahl der Elemente in der Liste.
duckdb_get_list_child
Gibt das LIST-Kind am Index als duckdb_value zurück.
Syntax
duckdb_value duckdb_get_list_child(
duckdb_value value,
idx_t index
);
Parameter
value: Der LIST-Wert.index: Der Index des Childs.
Rückgabewert
Das Kind als duckdb_value.
duckdb_create_enum_value
Erzeugt einen Enum-Wert aus einem Typ und einem Wert. Muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_create_enum_value(
duckdb_logical_type type,
uint64_t value
);
Parameter
type: Der Typ des Enumsvalue: Der Wert für das Enum
Rückgabewert
Der Enum-Wert oder nullptr.
duckdb_get_enum_value
Gibt den Enum-Wert des angegebenen Werts zurück.
Syntax
uint64_t duckdb_get_enum_value(
duckdb_value value
);
Parameter
value: Ein duckdb_value, das ein Enum enthält
Rückgabewert
Ein uint64_t oder MinValue
duckdb_get_struct_child
Gibt das STRUCT-Kind am Index als duckdb_value zurück.
Syntax
duckdb_value duckdb_get_struct_child(
duckdb_value value,
idx_t index
);
Parameter
value: Der STRUCT-Wert.index: Der Index des Childs.
Rückgabewert
Das Kind als duckdb_value.
duckdb_value_to_string
Gibt die SQL-Stringdarstellung des angegebenen Werts zurück.
Syntax
char *duckdb_value_to_string(
duckdb_value value
);
Parameter
value: Ein duckdb_value.
Rückgabewert
Die SQL-Stringdarstellung als nullterminierter String. Das Ergebnis muss mit duckdb_free freigegeben werden.
duckdb_create_logical_type
Erzeugt einen duckdb_logical_type aus einem primitiven Typ.
Der resultierende logische Typ muss mit duckdb_destroy_logical_type zerstört werden.
Gibt einen ungültigen logischen Typ zurück, wenn type einer der folgenden ist: DUCKDB_TYPE_INVALID, DUCKDB_TYPE_DECIMAL, DUCKDB_TYPE_ENUM,
DUCKDB_TYPE_LIST, DUCKDB_TYPE_STRUCT, DUCKDB_TYPE_MAP, DUCKDB_TYPE_ARRAY oder DUCKDB_TYPE_UNION.
Syntax
duckdb_logical_type duckdb_create_logical_type(
duckdb_type type
);
Parameter
type: Der zu erzeugende primitive Typ.
Rückgabewert
Der logische Typ.
duckdb_logical_type_get_alias
Gibt den Alias eines duckdb_logical_type zurück, falls gesetzt, sonst nullptr.
Das Ergebnis muss mit duckdb_free zerstört werden.
Syntax
char *duckdb_logical_type_get_alias(
duckdb_logical_type type
);
Parameter
type: Der logische Typ
Rückgabewert
Der Alias oder nullptr
duckdb_logical_type_set_alias
Setzt den Alias eines duckdb_logical_type.
Syntax
void duckdb_logical_type_set_alias(
duckdb_logical_type type,
const char *alias
);
Parameter
type: Der logische Typalias: Der zu setzende Alias
duckdb_create_list_type
Erzeugt einen LIST-Typ aus seinem Kindtyp.
Der Rückgabetyp muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_list_type(
duckdb_logical_type type
);
Parameter
type: Der Child-Typ der Liste
Rückgabewert
Der logische Typ.
duckdb_create_array_type
Erzeugt einen ARRAY-Typ aus seinem Kindtyp.
Der Rückgabetyp muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_array_type(
duckdb_logical_type type,
idx_t array_size
);
Parameter
type: Der Child-Typ des Arrays.array_size: Die Anzahl der Elemente im Array.
Rückgabewert
Der logische Typ.
duckdb_create_map_type
Erzeugt einen MAP-Typ aus seinem Schlüsseltyp und Wertetyp.
Der Rückgabetyp muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_map_type(
duckdb_logical_type key_type,
duckdb_logical_type value_type
);
Parameter
key_type: Der Key-Typ der Map.value_type: Der Value-Typ der Map.
Rückgabewert
Der logische Typ.
duckdb_create_union_type
Erzeugt einen UNION-Typ aus den übergebenen Arrays.
Der Rückgabetyp muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_union_type(
duckdb_logical_type *member_types,
const char **member_names,
idx_t member_count
);
Parameter
member_types: Das Array der Union-Member-Typen.member_names: Die Union-Member-Namen.member_count: Die Anzahl der Union-Member.
Rückgabewert
Der logische Typ.
duckdb_create_struct_type
Erzeugt einen STRUCT-Typ aus den Mitgliedstypen und -namen.
Der resultierende Typ muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_struct_type(
duckdb_logical_type *member_types,
const char **member_names,
idx_t member_count
);
Parameter
member_types: Das Array der Typen der Struct-Member.member_names: Das Array der Namen der Struct-Member.member_count: Die Anzahl der Member des Structs.
Rückgabewert
Der logische Typ.
duckdb_create_enum_type
Erzeugt einen ENUM-Typ aus dem übergebenen Mitgliedsnamen-Array.
Der resultierende Typ sollte mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_enum_type(
const char **member_names,
idx_t member_count
);
Parameter
member_names: Das Array der Namen, aus denen das Enum bestehen soll.member_count: Die Anzahl der Elemente, die im Array angegeben wurden.
Rückgabewert
Der logische Typ.
duckdb_create_decimal_type
Erzeugt einen DECIMAL-Typ mit der angegebenen Breite und Nachkommastellen.
Der resultierende Typ sollte mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_create_decimal_type(
uint8_t width,
uint8_t scale
);
Parameter
width: Die Breite des Decimal-Typsscale: Die Nachkommastellen des Decimal-Typs
Rückgabewert
Der logische Typ.
duckdb_get_type_id
Ruft den Enum-duckdb_type eines duckdb_logical_type ab.
Syntax
duckdb_type duckdb_get_type_id(
duckdb_logical_type type
);
Parameter
type: Der logische Typ.
Rückgabewert
Die duckdb_type-ID.
duckdb_decimal_width
Ruft die Breite eines Decimal-Typs ab.
Syntax
uint8_t duckdb_decimal_width(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Die Breite des Decimal-Typs
duckdb_decimal_scale
Ruft die Nachkommastellen eines Decimal-Typs ab.
Syntax
uint8_t duckdb_decimal_scale(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Die Nachkommastellen des Decimal-Typs
duckdb_decimal_internal_type
Ruft den internen Speichertyp eines Decimal-Typs ab.
Syntax
duckdb_type duckdb_decimal_internal_type(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Der interne Typ des Decimal-Typs
duckdb_enum_internal_type
Ruft den internen Speichertyp eines Enum-Typs ab.
Syntax
duckdb_type duckdb_enum_internal_type(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Der interne Typ des Enum-Typs
duckdb_enum_dictionary_size
Ruft die Dictionary-Größe des Enum-Typs ab.
Syntax
uint32_t duckdb_enum_dictionary_size(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Die Dictionary-Größe des Enum-Typs
duckdb_enum_dictionary_value
Ruft den Dictionary-Wert an der angegebenen Position aus dem Enum ab.
Das Ergebnis muss mit duckdb_free freigegeben werden.
Syntax
char *duckdb_enum_dictionary_value(
duckdb_logical_type type,
idx_t index
);
Parameter
type: Das logische Typobjektindex: Der Index im Dictionary
Rückgabewert
Der Stringwert des Enum-Typs. Muss mit duckdb_free freigegeben werden.
duckdb_list_type_child_type
Ruft den Kindtyp des angegebenen LIST-Typs ab. Akzeptiert auch MAP-Typen.
Das Ergebnis muss mit duckdb_destroy_logical_type freigegeben werden.
Syntax
duckdb_logical_type duckdb_list_type_child_type(
duckdb_logical_type type
);
Parameter
type: Der logische Typ, entweder LIST oder MAP.
Rückgabewert
Der Kindtyp des LIST- oder MAP-Typs.
duckdb_array_type_child_type
Ruft den Kindtyp des angegebenen ARRAY-Typs ab.
Das Ergebnis muss mit duckdb_destroy_logical_type freigegeben werden.
Syntax
duckdb_logical_type duckdb_array_type_child_type(
duckdb_logical_type type
);
Parameter
type: Der logische Typ. Must be ARRAY.
Rückgabewert
Der Kindtyp des ARRAY-Typs.
duckdb_array_type_array_size
Ruft die Array-Größe des angegebenen Array-Typs ab.
Syntax
idx_t duckdb_array_type_array_size(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Die feste Anzahl der Elemente, die Werte dieses Array-Typs speichern können.
duckdb_map_type_key_type
Ruft den Schlüsseltyp des angegebenen Map-Typs ab.
Das Ergebnis muss mit duckdb_destroy_logical_type freigegeben werden.
Syntax
duckdb_logical_type duckdb_map_type_key_type(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Der Schlüsseltyp des Map-Typs. Muss mit duckdb_destroy_logical_type zerstört werden.
duckdb_map_type_value_type
Ruft den Wertetyp des angegebenen Map-Typs ab.
Das Ergebnis muss mit duckdb_destroy_logical_type freigegeben werden.
Syntax
duckdb_logical_type duckdb_map_type_value_type(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Der Wertetyp des Map-Typs. Muss mit duckdb_destroy_logical_type zerstört werden.
duckdb_struct_type_child_count
Gibt die Anzahl der Kinder eines Struct-Typs zurück.
Syntax
idx_t duckdb_struct_type_child_count(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt
Rückgabewert
Die Anzahl der Kinder eines Struct-Typs.
duckdb_struct_type_child_name
Ruft den Namen des Struct-Kinds ab.
Das Ergebnis muss mit duckdb_free freigegeben werden.
Syntax
char *duckdb_struct_type_child_name(
duckdb_logical_type type,
idx_t index
);
Parameter
type: Das logische Typobjektindex: Der Child-Index
Rückgabewert
Der Name des Struct-Typs. Muss mit duckdb_free freigegeben werden.
duckdb_struct_type_child_type
Ruft den Kindtyp des angegebenen Struct-Typs am angegebenen Index ab.
Das Ergebnis muss mit duckdb_destroy_logical_type freigegeben werden.
Syntax
duckdb_logical_type duckdb_struct_type_child_type(
duckdb_logical_type type,
idx_t index
);
Parameter
type: Das logische Typobjektindex: Der Child-Index
Rückgabewert
Der Kindtyp des Struct-Typs. Muss mit duckdb_destroy_logical_type zerstört werden.
duckdb_union_type_member_count
Gibt die Anzahl der Mitglieder des Union-Typs zurück.
Syntax
idx_t duckdb_union_type_member_count(
duckdb_logical_type type
);
Parameter
type: Das logische Typobjekt (Union)
Rückgabewert
Die Anzahl der Mitglieder eines Union-Typs.
duckdb_union_type_member_name
Ruft den Namen des Union-Mitglieds ab.
Das Ergebnis muss mit duckdb_free freigegeben werden.
Syntax
char *duckdb_union_type_member_name(
duckdb_logical_type type,
idx_t index
);
Parameter
type: Das logische Typobjektindex: Der Child-Index
Rückgabewert
Der Name des Union-Mitglieds. Muss mit duckdb_free freigegeben werden.
duckdb_union_type_member_type
Ruft den Kindtyp des angegebenen Union-Mitglieds am angegebenen Index ab.
Das Ergebnis muss mit duckdb_destroy_logical_type freigegeben werden.
Syntax
duckdb_logical_type duckdb_union_type_member_type(
duckdb_logical_type type,
idx_t index
);
Parameter
type: Das logische Typobjektindex: Der Child-Index
Rückgabewert
Der Kindtyp des Union-Mitglieds. Muss mit duckdb_destroy_logical_type zerstört werden.
duckdb_destroy_logical_type
Zerstört den logischen Typ und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_logical_type(
duckdb_logical_type *type
);
Parameter
type: Der zu zerstörende logische Typ.
duckdb_register_logical_type
Registriert einen benutzerdefinierten Typ in der angegebenen Verbindung. Der Typ muss einen Alias haben
Syntax
duckdb_state duckdb_register_logical_type(
duckdb_connection con,
duckdb_logical_type type,
duckdb_create_type_info info
);
Parameter
con: Die zu verwendende Verbindungtype: Der zu registrierende benutzerdefinierte Typ
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_create_data_chunk
Erzeugt einen leeren Data-Chunk mit den angegebenen Spaltentypen.
Das Ergebnis muss mit duckdb_destroy_data_chunk zerstört werden.
Syntax
duckdb_data_chunk duckdb_create_data_chunk(
duckdb_logical_type *types,
idx_t column_count
);
Parameter
types: Ein Array von Spaltentypen. Column types can not contain ANY and INVALID types.column_count: Die Anzahl der Spalten.
Rückgabewert
Der Data-Chunk.
duckdb_destroy_data_chunk
Zerstört den Data-Chunk und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_data_chunk(
duckdb_data_chunk *chunk
);
Parameter
chunk: Der zu zerstörende Data Chunk.
duckdb_data_chunk_reset
Setzt einen Data-Chunk zurück, löscht die Validity-Masken und setzt die Kardinalität des Data-Chunks auf 0.
Nach dem Aufruf dieser Methode müssen Sie duckdb_vector_get_validity und duckdb_vector_get_data aufrufen, um die aktuellen
Daten- und Validity-Zeiger zu erhalten
Syntax
void duckdb_data_chunk_reset(
duckdb_data_chunk chunk
);
Parameter
chunk: Der zurückzusetzende Data Chunk.
duckdb_data_chunk_get_column_count
Ruft die Anzahl der Spalten in einem Data-Chunk ab.
Syntax
idx_t duckdb_data_chunk_get_column_count(
duckdb_data_chunk chunk
);
Parameter
chunk: Der Data Chunk, aus dem die Daten gelesen werden
Rückgabewert
Die Anzahl der Spalten im Data-Chunk
duckdb_data_chunk_get_vector
Ruft den Vektor am angegebenen Spaltenindex im Data-Chunk ab.
Der Zeiger auf den Vektor ist gültig, solange der Chunk existiert. Er muss NICHT zerstört werden.
Syntax
duckdb_vector duckdb_data_chunk_get_vector(
duckdb_data_chunk chunk,
idx_t col_idx
);
Parameter
chunk: Der Data Chunk, aus dem die Daten gelesen werden
Rückgabewert
Der Vektor
duckdb_data_chunk_get_size
Ruft die aktuelle Anzahl der Tupel in einem Data-Chunk ab.
Syntax
idx_t duckdb_data_chunk_get_size(
duckdb_data_chunk chunk
);
Parameter
chunk: Der Data Chunk, aus dem die Daten gelesen werden
Rückgabewert
Die Anzahl der Tupel im Data-Chunk
duckdb_data_chunk_set_size
Setzt die aktuelle Anzahl der Tupel in einem Data-Chunk.
Syntax
void duckdb_data_chunk_set_size(
duckdb_data_chunk chunk,
idx_t size
);
Parameter
chunk: Der Data Chunk, in dem die Größe gesetzt wirdsize: Die Anzahl der Tupel im Data-Chunk
duckdb_create_vector
Erzeugt einen flachen Vektor. Muss mit duckdb_destroy_vector zerstört werden.
Syntax
duckdb_vector duckdb_create_vector(
duckdb_logical_type type,
idx_t capacity
);
Parameter
type: Der logische Typ des Vektors.capacity: Die Kapazität des Vektors.
Rückgabewert
Der Vektor.
duckdb_destroy_vector
Zerstört den Vektor und gibt seinen Speicher frei.
Syntax
void duckdb_destroy_vector(
duckdb_vector *vector
);
Parameter
vector: Ein Zeiger auf den Vektor.
duckdb_vector_get_column_type
Ruft den Spaltentyp des angegebenen Vektors ab.
Das Ergebnis muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_vector_get_column_type(
duckdb_vector vector
);
Parameter
vector: Der Vektor get the data from
Rückgabewert
Der Typ des Vektors
duckdb_vector_get_data
Ruft den Datenzeiger des Vektors ab.
Der Datenzeiger kann verwendet werden, um Werte aus dem Vektor zu lesen oder in ihn zu schreiben. Wie Werte gelesen oder geschrieben werden, hängt vom Typ des Vektors ab.
Syntax
void *duckdb_vector_get_data(
duckdb_vector vector
);
Parameter
vector: Der Vektor to get the data from
Rückgabewert
Der Datenzeiger
duckdb_vector_get_validity
Ruft den Validity-Mask-Zeiger des angegebenen Vektors ab.
Wenn alle Werte gültig sind, KANN diese Funktion NULL zurückgeben!
Die Validity-Maske ist ein Bitset, das die NULL-Eigenschaft innerhalb des Data-Chunks kennzeichnet. Sie besteht aus einer Folge von uint64_t-Werten, wobei jeder uint64_t-Wert die Gültigkeit von 64 Tupeln enthält. Das Bit ist 1, wenn der Wert gültig ist (d. h. nicht NULL), oder 0, wenn der Wert ungültig ist (d. h. NULL).
Die Gültigkeit eines bestimmten Werts kann so ermittelt werden:
idx_t entry_idx = row_idx / 64; idx_t idx_in_entry = row_idx % 64; bool is_valid = validity_mask[entry_idx] & (1 << idx_in_entry);
Alternativ kann die (langsamere) Funktion duckdb_validity_row_is_valid verwendet werden.
Syntax
uint64_t *duckdb_vector_get_validity(
duckdb_vector vector
);
Parameter
vector: Der Vektor to get the data from
Rückgabewert
Der Zeiger auf die Validity-Maske oder NULL, wenn keine Validity-Maske vorhanden ist
duckdb_vector_ensure_validity_writable
Stellt sicher, dass die Validity-Maske beschreibbar ist, indem sie allokiert wird.
Nach dem Aufruf dieser Funktion gibt duckdb_vector_get_validity IMMER einen Wert ungleich NULL zurück.
So können NULL-Werte in den Vektor geschrieben werden, unabhängig davon, ob zuvor eine Validity-Maske vorhanden war.
Syntax
void duckdb_vector_ensure_validity_writable(
duckdb_vector vector
);
Parameter
vector: Der Vektor to alter
duckdb_vector_assign_string_element
Weist dem Vektor am angegebenen Index ein Stringelement zu.
Syntax
void duckdb_vector_assign_string_element(
duckdb_vector vector,
idx_t index,
const char *str
);
Parameter
vector: Der Vektor to alterindex: Die Zeilenposition im Vektor, der die Zeichenkette zugewiesen wirdstr: Die null-terminierte Zeichenkette
duckdb_vector_assign_string_element_len
Weist dem Vektor am angegebenen Index ein Stringelement zu. Sie können diese Funktion auch zum Zuweisen von BLOBs verwenden.
Syntax
void duckdb_vector_assign_string_element_len(
duckdb_vector vector,
idx_t index,
const char *str,
idx_t str_len
);
Parameter
vector: Der Vektor to alterindex: Die Zeilenposition im Vektor, der die Zeichenkette zugewiesen wirdstr: Die Zeichenkettestr_len: Die Länge der Zeichenkette (in Bytes)
duckdb_list_vector_get_child
Ruft den Kindvektor eines Listenvektors ab.
Der resultierende Vektor ist gültig, solange der Elternvektor gültig ist.
Syntax
duckdb_vector duckdb_list_vector_get_child(
duckdb_vector vector
);
Parameter
vector: Der Vektor
Rückgabewert
Der Kindvektor
duckdb_list_vector_get_size
Gibt die Größe des Kindvektors der Liste zurück.
Syntax
idx_t duckdb_list_vector_get_size(
duckdb_vector vector
);
Parameter
vector: Der Vektor
Rückgabewert
Die Größe der Kindliste
duckdb_list_vector_set_size
Setzt die Gesamtgröße des zugrunde liegenden Kindvektors eines Listenvektors.
Syntax
duckdb_state duckdb_list_vector_set_size(
duckdb_vector vector,
idx_t size
);
Parameter
vector: Der Listenvektor.size: Die Größe der Kindliste.
Rückgabewert
Der DuckDB-Status. Gibt DuckDBError zurück, wenn der Vektor nullptr ist.
duckdb_list_vector_reserve
Setzt die Gesamtkapazität des zugrunde liegenden Kindvektors einer Liste.
Nach dem Aufruf dieser Methode müssen Sie duckdb_vector_get_validity und duckdb_vector_get_data aufrufen, um die aktuellen
Daten- und Validity-Zeiger zu erhalten
Syntax
duckdb_state duckdb_list_vector_reserve(
duckdb_vector vector,
idx_t required_capacity
);
Parameter
vector: Der Listenvektor.required_capacity: the total capacity to reserve.
Rückgabewert
Der DuckDB-Status. Gibt DuckDBError zurück, wenn der Vektor nullptr ist.
duckdb_struct_vector_get_child
Ruft den Kindvektor eines Struct-Vektors ab. Der resultierende Vektor ist gültig, solange der Elternvektor gültig ist.
Syntax
duckdb_vector duckdb_struct_vector_get_child(
duckdb_vector vector,
idx_t index
);
Parameter
vector: Der Vektorindex: Der Child-Index
Rückgabewert
Der Kindvektor
duckdb_array_vector_get_child
Ruft den Kindvektor eines Array-Vektors ab. Der resultierende Vektor ist gültig, solange der Elternvektor gültig ist. Der resultierende Vektor hat die Größe des Elternvektors multipliziert mit der Array-Größe.
Syntax
duckdb_vector duckdb_array_vector_get_child(
duckdb_vector vector
);
Parameter
vector: Der Vektor
Rückgabewert
Der Kindvektor
duckdb_slice_vector
Schneidet einen Vektor mit einem Selection-Vektor zu. Die Länge des Selection-Vektors muss kleiner oder gleich der Länge des Vektors sein. Macht den Vektor zu einem Dictionary-Vektor.
Syntax
void duckdb_slice_vector(
duckdb_vector vector,
duckdb_selection_vector sel,
idx_t len
);
Parameter
vector: Der Vektor to slice.sel: Der Selection-Vektor.len: Die Länge des Selektionsvektors.
duckdb_vector_copy_sel
Kopiert den src-Vektor nach dst mit einem Selection-Vektor, der die zu kopierenden Indizes angibt.
Syntax
void duckdb_vector_copy_sel(
duckdb_vector src,
duckdb_vector dst,
duckdb_selection_vector sel,
idx_t src_count,
idx_t src_offset,
idx_t dst_offset
);
Parameter
src: Der Vektor to copy from.dst: Der Vektor to copy to.sel: Der Selection-Vektor. The length of the selection vector should not be more than the length of the src vectorsrc_count: Die Anzahl der aus dem Selektionsvektor zu kopierenden Einträge. Think of this as the effective length of the selection vector starting from index 0src_offset: Der Offset im Selektionsvektor, ab dem kopiert wird (wichtig: tatsächliche Anzahl kopierter Elemente = src_count - src_offset).dst_offset: Der Offset im Zielvektor, ab dem kopiert wird.
duckdb_vector_reference_value
Kopiert den Wert von value nach vector.
Syntax
void duckdb_vector_reference_value(
duckdb_vector vector,
duckdb_value value
);
Parameter
vector: Der empfangende Vektor.value: Der in den Vektor zu kopierende Wert.
duckdb_vector_reference_vector
Ändert to_vector so, dass er from_vector referenziert. Anschließend teilen sich die Vektoren das Eigentum an den Daten.
Syntax
void duckdb_vector_reference_vector(
duckdb_vector to_vector,
duckdb_vector from_vector
);
Parameter
to_vector: Der empfangende Vektor.from_vector: Der Vektor to reference.
duckdb_validity_row_is_valid
Gibt zurück, ob eine Zeile in der angegebenen Validity-Maske gültig (d. h. nicht NULL) ist.
Syntax
bool duckdb_validity_row_is_valid(
uint64_t *validity,
idx_t row
);
Parameter
validity: Die Gültigkeitsmaske, wie überduckdb_vector_get_validityermitteltrow: Der Zeilenindex
Rückgabewert
true, wenn die Zeile gültig ist, sonst false
duckdb_validity_set_row_validity
Setzt in einer Validity-Maske eine bestimmte Zeile auf gültig oder ungültig.
Beachten Sie, dass duckdb_vector_ensure_validity_writable vor duckdb_vector_get_validity aufgerufen werden sollte,
um sicherzustellen, dass eine Validity-Maske zum Schreiben vorhanden ist.
Syntax
void duckdb_validity_set_row_validity(
uint64_t *validity,
idx_t row,
bool valid
);
Parameter
validity: Die Gültigkeitsmaske, wie überduckdb_vector_get_validityermittelt.row: Der Zeilenindexvalid: Ob die Zeile auf gültig oder ungültig gesetzt werden soll
duckdb_validity_set_row_invalid
Setzt in einer Validity-Maske eine bestimmte Zeile auf ungültig.
Entspricht duckdb_validity_set_row_validity mit valid auf false gesetzt.
Syntax
void duckdb_validity_set_row_invalid(
uint64_t *validity,
idx_t row
);
Parameter
validity: Die Gültigkeitsmaskerow: Der Zeilenindex
duckdb_validity_set_row_valid
Setzt in einer Validity-Maske eine bestimmte Zeile auf gültig.
Entspricht duckdb_validity_set_row_validity mit valid auf true gesetzt.
Syntax
void duckdb_validity_set_row_valid(
uint64_t *validity,
idx_t row
);
Parameter
validity: Die Gültigkeitsmaskerow: Der Zeilenindex
duckdb_create_scalar_function
Erzeugt eine neue leere Skalarfunktion.
Der Rückgabewert muss mit duckdb_destroy_scalar_function zerstört werden.
Rückgabewert
Das Skalarfunktionsobjekt.
Syntax
duckdb_scalar_function duckdb_create_scalar_function(
);
duckdb_destroy_scalar_function
Zerstört das angegebene Skalarfunktionsobjekt.
Syntax
void duckdb_destroy_scalar_function(
duckdb_scalar_function *scalar_function
);
Parameter
scalar_function: Die zu zerstörende Skalarfunktion
duckdb_scalar_function_set_name
Setzt den Namen der angegebenen Skalarfunktion.
Syntax
void duckdb_scalar_function_set_name(
duckdb_scalar_function scalar_function,
const char *name
);
Parameter
scalar_function: Die Skalarfunktionname: Der Name der Skalarfunktion
duckdb_scalar_function_set_varargs
Setzt die Parameter der angegebenen Skalarfunktion auf Varargs. Es ist nicht erforderlich, Parameter mit duckdb_scalar_function_add_parameter hinzuzufügen.
Syntax
void duckdb_scalar_function_set_varargs(
duckdb_scalar_function scalar_function,
duckdb_logical_type type
);
Parameter
scalar_function: Die Skalarfunktion.type: Der Typ der Argumente.
Rückgabewert
Der Parametertyp. Darf nicht INVALID enthalten.
duckdb_scalar_function_set_special_handling
Setzt das NULL-Verhalten der Skalarfunktion auf special.
Syntax
void duckdb_scalar_function_set_special_handling(
duckdb_scalar_function scalar_function
);
Parameter
scalar_function: Die Skalarfunktion.
duckdb_scalar_function_set_volatile
Setzt die Funktionsstabilität der Skalarfunktion auf VOLATILE, d. h. die Funktion sollte für jede Zeile erneut ausgeführt werden. Dies schränkt die mögliche Optimierung der Funktion ein.
Syntax
void duckdb_scalar_function_set_volatile(
duckdb_scalar_function scalar_function
);
Parameter
scalar_function: Die Skalarfunktion.
duckdb_scalar_function_add_parameter
Fügt der Skalarfunktion einen Parameter hinzu.
Syntax
void duckdb_scalar_function_add_parameter(
duckdb_scalar_function scalar_function,
duckdb_logical_type type
);
Parameter
scalar_function: Die Skalarfunktion.type: Der Parametertyp. Darf nicht INVALID enthalten.
duckdb_scalar_function_set_return_type
Setzt den Rückgabetyp der Skalarfunktion.
Syntax
void duckdb_scalar_function_set_return_type(
duckdb_scalar_function scalar_function,
duckdb_logical_type type
);
Parameter
scalar_function: Die Skalarfunktiontype: Darf kein INVALID oder ANY enthalten.
duckdb_scalar_function_set_extra_info
Weist der Skalarfunktion Extra-Informationen zu, die z. B. während des Bindens abgerufen werden können.
Syntax
void duckdb_scalar_function_set_extra_info(
duckdb_scalar_function scalar_function,
void *extra_info,
duckdb_delete_callback_t destroy
);
Parameter
scalar_function: Die Skalarfunktionextra_info: Die Extra-Informationenrmationdestroy: Der Callback, der aufgerufen wird, um die Extra-Informationen zu zerstören (falls vorhanden)
duckdb_scalar_function_set_bind
Setzt die (optionale) Bind-Funktion der Skalarfunktion.
Syntax
void duckdb_scalar_function_set_bind(
duckdb_scalar_function scalar_function,
duckdb_scalar_function_bind_t bind
);
Parameter
scalar_function: Die Skalarfunktion.bind: Die Bind-Funktion.
duckdb_scalar_function_set_bind_data
Setzt die benutzerdefinierten Bind-Daten im Bind-Objekt der Skalarfunktion. Das Bind-Datenobjekt kann während der Ausführung wieder abgerufen werden. In den meisten Fällen müssen Sie auch den Copy-Callback Ihrer Bind-Daten über duckdb_scalar_function_set_bind_data_copy setzen.
Syntax
void duckdb_scalar_function_set_bind_data(
duckdb_bind_info info,
void *bind_data,
duckdb_delete_callback_t destroy
);
Parameter
info: Die Bind-Infos der Skalarfunktion.bind_data: Das Bind-Datenobjekt.destroy: Der Callback zum Zerstören der Bind-Daten (falls vorhanden).
duckdb_scalar_function_set_bind_data_copy
Setzt den Copy-Callback für die benutzerdefinierten Bind-Daten im Bind-Objekt der Skalarfunktion.
Syntax
void duckdb_scalar_function_set_bind_data_copy(
duckdb_bind_info info,
duckdb_copy_callback_t copy
);
Parameter
info: Die Bind-Infos der Skalarfunktion.copy: Der Callback zum Kopieren der Bind-Daten (falls vorhanden).
duckdb_scalar_function_bind_set_error
Meldet, dass beim Aufruf von bind einer Skalarfunktion ein Fehler aufgetreten ist.
Syntax
void duckdb_scalar_function_bind_set_error(
duckdb_bind_info info,
const char *error
);
Parameter
info: Das Bind-Info-Objekt.error: Die Fehlermeldung.
duckdb_scalar_function_set_function
Setzt die Hauptfunktion der Skalarfunktion.
Syntax
void duckdb_scalar_function_set_function(
duckdb_scalar_function scalar_function,
duckdb_scalar_function_t function
);
Parameter
scalar_function: Die Skalarfunktionfunction: Die Funktion
duckdb_register_scalar_function
Registriert das Skalarfunktionsobjekt in der angegebenen Verbindung.
Die Funktion erfordert mindestens einen Namen, eine Funktion und einen Rückgabetyp.
Wenn die Funktion unvollständig ist oder bereits eine Funktion mit diesem Namen existiert, wird DuckDBError zurückgegeben.
Syntax
duckdb_state duckdb_register_scalar_function(
duckdb_connection con,
duckdb_scalar_function scalar_function
);
Parameter
con: Die Verbindung, in der registriert wird.scalar_function: Der Funktionszeiger
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_scalar_function_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in duckdb_scalar_function_set_extra_info gesetzt.
Syntax
void *duckdb_scalar_function_get_extra_info(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt.
Rückgabewert
Die Extra-Informationen.
duckdb_scalar_function_bind_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in den Bind-Informationen gesetzt.
Syntax
void *duckdb_scalar_function_bind_get_extra_info(
duckdb_bind_info info
);
Parameter
info: Das Info-Objekt.
Rückgabewert
Die Extra-Informationen.
duckdb_scalar_function_get_bind_data
Ruft die mit duckdb_scalar_function_set_bind_data gesetzten Bind-Daten der Skalarfunktion ab.
Beachten Sie, dass die Bind-Daten schreibgeschützt sind.
Syntax
void *duckdb_scalar_function_get_bind_data(
duckdb_function_info info
);
Parameter
info: Die Funktions-Infos.
Rückgabewert
Das Bind-Datenobjekt.
duckdb_scalar_function_get_client_context
Ruft den Client-Kontext der Bind-Informationen einer Skalarfunktion ab.
Syntax
void duckdb_scalar_function_get_client_context(
duckdb_bind_info info,
duckdb_client_context *out_context
);
Parameter
info: Das Bind-Info-Objekt der Skalarfunktion.out_context: Der Client-Kontext der Bind-Infos. Must be destroyed withduckdb_destroy_client_context.
duckdb_scalar_function_set_error
Meldet, dass bei der Ausführung der Skalarfunktion ein Fehler aufgetreten ist.
Syntax
void duckdb_scalar_function_set_error(
duckdb_function_info info,
const char *error
);
Parameter
info: Das Info-Objekt.error: Die Fehlermeldung
duckdb_create_scalar_function_set
Erzeugt einen neuen leeren Skalarfunktionssatz.
Der Rückgabewert muss mit duckdb_destroy_scalar_function_set zerstört werden.
Rückgabewert
Das Skalarfunktionssatz-Objekt.
Syntax
duckdb_scalar_function_set duckdb_create_scalar_function_set(
const char *name
);
duckdb_destroy_scalar_function_set
Zerstört das angegebene Skalarfunktionssatz-Objekt.
Syntax
void duckdb_destroy_scalar_function_set(
duckdb_scalar_function_set *scalar_function_set
);
duckdb_add_scalar_function_to_set
Fügt die Skalarfunktion als neue Überladung zum Skalarfunktionssatz hinzu.
Gibt DuckDBError zurück, wenn die Funktion nicht hinzugefügt werden konnte, z. B. wenn die Überladung bereits existiert.
Syntax
duckdb_state duckdb_add_scalar_function_to_set(
duckdb_scalar_function_set set,
duckdb_scalar_function function
);
Parameter
set: Der Skalarfunktionssatzfunction: Die hinzuzufügende Funktion
duckdb_register_scalar_function_set
Registriert den Skalarfunktionssatz in der angegebenen Verbindung.
Der Satz erfordert mindestens eine gültige Überladung.
Wenn der Satz unvollständig ist oder bereits eine Funktion mit diesem Namen existiert, wird DuckDBError zurückgegeben.
Syntax
duckdb_state duckdb_register_scalar_function_set(
duckdb_connection con,
duckdb_scalar_function_set set
);
Parameter
con: Die Verbindung, in der registriert wird.set: Der zu registrierende Funktionssatz
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_scalar_function_bind_get_argument_count
Gibt die Anzahl der Eingabeargumente der Skalarfunktion zurück.
Syntax
idx_t duckdb_scalar_function_bind_get_argument_count(
duckdb_bind_info info
);
Parameter
info: Die Bind-Infos.
Rückgabewert
Die Anzahl der Eingabeargumente.
duckdb_scalar_function_bind_get_argument
Gibt das Eingabeargument am Index der Skalarfunktion zurück.
Syntax
duckdb_expression duckdb_scalar_function_bind_get_argument(
duckdb_bind_info info,
idx_t index
);
Parameter
info: Die Bind-Infos.index: Der Argumentindex.
Rückgabewert
Das Eingabeargument am Index. Muss mit duckdb_destroy_expression zerstört werden.
duckdb_create_selection_vector
Erzeugt einen neuen Selection-Vektor der Größe size.
Muss mit duckdb_destroy_selection_vector zerstört werden.
Syntax
duckdb_selection_vector duckdb_create_selection_vector(
idx_t size
);
Parameter
size: Die Größe des Selektionsvektors.
Rückgabewert
Der Selection-Vektor.
duckdb_destroy_selection_vector
Zerstört den Selection-Vektor und gibt seinen Speicher frei.
Syntax
void duckdb_destroy_selection_vector(
duckdb_selection_vector sel
);
Parameter
sel: Der Selection-Vektor.
duckdb_selection_vector_get_data_ptr
Greift auf den Datenzeiger eines Selection-Vektors zu.
Syntax
sel_t *duckdb_selection_vector_get_data_ptr(
duckdb_selection_vector sel
);
Parameter
sel: Der Selection-Vektor.
Rückgabewert
Der Datenzeiger.
duckdb_create_aggregate_function
Erzeugt eine neue leere Aggregatfunktion.
Der Rückgabewert sollte mit duckdb_destroy_aggregate_function zerstört werden.
Rückgabewert
Das Aggregatfunktionsobjekt.
Syntax
duckdb_aggregate_function duckdb_create_aggregate_function(
);
duckdb_destroy_aggregate_function
Zerstört das angegebene Aggregatfunktionsobjekt.
Syntax
void duckdb_destroy_aggregate_function(
duckdb_aggregate_function *aggregate_function
);
duckdb_aggregate_function_set_name
Setzt den Namen der angegebenen Aggregatfunktion.
Syntax
void duckdb_aggregate_function_set_name(
duckdb_aggregate_function aggregate_function,
const char *name
);
Parameter
aggregate_function: Die Aggregatfunktionname: Der Name der Aggregatfunktion
duckdb_aggregate_function_add_parameter
Fügt der Aggregatfunktion einen Parameter hinzu.
Syntax
void duckdb_aggregate_function_add_parameter(
duckdb_aggregate_function aggregate_function,
duckdb_logical_type type
);
Parameter
aggregate_function: Die Aggregatfunktion.type: Der Parametertyp. Darf nicht INVALID enthalten.
duckdb_aggregate_function_set_return_type
Setzt den Rückgabetyp der Aggregatfunktion.
Syntax
void duckdb_aggregate_function_set_return_type(
duckdb_aggregate_function aggregate_function,
duckdb_logical_type type
);
Parameter
aggregate_function: Die Aggregatfunktion.type: Der Rückgabetyp. Darf kein INVALID oder ANY enthalten.
duckdb_aggregate_function_set_functions
Setzt die Hauptfunktionen der Aggregatfunktion.
Syntax
void duckdb_aggregate_function_set_functions(
duckdb_aggregate_function aggregate_function,
duckdb_aggregate_state_size state_size,
duckdb_aggregate_init_t state_init,
duckdb_aggregate_update_t update,
duckdb_aggregate_combine_t combine,
duckdb_aggregate_finalize_t finalize
);
Parameter
aggregate_function: Die Aggregatfunktionstate_size: state sizestate_init: state init functionupdate: update statescombine: combine statesfinalize: finalize states
duckdb_aggregate_function_set_destructor
Setzt den State-Destruktor-Callback der Aggregatfunktion (optional)
Syntax
void duckdb_aggregate_function_set_destructor(
duckdb_aggregate_function aggregate_function,
duckdb_aggregate_destroy_t destroy
);
Parameter
aggregate_function: Die Aggregatfunktiondestroy: state destroy callback
duckdb_register_aggregate_function
Registriert das Aggregatfunktionsobjekt in der angegebenen Verbindung.
Die Funktion erfordert mindestens einen Namen, Funktionen und einen Rückgabetyp.
Wenn die Funktion unvollständig ist oder bereits eine Funktion mit diesem Namen existiert, wird DuckDBError zurückgegeben.
Syntax
duckdb_state duckdb_register_aggregate_function(
duckdb_connection con,
duckdb_aggregate_function aggregate_function
);
Parameter
con: Die Verbindung, in der registriert wird.
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_aggregate_function_set_special_handling
Setzt die NULL-Behandlung der Aggregatfunktion auf SPECIAL_HANDLING.
Syntax
void duckdb_aggregate_function_set_special_handling(
duckdb_aggregate_function aggregate_function
);
Parameter
aggregate_function: Die Aggregatfunktion
duckdb_aggregate_function_set_extra_info
Weist der Skalarfunktion Extra-Informationen zu, die z. B. während des Bindens abgerufen werden können.
Syntax
void duckdb_aggregate_function_set_extra_info(
duckdb_aggregate_function aggregate_function,
void *extra_info,
duckdb_delete_callback_t destroy
);
Parameter
aggregate_function: Die Aggregatfunktionextra_info: Die Extra-Informationenrmationdestroy: Der Callback, der aufgerufen wird, um die Extra-Informationen zu zerstören (falls vorhanden)
duckdb_aggregate_function_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in duckdb_aggregate_function_set_extra_info gesetzt.
Syntax
void *duckdb_aggregate_function_get_extra_info(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Die Extra-Informationen
duckdb_aggregate_function_set_error
Meldet, dass bei der Ausführung der Aggregatfunktion ein Fehler aufgetreten ist.
Syntax
void duckdb_aggregate_function_set_error(
duckdb_function_info info,
const char *error
);
Parameter
info: Das Info-Objekterror: Die Fehlermeldung
duckdb_create_aggregate_function_set
Erzeugt einen neuen leeren Aggregatfunktionssatz.
Der Rückgabewert sollte mit duckdb_destroy_aggregate_function_set zerstört werden.
Rückgabewert
Das Aggregatfunktionssatz-Objekt.
Syntax
duckdb_aggregate_function_set duckdb_create_aggregate_function_set(
const char *name
);
duckdb_destroy_aggregate_function_set
Zerstört das angegebene Aggregatfunktionssatz-Objekt.
Syntax
void duckdb_destroy_aggregate_function_set(
duckdb_aggregate_function_set *aggregate_function_set
);
duckdb_add_aggregate_function_to_set
Fügt die Aggregatfunktion als neue Überladung zum Aggregatfunktionssatz hinzu.
Gibt DuckDBError zurück, wenn die Funktion nicht hinzugefügt werden konnte, z. B. wenn die Überladung bereits existiert.
Syntax
duckdb_state duckdb_add_aggregate_function_to_set(
duckdb_aggregate_function_set set,
duckdb_aggregate_function function
);
Parameter
set: Der Aggregatfunktionssatzfunction: Die hinzuzufügende Funktion
duckdb_register_aggregate_function_set
Registriert den Aggregatfunktionssatz in der angegebenen Verbindung.
Der Satz erfordert mindestens eine gültige Überladung.
Wenn der Satz unvollständig ist oder bereits eine Funktion mit diesem Namen existiert, wird DuckDBError zurückgegeben.
Syntax
duckdb_state duckdb_register_aggregate_function_set(
duckdb_connection con,
duckdb_aggregate_function_set set
);
Parameter
con: Die Verbindung, in der registriert wird.set: Der zu registrierende Funktionssatz
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_create_table_function
Erzeugt eine neue leere Tabellenfunktion.
Der Rückgabewert sollte mit duckdb_destroy_table_function zerstört werden.
Rückgabewert
Das Tabellenfunktionsobjekt.
Syntax
duckdb_table_function duckdb_create_table_function(
);
duckdb_destroy_table_function
Zerstört das angegebene Tabellenfunktionsobjekt.
Syntax
void duckdb_destroy_table_function(
duckdb_table_function *table_function
);
Parameter
table_function: Die zu zerstörende Tabellenfunktion
duckdb_table_function_set_name
Setzt den Namen der angegebenen Tabellenfunktion.
Syntax
void duckdb_table_function_set_name(
duckdb_table_function table_function,
const char *name
);
Parameter
table_function: Die Tabellenfunktionname: Der Name der Tabellenfunktion
duckdb_table_function_add_parameter
Fügt der Tabellenfunktion einen Parameter hinzu.
Syntax
void duckdb_table_function_add_parameter(
duckdb_table_function table_function,
duckdb_logical_type type
);
Parameter
table_function: Die Tabellenfunktion.type: Der Parametertyp. Darf nicht INVALID enthalten.
duckdb_table_function_add_named_parameter
Fügt der Tabellenfunktion einen benannten Parameter hinzu.
Syntax
void duckdb_table_function_add_named_parameter(
duckdb_table_function table_function,
const char *name,
duckdb_logical_type type
);
Parameter
table_function: Die Tabellenfunktion.name: Der Parametername.type: Der Parametertyp. Darf nicht INVALID enthalten.
duckdb_table_function_set_extra_info
Weist der Tabellenfunktion Extra-Informationen zu, die z. B. während des Bindens abgerufen werden können.
Syntax
void duckdb_table_function_set_extra_info(
duckdb_table_function table_function,
void *extra_info,
duckdb_delete_callback_t destroy
);
Parameter
table_function: Die Tabellenfunktionextra_info: Die Extra-Informationenrmationdestroy: Der Callback, der aufgerufen wird, um die Extra-Informationen zu zerstören (falls vorhanden)
duckdb_table_function_set_bind
Setzt die Bind-Funktion der Tabellenfunktion.
Syntax
void duckdb_table_function_set_bind(
duckdb_table_function table_function,
duckdb_table_function_bind_t bind
);
Parameter
table_function: Die Tabellenfunktionbind: Die Bind-Funktion
duckdb_table_function_set_init
Setzt die Init-Funktion der Tabellenfunktion.
Syntax
void duckdb_table_function_set_init(
duckdb_table_function table_function,
duckdb_table_function_init_t init
);
Parameter
table_function: Die Tabellenfunktioninit: Die Init-Funktion
duckdb_table_function_set_local_init
Setzt die threadlokale Init-Funktion der Tabellenfunktion.
Syntax
void duckdb_table_function_set_local_init(
duckdb_table_function table_function,
duckdb_table_function_init_t init
);
Parameter
table_function: Die Tabellenfunktioninit: Die Init-Funktion
duckdb_table_function_set_function
Setzt die Hauptfunktion der Tabellenfunktion.
Syntax
void duckdb_table_function_set_function(
duckdb_table_function table_function,
duckdb_table_function_t function
);
Parameter
table_function: Die Tabellenfunktionfunction: Die Funktion
duckdb_table_function_supports_projection_pushdown
Setzt, ob die angegebene Tabellenfunktion Projection Pushdown unterstützt.
Wenn dies auf true gesetzt ist, stellt das System in der init-Phase eine Liste aller benötigten Spalten über
die Funktionen duckdb_init_get_column_count und duckdb_init_get_column_index bereit.
Wenn dies auf false gesetzt ist (der Standard), erwartet das System, dass alle Spalten projiziert werden.
Syntax
void duckdb_table_function_supports_projection_pushdown(
duckdb_table_function table_function,
bool pushdown
);
Parameter
table_function: Die Tabellenfunktionpushdown: True, wenn die Tabellenfunktion Projection Pushdown unterstützt, andernfalls false.
duckdb_register_table_function
Registriert das Tabellenfunktionsobjekt in der angegebenen Verbindung.
Die Funktion erfordert mindestens einen Namen, eine Bind-Funktion, eine Init-Funktion und eine Hauptfunktion.
Wenn die Funktion unvollständig ist oder bereits eine Funktion mit diesem Namen existiert, wird DuckDBError zurückgegeben.
Syntax
duckdb_state duckdb_register_table_function(
duckdb_connection con,
duckdb_table_function function
);
Parameter
con: Die Verbindung, in der registriert wird.function: Der Funktionszeiger
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_bind_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in duckdb_table_function_set_extra_info gesetzt.
Syntax
void *duckdb_bind_get_extra_info(
duckdb_bind_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Die Extra-Informationen
duckdb_table_function_get_client_context
Ruft den Client-Kontext der Bind-Informationen einer Tabellenfunktion ab.
Syntax
void duckdb_table_function_get_client_context(
duckdb_bind_info info,
duckdb_client_context *out_context
);
Parameter
info: Das Bind-Info-Objekt der Tabellenfunktion.out_context: Der Client-Kontext der Bind-Infos. Must be destroyed withduckdb_destroy_client_context.
duckdb_bind_add_result_column
Fügt dem Ausgabeergebnis der Tabellenfunktion eine Ergebnis-Spalte hinzu.
Syntax
void duckdb_bind_add_result_column(
duckdb_bind_info info,
const char *name,
duckdb_logical_type type
);
Parameter
info: Die Bind-Infos der Tabellenfunktion.name: Der Spaltenname.type: Der logische Spaltentyp.
duckdb_bind_get_parameter_count
Ruft die Anzahl der regulären (nicht benannten) Parameter der Funktion ab.
Syntax
idx_t duckdb_bind_get_parameter_count(
duckdb_bind_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Die Anzahl der Parameter
duckdb_bind_get_parameter
Ruft den Parameter am angegebenen Index ab.
Das Ergebnis muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_bind_get_parameter(
duckdb_bind_info info,
idx_t index
);
Parameter
info: Das Info-Objektindex: Der Index des zu holenden Parameters
Rückgabewert
Der Wert des Parameter. Muss mit duckdb_destroy_value zerstört werden.
duckdb_bind_get_named_parameter
Ruft einen benannten Parameter mit dem angegebenen Namen ab.
Das Ergebnis muss mit duckdb_destroy_value zerstört werden.
Syntax
duckdb_value duckdb_bind_get_named_parameter(
duckdb_bind_info info,
const char *name
);
Parameter
info: Das Info-Objektname: Der Name des Parameters
Rückgabewert
Der Wert des Parameter. Muss mit duckdb_destroy_value zerstört werden.
duckdb_bind_set_bind_data
Setzt die benutzerdefinierten Bind-Daten im Bind-Objekt der Tabellenfunktion. Dieses Objekt kann während der Ausführung wieder abgerufen werden.
Syntax
void duckdb_bind_set_bind_data(
duckdb_bind_info info,
void *bind_data,
duckdb_delete_callback_t destroy
);
Parameter
info: Die Bind-Infos der Tabellenfunktion.bind_data: Das Bind-Datenobjekt.destroy: Der Callback zum Zerstören der Bind-Daten (falls vorhanden).
duckdb_bind_set_cardinality
Setzt die Kardinalitätsschätzung der Tabellenfunktion, die für die Optimierung verwendet wird.
Syntax
void duckdb_bind_set_cardinality(
duckdb_bind_info info,
idx_t cardinality,
bool is_exact
);
Parameter
info: Das Bind-Datenobjekt.is_exact: Ob die Kardinalitätsschätzung exakt oder eine Näherung ist
duckdb_bind_set_error
Meldet, dass beim Aufruf von bind einer Tabellenfunktion ein Fehler aufgetreten ist.
Syntax
void duckdb_bind_set_error(
duckdb_bind_info info,
const char *error
);
Parameter
info: Das Info-Objekterror: Die Fehlermeldung
duckdb_init_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in duckdb_table_function_set_extra_info gesetzt.
Syntax
void *duckdb_init_get_extra_info(
duckdb_init_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Die Extra-Informationen
duckdb_init_get_bind_data
Ruft die mit duckdb_bind_set_bind_data während des Bindens gesetzten Bind-Daten ab.
Beachten Sie, dass die Bind-Daten als schreibgeschützt betrachtet werden sollten. Für Zustandsverfolgung verwenden Sie stattdessen die Init-Daten.
Syntax
void *duckdb_init_get_bind_data(
duckdb_init_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Das Bind-Datenobjekt
duckdb_init_set_init_data
Setzt die benutzerdefinierten Init-Daten im Init-Objekt. Dieses Objekt kann während der Ausführung wieder abgerufen werden.
Syntax
void duckdb_init_set_init_data(
duckdb_init_info info,
void *init_data,
duckdb_delete_callback_t destroy
);
Parameter
info: Das Info-Objektinit_data: Das Init-Datenobjekt.destroy: Der Callback, der aufgerufen wird, um die Init-Daten zu zerstören (falls vorhanden)
duckdb_init_get_column_count
Gibt die Anzahl der projizierten Spalten zurück.
Diese Funktion muss verwendet werden, wenn Projection Pushdown aktiviert ist, um festzustellen, welche Spalten ausgegeben werden sollen.
Syntax
idx_t duckdb_init_get_column_count(
duckdb_init_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Die Anzahl der projizierten Spalten.
duckdb_init_get_column_index
Gibt den Spaltenindex der projizierten Spalte an der angegebenen Position zurück.
Diese Funktion muss verwendet werden, wenn Projection Pushdown aktiviert ist, um festzustellen, welche Spalten ausgegeben werden sollen.
Syntax
idx_t duckdb_init_get_column_index(
duckdb_init_info info,
idx_t column_index
);
Parameter
info: Das Info-Objektcolumn_index: Der Index, an dem der projizierte Spaltenindex geholt wird, von 0..duckdb_init_get_column_count(info)
Rückgabewert
Der Spaltenindex der projizierten Spalte.
duckdb_init_set_max_threads
Setzt, wie viele Threads diese Tabellenfunktion parallel verarbeiten können (Standard: 1)
Syntax
void duckdb_init_set_max_threads(
duckdb_init_info info,
idx_t max_threads
);
Parameter
info: Das Info-Objektmax_threads: Die maximale Anzahl von Threads, die diese Tabellenfunktion verarbeiten können
duckdb_init_set_error
Meldet, dass beim Aufruf von init ein Fehler aufgetreten ist.
Syntax
void duckdb_init_set_error(
duckdb_init_info info,
const char *error
);
Parameter
info: Das Info-Objekterror: Die Fehlermeldung
duckdb_function_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in duckdb_table_function_set_extra_info gesetzt.
Syntax
void *duckdb_function_get_extra_info(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Die Extra-Informationen
duckdb_function_get_bind_data
Ruft die mit duckdb_bind_set_bind_data gesetzten Bind-Daten der Tabellenfunktion ab.
Beachten Sie, dass die Bind-Daten schreibgeschützt sind. Für Zustandsverfolgung verwenden Sie stattdessen die Init-Daten.
Syntax
void *duckdb_function_get_bind_data(
duckdb_function_info info
);
Parameter
info: Das Funktions-Info-Objekt.
Rückgabewert
Das Bind-Datenobjekt.
duckdb_function_get_init_data
Ruft die mit duckdb_init_set_init_data während der Initialisierung gesetzten Init-Daten ab.
Syntax
void *duckdb_function_get_init_data(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Das Init-Datenobjekt
duckdb_function_get_local_init_data
Ruft die threadlokalen Init-Daten ab, die mit duckdb_init_set_init_data während local_init gesetzt wurden.
Syntax
void *duckdb_function_get_local_init_data(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt
Rückgabewert
Das Init-Datenobjekt
duckdb_function_set_error
Meldet, dass bei der Ausführung der Funktion ein Fehler aufgetreten ist.
Syntax
void duckdb_function_set_error(
duckdb_function_info info,
const char *error
);
Parameter
info: Das Info-Objekterror: Die Fehlermeldung
duckdb_add_replacement_scan
Fügt der angegebenen Datenbank eine Replacement-Scan-Definition hinzu.
Syntax
void duckdb_add_replacement_scan(
duckdb_database db,
duckdb_replacement_callback_t replacement,
void *extra_data,
duckdb_delete_callback_t delete_callback
);
Parameter
db: Das Datenbankobjekt, dem der Replacement Scan hinzugefügt wirdreplacement: Der Replacement-Scan-Callbackextra_data: Extra-Daten, die an den angegebenen Callback zurückgegeben werdendelete_callback: Der Delete-Callback, der für die Extra-Daten aufgerufen wird, falls vorhanden
duckdb_replacement_scan_set_function_name
Setzt den Namen der Replacement-Funktion. Wird diese Funktion im Replacement-Callback aufgerufen, wird der Replacement Scan ausgeführt. Wird sie nicht aufgerufen, wird der Replacement-Callback nicht ausgeführt.
Syntax
void duckdb_replacement_scan_set_function_name(
duckdb_replacement_scan_info info,
const char *function_name
);
Parameter
info: Das Info-Objektfunction_name: Der Funktionsname, der eingesetzt werden soll.
duckdb_replacement_scan_add_parameter
Fügt der Replacement-Scan-Funktion einen Parameter hinzu.
Syntax
void duckdb_replacement_scan_add_parameter(
duckdb_replacement_scan_info info,
duckdb_value parameter
);
Parameter
info: Das Info-Objektparameter: Der hinzuzufügende Parameter.
duckdb_replacement_scan_set_error
Meldet, dass bei der Ausführung des Replacement Scans ein Fehler aufgetreten ist.
Syntax
void duckdb_replacement_scan_set_error(
duckdb_replacement_scan_info info,
const char *error
);
Parameter
info: Das Info-Objekterror: Die Fehlermeldung
duckdb_get_profiling_info
Gibt den Wurzelknoten der Profiling-Informationen zurück. Gibt nullptr zurück, wenn Profiling nicht aktiviert ist.
Syntax
duckdb_profiling_info duckdb_get_profiling_info(
duckdb_connection connection
);
Parameter
connection: Ein Verbindungsobjekt.
Rückgabewert
Ein Profiling-Informationsobjekt.
duckdb_profiling_info_get_value
Gibt den Wert der Metrik des aktuellen Profiling-Info-Knotens zurück. Gibt nullptr zurück, wenn die Metrik nicht existiert oder nicht aktiviert ist. Derzeit enthält der Wert einen String, den Sie über die entsprechende Funktion abrufen können: char *duckdb_get_varchar(duckdb_value value).
Syntax
duckdb_value duckdb_profiling_info_get_value(
duckdb_profiling_info info,
const char *key
);
Parameter
info: Ein Profiling-Informationsobjekt.key: Der Name der angeforderten Metrik.
Rückgabewert
Der Wert der Metrik. Muss mit duckdb_destroy_value freigegeben werden
duckdb_profiling_info_get_metrics
Gibt die Key-Value-Metrik-Map dieses Profiling-Knotens als MAP-duckdb_value zurück. Die einzelnen Elemente sind über die duckdb_value-MAP-Funktionen zugänglich.
Syntax
duckdb_value duckdb_profiling_info_get_metrics(
duckdb_profiling_info info
);
Parameter
info: Ein Profiling-Informationsobjekt.
Rückgabewert
Die Key-Value-Metrik-Map als MAP-duckdb_value.
duckdb_profiling_info_get_child_count
Gibt die Anzahl der Kinder im aktuellen Profiling-Info-Knoten zurück.
Syntax
idx_t duckdb_profiling_info_get_child_count(
duckdb_profiling_info info
);
Parameter
info: Ein Profiling-Informationsobjekt.
Rückgabewert
Die Anzahl der Kinder im aktuellen Knoten.
duckdb_profiling_info_get_child
Gibt den Kindknoten am angegebenen Index zurück.
Syntax
duckdb_profiling_info duckdb_profiling_info_get_child(
duckdb_profiling_info info,
idx_t index
);
Parameter
info: Ein Profiling-Informationsobjekt.index: Der Index des Kindknotens.
Rückgabewert
Der Kindknoten am angegebenen Index.
duckdb_appender_create
Erzeugt ein Appender-Objekt.
Beachten Sie, dass das Objekt mit duckdb_appender_destroy zerstört werden muss.
Syntax
duckdb_state duckdb_appender_create(
duckdb_connection connection,
const char *schema,
const char *table,
duckdb_appender *out_appender
);
Parameter
connection: Der Verbindungskontext, in dem der Appender erzeugt wird.schema: Das Schema der Tabelle, an die angehängt wird, odernullptrfür das Standardschema.table: Der Tabellenname, an den angehängt wird.out_appender: Das resultierende Appender-Objekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_create_ext
Erzeugt ein Appender-Objekt.
Beachten Sie, dass das Objekt mit duckdb_appender_destroy zerstört werden muss.
Syntax
duckdb_state duckdb_appender_create_ext(
duckdb_connection connection,
const char *catalog,
const char *schema,
const char *table,
duckdb_appender *out_appender
);
Parameter
connection: Der Verbindungskontext, in dem der Appender erzeugt wird.catalog: Der Katalog der Tabelle, an die angehängt wird, odernullptrfür den Standardkatalog.schema: Das Schema der Tabelle, an die angehängt wird, odernullptrfür das Standardschema.table: Der Tabellenname, an den angehängt wird.out_appender: Das resultierende Appender-Objekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_create_query
Erzeugt ein Appender-Objekt, das die angegebene Abfrage mit allen daran angehängten Daten ausführt.
Beachten Sie, dass das Objekt mit duckdb_appender_destroy zerstört werden muss.
Syntax
duckdb_state duckdb_appender_create_query(
duckdb_connection connection,
const char *query,
idx_t column_count,
duckdb_logical_type *types,
const char *table_name,
const char **column_names,
duckdb_appender *out_appender
);
Parameter
connection: Der Verbindungskontext, in dem der Appender erzeugt wird.query: Die auszuführende Abfrage, kann eine INSERT-, DELETE-, UPDATE- oder MERGE INTO-Anweisung sein.column_count: Die Anzahl der anzuhängenden Spalten.types: Die Typen der anzuhängenden Spalten.table_name: (optionally) the table name used to refer to the appended data, defaults to “appended_data”.column_names: (optionally) the list of column names, defaults to “col1”, “col2”, …out_appender: Das resultierende Appender-Objekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_column_count
Gibt die Anzahl der Spalten zurück, die zum Appender gehören. Wenn keine aktive Spaltenliste vorhanden ist, entspricht dies den physischen Spalten der Tabelle.
Syntax
idx_t duckdb_appender_column_count(
duckdb_appender appender
);
Parameter
appender: Der Appender, von dem die Spaltenanzahl geholt wird.
Rückgabewert
Die Anzahl der Spalten in den Data-Chunks.
duckdb_appender_column_type
Gibt den Typ der Spalte am angegebenen Index zurück. Dies ist entweder ein Typ in der aktiven Spaltenliste oder derselbe Typ wie eine Spalte in der Empfängertabelle.
Hinweis: Der resultierende Typ muss mit duckdb_destroy_logical_type zerstört werden.
Syntax
duckdb_logical_type duckdb_appender_column_type(
duckdb_appender appender,
idx_t col_idx
);
Parameter
appender: Der Appender, von dem der Spaltentyp geholt wird.col_idx: Der Index der Spalte, deren Typ geholt wird.
Rückgabewert
Der duckdb_logical_type der Spalte.
duckdb_appender_error
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen. Verwenden Sie stattdessen duckdb_appender_error_data.
Gibt die dem Appender zugeordnete Fehlermeldung zurück.
Wenn der Appender keine Fehlermeldung hat, wird stattdessen nullptr zurückgegeben.
Die Fehlermeldung sollte nicht freigegeben werden. Sie wird freigegeben, wenn duckdb_appender_destroy aufgerufen wird.
Syntax
const char *duckdb_appender_error(
duckdb_appender appender
);
Parameter
appender: Der Appender, von dem der Fehler geholt wird.
Rückgabewert
Die Fehlermeldung oder nullptr, wenn keine vorhanden ist.
duckdb_appender_error_data
Gibt die dem Appender zugeordneten Fehlerdaten zurück. Müssen mit duckdb_destroy_error_data zerstört werden.
Syntax
duckdb_error_data duckdb_appender_error_data(
duckdb_appender appender
);
Parameter
appender: Der Appender, von dem die Fehlerdaten geholt werden.
Rückgabewert
Die Fehlerdaten.
duckdb_appender_flush
Schreibt den Appender in die Tabelle fort und leert dabei den Cache des Appenders. Wenn das Fortschreiben eine Constraint-Verletzung oder einen anderen Fehler auslöst, werden alle Daten ungültig, und diese Funktion gibt DuckDBError zurück. Es können keine weiteren Werte angehängt werden. Rufen Sie duckdb_appender_error_data auf, um die Fehlerdaten zu holen, und anschließend duckdb_appender_destroy, um den ungültigen Appender zu zerstören.
Syntax
duckdb_state duckdb_appender_flush(
duckdb_appender appender
);
Parameter
appender: Der zu leerende Appender.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_close
Schließt den Appender, indem alle Zwischenzustände fortgeschrieben werden, und sperrt ihn für weitere Anhängungen. Wenn das Fortschreiben eine Constraint-Verletzung oder einen anderen Fehler auslöst, werden alle Daten ungültig, und diese Funktion gibt DuckDBError zurück. Rufen Sie duckdb_appender_error_data auf, um die Fehlerdaten zu holen, und anschließend duckdb_appender_destroy, um den ungültigen Appender zu zerstören.
Syntax
duckdb_state duckdb_appender_close(
duckdb_appender appender
);
Parameter
appender: Der zu leerende und zu schließende Appender.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_destroy
Schließt den Appender, indem alle Zwischenzustände in die Tabelle fortgeschrieben und der Appender zerstört wird. Durch die Zerstörung gibt diese Funktion den gesamten dem Appender zugeordneten Speicher frei. Wenn das Fortschreiben eine Constraint-Verletzung auslöst, werden alle Daten ungültig, und diese Funktion gibt DuckDBError zurück. Durch die Zerstörung des Appenders ist es nicht mehr möglich, die konkrete Fehlermeldung mit duckdb_appender_error zu holen. Rufen Sie daher duckdb_appender_close auf, bevor Sie den Appender zerstören, wenn Sie die konkrete Fehlermeldung benötigen.
Syntax
duckdb_state duckdb_appender_destroy(
duckdb_appender *appender
);
Parameter
appender: Der zu leerende, zu schließende und zu zerstörende Appender.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_add_column
Hängt eine Spalte an die aktive Spaltenliste des Appenders an. Schreibt alle bisherigen Daten sofort fort.
Die aktive Spaltenliste gibt alle Spalten an, die beim Fortschreiben der Daten erwartet werden. Inaktive Spalten werden mit ihrem Standardwert oder NULL gefüllt.
Syntax
duckdb_state duckdb_appender_add_column(
duckdb_appender appender,
const char *name
);
Parameter
appender: Der Appender, dem die Spalte hinzugefügt wird.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_clear_columns
Entfernt alle Spalten aus der aktiven Spaltenliste des Appenders und setzt den Appender so zurück, dass alle Spalten als aktiv gelten. Schreibt alle bisherigen Daten sofort fort.
Syntax
duckdb_state duckdb_appender_clear_columns(
duckdb_appender appender
);
Parameter
appender: Der Appender, von dem die Spalten geleert werden.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_appender_begin_row
Eine No-Op-Funktion aus Gründen der Rückwärtskompatibilität. Tut nichts. Nur duckdb_appender_end_row ist erforderlich.
Syntax
duckdb_state duckdb_appender_begin_row(
duckdb_appender appender
);
duckdb_appender_end_row
Beendet die aktuelle Zeile der Anhängungen. Nach dem Aufruf von end_row kann die nächste Zeile angehängt werden.
Syntax
duckdb_state duckdb_appender_end_row(
duckdb_appender appender
);
Parameter
appender: Der Appender.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_append_default
Hängt einen DEFAULT-Wert (NULL, wenn DEFAULT für die Spalte nicht verfügbar ist) an den Appender an.
Syntax
duckdb_state duckdb_append_default(
duckdb_appender appender
);
duckdb_append_default_to_chunk
Hängt einen DEFAULT-Wert an der angegebenen Zeile und Spalte (NULL, wenn DEFAULT für die Spalte nicht verfügbar ist) an den aus dem angegebenen Appender erzeugten Chunk an. Der Standardwert der Spalte muss ein konstanter Wert sein. Nichtdeterministische Ausdrücke wie nextval(‘seq’) oder random() werden nicht unterstützt.
Syntax
duckdb_state duckdb_append_default_to_chunk(
duckdb_appender appender,
duckdb_data_chunk chunk,
idx_t col,
idx_t row
);
Parameter
appender: Der Appender, von dem der Standardwert geholt wird.chunk: Der Data Chunk, an den der Standardwert angehängt wird.col: Der Chunk-Spaltenindex, an den der Standardwert angehängt wird.row: Der Chunk-Zeilenindex, an den der Standardwert angehängt wird.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_append_bool
Hängt einen Bool-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_bool(
duckdb_appender appender,
bool value
);
duckdb_append_int8
Hängt einen int8_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_int8(
duckdb_appender appender,
int8_t value
);
duckdb_append_int16
Hängt einen int16_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_int16(
duckdb_appender appender,
int16_t value
);
duckdb_append_int32
Hängt einen int32_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_int32(
duckdb_appender appender,
int32_t value
);
duckdb_append_int64
Hängt einen int64_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_int64(
duckdb_appender appender,
int64_t value
);
duckdb_append_hugeint
Hängt einen duckdb_hugeint-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_hugeint(
duckdb_appender appender,
duckdb_hugeint value
);
duckdb_append_uint8
Hängt einen uint8_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_uint8(
duckdb_appender appender,
uint8_t value
);
duckdb_append_uint16
Hängt einen uint16_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_uint16(
duckdb_appender appender,
uint16_t value
);
duckdb_append_uint32
Hängt einen uint32_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_uint32(
duckdb_appender appender,
uint32_t value
);
duckdb_append_uint64
Hängt einen uint64_t-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_uint64(
duckdb_appender appender,
uint64_t value
);
duckdb_append_uhugeint
Hängt einen duckdb_uhugeint-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_uhugeint(
duckdb_appender appender,
duckdb_uhugeint value
);
duckdb_append_float
Hängt einen Float-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_float(
duckdb_appender appender,
float value
);
duckdb_append_double
Hängt einen Double-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_double(
duckdb_appender appender,
double value
);
duckdb_append_date
Hängt einen duckdb_date-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_date(
duckdb_appender appender,
duckdb_date value
);
duckdb_append_time
Hängt einen duckdb_time-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_time(
duckdb_appender appender,
duckdb_time value
);
duckdb_append_timestamp
Hängt einen duckdb_timestamp-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_timestamp(
duckdb_appender appender,
duckdb_timestamp value
);
duckdb_append_interval
Hängt einen duckdb_interval-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_interval(
duckdb_appender appender,
duckdb_interval value
);
duckdb_append_varchar
Hängt einen VARCHAR-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_varchar(
duckdb_appender appender,
const char *val
);
duckdb_append_varchar_length
Hängt einen VARCHAR-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_varchar_length(
duckdb_appender appender,
const char *val,
idx_t length
);
duckdb_append_blob
Hängt einen Blob-Wert an den Appender an.
Syntax
duckdb_state duckdb_append_blob(
duckdb_appender appender,
const void *data,
idx_t length
);
duckdb_append_null
Hängt einen NULL-Wert (beliebigen Typs) an den Appender an.
Syntax
duckdb_state duckdb_append_null(
duckdb_appender appender
);
duckdb_append_value
Hängt einen duckdb_value an den Appender an.
Syntax
duckdb_state duckdb_append_value(
duckdb_appender appender,
duckdb_value value
);
duckdb_append_data_chunk
Hängt einen vorausgefüllten Data-Chunk an den angegebenen Appender an. Versucht zu casten, wenn die Data-Chunk-Typen nicht mit den aktiven Appender-Typen übereinstimmen.
Syntax
duckdb_state duckdb_append_data_chunk(
duckdb_appender appender,
duckdb_data_chunk chunk
);
Parameter
appender: Der Appender, an den angehängt wird.chunk: Der anzuhängende Data Chunk.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_table_description_create
Erzeugt ein Tabellenbeschreibungsobjekt. Beachten Sie, dass duckdb_table_description_destroy immer für das
resultierende table_description aufgerufen werden sollte, auch wenn die Funktion DuckDBError zurückgibt.
Syntax
duckdb_state duckdb_table_description_create(
duckdb_connection connection,
const char *schema,
const char *table,
duckdb_table_description *out
);
Parameter
connection: Der Verbindungskontext.schema: Das Schema der Tabelle odernullptrfür das Standardschema.table: Der Tabellenname.out: Das resultierende Tabellenbeschreibungsobjekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_table_description_create_ext
Erzeugt ein Tabellenbeschreibungsobjekt. Beachten Sie, dass duckdb_table_description_destroy für das resultierende
table_description aufgerufen werden muss, auch wenn die Funktion DuckDBError zurückgibt.
Syntax
duckdb_state duckdb_table_description_create_ext(
duckdb_connection connection,
const char *catalog,
const char *schema,
const char *table,
duckdb_table_description *out
);
Parameter
connection: Der Verbindungskontext.catalog: Der Katalog- (Datenbank-)Name der Tabelle odernullptrfür den Standardkatalog.schema: Das Schema der Tabelle odernullptrfür das Standardschema.table: Der Tabellenname.out: Das resultierende Tabellenbeschreibungsobjekt.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_table_description_destroy
Zerstört das TableBeschreibung-Objekt.
Syntax
void duckdb_table_description_destroy(
duckdb_table_description *table_description
);
Parameter
table_description: Die zu zerstörende table_description.
duckdb_table_description_error
Gibt die dem angegebenen table_description zugeordnete Fehlermeldung zurück.
Wenn table_description keine Fehlermeldung hat, wird stattdessen nullptr zurückgegeben.
Die Fehlermeldung sollte nicht freigegeben werden. Sie wird freigegeben, wenn duckdb_table_description_destroy aufgerufen wird.
Syntax
const char *duckdb_table_description_error(
duckdb_table_description table_description
);
Parameter
table_description: Die table_description, von der der Fehler geholt wird.
Rückgabewert
Die Fehlermeldung oder nullptr, wenn keine vorhanden ist.
duckdb_column_has_default
Prüft, ob die Spalte am Index ‘index’ der Tabelle einen DEFAULT-Ausdruck hat.
Syntax
duckdb_state duckdb_column_has_default(
duckdb_table_description table_description,
idx_t index,
bool *out
);
Parameter
table_description: Die abzufragende table_description.index: Der Index der abzufragenden Spalte.out: Der Out-Parameter, in dem das Ergebnis gespeichert wird.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_table_description_get_column_name
Ermittelt den Spaltennamen am Index ‘index’.
Das Ausgabeergebnis muss mit duckdb_free zerstört werden.
Syntax
char *duckdb_table_description_get_column_name(
duckdb_table_description table_description,
idx_t index
);
Parameter
table_description: Die abzufragende table_description.index: Der Index der abzufragenden Spalte.
Rückgabewert
Der Spaltenname.
duckdb_to_arrow_schema
Wandelt ein DuckDB-Schema in ein Arrow-Schema um
Syntax
duckdb_error_data duckdb_to_arrow_schema(
duckdb_arrow_options arrow_options,
duckdb_logical_type *types,
const char **names,
idx_t column_count,
struct ArrowSchema *out_schema
);
Parameter
arrow_options: Die Arrow-Einstellungen, die zur Erzeugung von Arrow verwendet werden.types: Die logischen DuckDB-Typen für jede Spalte im Schema.names: Die Namen jeder Spalte im Schema.column_count: Die Anzahl der Spalten, die im Schema vorhanden sind.out_schema: Das resultierende Arrow-Schema. Must be destroyed without_schema->release(out_schema).
Rückgabewert
Die Fehlerdaten. Müssen mit duckdb_destroy_error_data zerstört werden.
duckdb_data_chunk_to_arrow
Wandelt einen DuckDB-Data-Chunk in ein Arrow-Array um.
Syntax
duckdb_error_data duckdb_data_chunk_to_arrow(
duckdb_arrow_options arrow_options,
duckdb_data_chunk chunk,
struct ArrowArray *out_arrow_array
);
Parameter
arrow_options: Die Arrow-Einstellungen, die zur Erzeugung von Arrow verwendet werden.chunk: Der zu konvertierende DuckDB-Data-Chunk.out_arrow_array: Die Ausgabe-Arrow-Struktur, die die konvertierten Daten enthält. Must be released without_arrow_array->release(out_arrow_array)
Rückgabewert
Die Fehlerdaten. Müssen mit duckdb_destroy_error_data zerstört werden.
duckdb_schema_from_arrow
Wandelt ein Arrow-Schema in ein DuckDB-Schema um.
Syntax
duckdb_error_data duckdb_schema_from_arrow(
duckdb_connection connection,
struct ArrowSchema *schema,
duckdb_arrow_converted_schema *out_types
);
Parameter
connection: Die Verbindung, von der die Transformationseinstellungen geholt werden.schema: Das Eingabe-Arrow-Schema. Must be released withschema->release(schema).out_types: Das konvertierte Arrow-Schema mit Extra-Informationen über die Arrow-Typen. Must be destroyed withduckdb_destroy_arrow_converted_schema.
Rückgabewert
Die Fehlerdaten. Müssen mit duckdb_destroy_error_data zerstört werden.
duckdb_data_chunk_from_arrow
Wandelt ein Arrow-Array in einen DuckDB-Data-Chunk um. Der Data-Chunk behält das Eigentum an den zugrunde liegenden Arrow-Daten.
Syntax
duckdb_error_data duckdb_data_chunk_from_arrow(
duckdb_connection connection,
struct ArrowArray *arrow_array,
duckdb_arrow_converted_schema converted_schema,
duckdb_data_chunk *out_chunk
);
Parameter
connection: Die Verbindung, von der die Transformationseinstellungen geholt werden.arrow_array: Das Eingabe-Arrow-Array. Data ownership is passed on to DuckDB’s DataChunk, the underlying object does not need to be released and won’t have ownership of the data.converted_schema: Das konvertierte Arrow-Schema mit Extra-Informationen über die Arrow-Typen.out_chunk: Der resultierende DuckDB-Data-Chunk. Must be destroyed by duckdb_destroy_data_chunk.
Rückgabewert
Die Fehlerdaten. Müssen mit duckdb_destroy_error_data zerstört werden.
duckdb_destroy_arrow_converted_schema
Zerstört das konvertierte Arrow-Schema und gibt den gesamten dafür allokierten Speicher frei.
Syntax
void duckdb_destroy_arrow_converted_schema(
duckdb_arrow_converted_schema *arrow_converted_schema
);
Parameter
arrow_converted_schema: Das zu zerstörende konvertierte Arrow-Schema.
duckdb_query_arrow
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Führt eine SQL-Abfrage in einer Verbindung aus und speichert das vollständige (materialisierte) Ergebnis in einer Arrow-Struktur.
Wenn die Abfrage fehlschlägt, wird DuckDBError zurückgegeben, und die Fehlermeldung kann durch Aufruf von
duckdb_query_arrow_error abgerufen werden.
Beachten Sie, dass nach duckdb_query_arrow duckdb_destroy_arrow für das Ergebnisobjekt aufgerufen werden muss, auch wenn die
Abfrage fehlschlägt, andernfalls wird der im Ergebnis gespeicherte Fehler nicht korrekt freigegeben.
Syntax
duckdb_state duckdb_query_arrow(
duckdb_connection connection,
const char *query,
duckdb_arrow *out_result
);
Parameter
connection: Die Verbindung, in der die Abfrage ausgeführt wird.query: Die auszuführende SQL-Abfrage.out_result: Das Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_query_arrow_schema
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Holt das interne Arrow-Schema aus dem Arrow-Ergebnis. Denken Sie daran, release für das jeweilige ArrowSchema-Objekt aufzurufen.
Syntax
duckdb_state duckdb_query_arrow_schema(
duckdb_arrow result,
duckdb_arrow_schema *out_schema
);
Parameter
result: Das Ergebnis, von dem das Schema geholt wird.out_schema: Das Ausgabe-Schema.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_prepared_arrow_schema
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Holt das interne Arrow-Schema aus dem Prepared Statement. Denken Sie daran, release für das jeweilige ArrowSchema-Objekt aufzurufen.
Syntax
duckdb_state duckdb_prepared_arrow_schema(
duckdb_prepared_statement prepared,
duckdb_arrow_schema *out_schema
);
Parameter
prepared: Das Prepared Statement, von dem das Schema geholt wird.out_schema: Das Ausgabe-Schema.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_result_arrow_array
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Konvertiert einen Data-Chunk in ein Arrow-Struct-Array. Denken Sie daran, release für das jeweilige ArrowArray-Objekt aufzurufen.
Syntax
void duckdb_result_arrow_array(
duckdb_result result,
duckdb_data_chunk chunk,
duckdb_arrow_array *out_array
);
Parameter
result: Das Ergebnisobjekt, von dem der Data Chunk geholt wurde.chunk: Der zu konvertierende Data Chunk.out_array: Das Ausgabe-Array.
duckdb_query_arrow_array
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Holt ein internes Arrow-Struct-Array aus dem Arrow-Ergebnis. Denken Sie daran, release für das jeweilige ArrowArray-Objekt aufzurufen.
Diese Funktion kann mehrfach aufgerufen werden, um weitere Chunks zu holen, wodurch das vorherige out_array freigegeben wird. Verbrauchen Sie daher das out_array, bevor Sie diese Funktion erneut aufrufen.
Syntax
duckdb_state duckdb_query_arrow_array(
duckdb_arrow result,
duckdb_arrow_array *out_array
);
Parameter
result: Das Ergebnis, von dem das Array geholt wird.out_array: Das Ausgabe-Array.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_arrow_column_count
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt die Anzahl der Spalten im Arrow-Ergebnisobjekt zurück.
Syntax
idx_t duckdb_arrow_column_count(
duckdb_arrow result
);
Parameter
result: Das Ergebnisobjekt.
Rückgabewert
Die Anzahl der Spalten im Ergebnisobjekt.
duckdb_arrow_row_count
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt die Anzahl der Zeilen im Arrow-Ergebnisobjekt zurück.
Syntax
idx_t duckdb_arrow_row_count(
duckdb_arrow result
);
Parameter
result: Das Ergebnisobjekt.
Rückgabewert
Die Anzahl der Zeilen im Ergebnisobjekt.
duckdb_arrow_rows_changed
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt die Anzahl der von der im Arrow-Ergebnis gespeicherten Abfrage geänderten Zeilen zurück. Dies ist nur für INSERT/UPDATE/DELETE-Abfragen relevant. Bei anderen Abfragen ist rows_changed 0.
Syntax
idx_t duckdb_arrow_rows_changed(
duckdb_arrow result
);
Parameter
result: Das Ergebnisobjekt.
Rückgabewert
Die Anzahl der geänderten Zeilen.
duckdb_query_arrow_error
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt die im Ergebnis enthaltene Fehlermeldung zurück. Der Fehler ist nur gesetzt, wenn duckdb_query_arrow
DuckDBError zurückgibt.
Die Fehlermeldung sollte nicht freigegeben werden. Sie wird freigegeben, wenn duckdb_destroy_arrow aufgerufen wird.
Syntax
const char *duckdb_query_arrow_error(
duckdb_arrow result
);
Parameter
result: Das Ergebnisobjekt, von dem der Fehler geholt wird.
Rückgabewert
Der Fehler des Ergebnisses.
duckdb_destroy_arrow
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Schließt das Ergebnis und gibt den gesamten für das Arrow-Ergebnis allokierten Speicher frei.
Syntax
void duckdb_destroy_arrow(
duckdb_arrow *result
);
Parameter
result: Das zu zerstörende Ergebnis.
duckdb_destroy_arrow_stream
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Gibt den Arrow-Array-Stream frei und deallokiert seinen Speicher.
Syntax
void duckdb_destroy_arrow_stream(
duckdb_arrow_stream *stream_p
);
Parameter
stream_p: Der zu zerstörende Arrow-Array-Stream.
duckdb_execute_prepared_arrow
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Führt das Prepared Statement mit den angegebenen gebundenen Parametern aus und gibt ein Arrow-Abfrageergebnis zurück.
Beachten Sie, dass nach duckdb_execute_prepared_arrow duckdb_destroy_arrow für das Ergebnisobjekt aufgerufen werden muss.
Syntax
duckdb_state duckdb_execute_prepared_arrow(
duckdb_prepared_statement prepared_statement,
duckdb_arrow *out_result
);
Parameter
prepared_statement: Das auszuführende Prepared Statement.out_result: Das Abfrageergebnis.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_arrow_scan
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Scannt den Arrow-Stream und erzeugt eine View mit dem angegebenen Namen.
Syntax
duckdb_state duckdb_arrow_scan(
duckdb_connection connection,
const char *table_name,
duckdb_arrow_stream arrow
);
Parameter
connection: Die Verbindung, auf der der Scan ausgeführt wird.table_name: Name der zu erzeugenden temporären View.arrow: Arrow-Stream-Wrapper.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_arrow_array_scan
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Scannt das Arrow-Array und erzeugt eine View mit dem angegebenen Namen.
Beachten Sie, dass nach duckdb_arrow_array_scan duckdb_destroy_arrow_stream für den Ausgabe-Stream aufgerufen werden muss.
Syntax
duckdb_state duckdb_arrow_array_scan(
duckdb_connection connection,
const char *table_name,
duckdb_arrow_schema arrow_schema,
duckdb_arrow_array arrow_array,
duckdb_arrow_stream *out_stream
);
Parameter
connection: Die Verbindung, auf der der Scan ausgeführt wird.table_name: Name der zu erzeugenden temporären View.arrow_schema: Arrow-Schema-Wrapper.arrow_array: Arrow-Array-Wrapper.out_stream: Ausgabe-Array-Stream, der das übergebene Schema umschließt, zum Freigeben/Löschen nach Abschluss.
Rückgabewert
DuckDBSuccess on success or DuckDBError on failure.
duckdb_execute_tasks
Führt DuckDB-Aufgaben auf diesem Thread aus.
Kehrt zurück, nachdem max_tasks ausgeführt wurden oder keine weiteren Aufgaben vorhanden sind.
Syntax
void duckdb_execute_tasks(
duckdb_database database,
idx_t max_tasks
);
Parameter
database: Das Datenbankobjekt, für das Tasks ausgeführt werdenmax_tasks: Die maximale Anzahl auszuführender Tasks
duckdb_create_task_state
Erzeugt einen Task-State, der mit duckdb_execute_tasks_state verwendet werden kann, um Aufgaben auszuführen, bis
duckdb_finish_execution für den State aufgerufen wird.
duckdb_destroy_state must be called on the result.
Syntax
duckdb_task_state duckdb_create_task_state(
duckdb_database database
);
Parameter
database: Das Datenbankobjekt, für das der Task-State erzeugt wird
Rückgabewert
Der Task-State, der mit duckdb_execute_tasks_state verwendet werden kann.
duckdb_execute_tasks_state
Führt DuckDB-Aufgaben auf diesem Thread aus.
Der Thread führt Aufgaben fortlaufend aus, bis duckdb_finish_execution für den State aufgerufen wird. Mehrere Threads können denselben duckdb_task_state teilen.
Syntax
void duckdb_execute_tasks_state(
duckdb_task_state state
);
Parameter
state: Der Task-State des Executors
duckdb_execute_n_tasks_state
Führt DuckDB-Aufgaben auf diesem Thread aus.
Der Thread führt Aufgaben aus, bis entweder duckdb_finish_execution für den State aufgerufen wird, max_tasks Aufgaben ausgeführt wurden oder keine weiteren Aufgaben auszuführen sind.
Mehrere Threads können denselben duckdb_task_state teilen.
Syntax
idx_t duckdb_execute_n_tasks_state(
duckdb_task_state state,
idx_t max_tasks
);
Parameter
state: Der Task-State des Executorsmax_tasks: Die maximale Anzahl auszuführender Tasks
Rückgabewert
Die Anzahl der tatsächlich ausgeführten Aufgaben
duckdb_finish_execution
Beendet die Ausführung einer bestimmten Aufgabe.
Syntax
void duckdb_finish_execution(
duckdb_task_state state
);
Parameter
state: Der Task-State, dessen Ausführung beendet wird
duckdb_task_state_is_finished
Prüft, ob der angegebene duckdb_task_state die Ausführung beendet hat
Syntax
bool duckdb_task_state_is_finished(
duckdb_task_state state
);
Parameter
state: Der zu prüfende Task-State
Rückgabewert
Ob duckdb_finish_execution für den Task-State aufgerufen wurde
duckdb_destroy_task_state
Zerstört den von duckdb_create_task_state zurückgegebenen Task-State.
Beachten Sie, dass dies nicht aufgerufen werden sollte, während ein aktiver duckdb_execute_tasks_state auf dem Task-State läuft.
Syntax
void duckdb_destroy_task_state(
duckdb_task_state state
);
Parameter
state: Der aufzuräumende Task-State
duckdb_execution_is_finished
Gibt true zurück, wenn die Ausführung der aktuellen Abfrage beendet ist.
Syntax
bool duckdb_execution_is_finished(
duckdb_connection con
);
Parameter
con: Die Verbindung, auf der geprüft wird
duckdb_stream_fetch_chunk
Warning Hinweis zur Abkündigung. Diese Methode ist zur Entfernung in einer zukünftigen Version vorgesehen.
Holt einen Data-Chunk aus dem (streaming) duckdb_result. Diese Funktion sollte wiederholt aufgerufen werden, bis das Ergebnis erschöpft ist.
Das Ergebnis muss mit duckdb_destroy_data_chunk zerstört werden.
Diese Funktion kann nur auf duckdb_results verwendet werden, die mit ‘duckdb_pending_prepared_streaming’ erzeugt wurden
Wenn diese Funktion verwendet wird, können keine der anderen Ergebnisfunktionen verwendet werden und umgekehrt (d. h., diese Funktion kann nicht mit den Legacy-Ergebnisfunktionen oder den materialisierten Ergebnisfunktionen gemischt werden).
Es ist im Voraus nicht bekannt, wie viele Chunks dieses Ergebnis zurückgibt.
Syntax
duckdb_data_chunk duckdb_stream_fetch_chunk(
duckdb_result result
);
Parameter
result: Das Ergebnisobjekt, von dem der Data Chunk geholt wird.
Rückgabewert
Der resultierende Data-Chunk. Gibt NULL zurück, wenn das Ergebnis einen Fehler hat.
duckdb_fetch_chunk
Holt einen Data-Chunk aus einem duckdb_result. Diese Funktion sollte wiederholt aufgerufen werden, bis das Ergebnis erschöpft ist.
Das Ergebnis muss mit duckdb_destroy_data_chunk zerstört werden.
Es ist im Voraus nicht bekannt, wie viele Chunks dieses Ergebnis zurückgibt.
Syntax
duckdb_data_chunk duckdb_fetch_chunk(
duckdb_result result
);
Parameter
result: Das Ergebnisobjekt, von dem der Data Chunk geholt wird.
Rückgabewert
Der resultierende Data-Chunk. Gibt NULL zurück, wenn das Ergebnis einen Fehler hat.
duckdb_create_cast_function
Erzeugt ein neues Cast-Funktionsobjekt.
Rückgabewert
Das Cast-Funktionsobjekt.
Syntax
duckdb_cast_function duckdb_create_cast_function(
);
duckdb_cast_function_set_source_type
Setzt den Quelltyp der Cast-Funktion.
Syntax
void duckdb_cast_function_set_source_type(
duckdb_cast_function cast_function,
duckdb_logical_type source_type
);
Parameter
cast_function: Das Cast-Funktionsobjekt.source_type: Der zu setzende Quelltyp.
duckdb_cast_function_set_target_type
Setzt den Zieltyp der Cast-Funktion.
Syntax
void duckdb_cast_function_set_target_type(
duckdb_cast_function cast_function,
duckdb_logical_type target_type
);
Parameter
cast_function: Das Cast-Funktionsobjekt.target_type: Der zu setzende Zieltyp.
duckdb_cast_function_set_implicit_cast_cost
Setzt die “Kosten” des impliziten Casts vom Quelltyp zum Zieltyp mit dieser Funktion.
Syntax
void duckdb_cast_function_set_implicit_cast_cost(
duckdb_cast_function cast_function,
int64_t cost
);
Parameter
cast_function: Das Cast-Funktionsobjekt.cost: Die zu setzenden Kosten.
duckdb_cast_function_set_function
Setzt die zu verwendende Cast-Funktion.
Syntax
void duckdb_cast_function_set_function(
duckdb_cast_function cast_function,
duckdb_cast_function_t function
);
Parameter
cast_function: Das Cast-Funktionsobjekt.function: Die zu setzende Funktion.
duckdb_cast_function_set_extra_info
Weist der Cast-Funktion Extra-Informationen zu, die z. B. während der Ausführung abgerufen werden können.
Syntax
void duckdb_cast_function_set_extra_info(
duckdb_cast_function cast_function,
void *extra_info,
duckdb_delete_callback_t destroy
);
Parameter
extra_info: Die Extra-Informationenrmationdestroy: Der Callback, der aufgerufen wird, um die Extra-Informationen zu zerstören (falls vorhanden)
duckdb_cast_function_get_extra_info
Ruft die Extra-Informationen der Funktion ab, wie in duckdb_cast_function_set_extra_info gesetzt.
Syntax
void *duckdb_cast_function_get_extra_info(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt.
Rückgabewert
Die Extra-Informationen.
duckdb_cast_function_get_cast_mode
Ruft den Cast-Ausführungsmodus aus den angegebenen Funktionsinformationen ab.
Syntax
duckdb_cast_mode duckdb_cast_function_get_cast_mode(
duckdb_function_info info
);
Parameter
info: Das Info-Objekt.
Rückgabewert
The cast mode.
duckdb_cast_function_set_error
Meldet, dass bei der Ausführung der Cast-Funktion ein Fehler aufgetreten ist.
Syntax
void duckdb_cast_function_set_error(
duckdb_function_info info,
const char *error
);
Parameter
info: Das Info-Objekt.error: Die Fehlermeldung.
duckdb_cast_function_set_row_error
Meldet, dass bei der Ausführung der Cast-Funktion ein Fehler aufgetreten ist, und setzt die entsprechende Ausgabezeile auf NULL.
Syntax
void duckdb_cast_function_set_row_error(
duckdb_function_info info,
const char *error,
idx_t row,
duckdb_vector output
);
Parameter
info: Das Info-Objekt.error: Die Fehlermeldung.row: Der Index der Zeile im Ausgabevektor, die auf NULL gesetzt wird.output: Der Ausgabevektor.
duckdb_register_cast_function
Registriert eine Cast-Funktion in der angegebenen Verbindung.
Syntax
duckdb_state duckdb_register_cast_function(
duckdb_connection con,
duckdb_cast_function cast_function
);
Parameter
con: Die zu verwendende Verbindung.cast_function: Die zu registrierende Cast-Funktion.
Rückgabewert
Ob die Registrierung erfolgreich war.
duckdb_destroy_cast_function
Zerstört das Cast-Funktionsobjekt.
Syntax
void duckdb_destroy_cast_function(
duckdb_cast_function *cast_function
);
Parameter
cast_function: Das Cast-Funktionsobjekt.
duckdb_destroy_expression
Zerstört den Ausdruck und gibt seinen Speicher frei.
Syntax
void duckdb_destroy_expression(
duckdb_expression *expr
);
Parameter
expr: Ein Zeiger auf den Ausdruck.
duckdb_expression_return_type
Gibt den Rückgabetyp eines Ausdrucks zurück.
Syntax
duckdb_logical_type duckdb_expression_return_type(
duckdb_expression expr
);
Parameter
expr: Der Ausdruck.
Rückgabewert
Der Rückgabetyp. Muss mit duckdb_destroy_logical_type zerstört werden.
duckdb_expression_is_foldable
Gibt zurück, ob der Ausdruck zu einem Wert faltbar ist.
Syntax
bool duckdb_expression_is_foldable(
duckdb_expression expr
);
Parameter
expr: Der Ausdruck.
Rückgabewert
True, wenn der Ausdruck faltbar ist, sonst false.
duckdb_expression_fold
Faltet einen Ausdruck und erzeugt einen gefalteten Wert.
Syntax
duckdb_error_data duckdb_expression_fold(
duckdb_client_context context,
duckdb_expression expr,
duckdb_value *out_value
);
Parameter
context: Der Client-Kontext.expr: Der Ausdruck. Must be foldable.out_value: Der gefaltete Wert, wenn die Faltung erfolgreich war. Must be destroyed withduckdb_destroy_value.
Rückgabewert
Die Fehlerdaten. Müssen mit duckdb_destroy_error_data zerstört werden.