NAME

DBD::DuckDB::FFI - DuckDB C functions

SYNOPSIS

use DBD::DuckDB::FFI qw(:all);

say duckdb_library_version();

DESCRIPTION

DBD::DuckDB use FFI::Platypus for access to libduckdb C library.

FUNCTIONS

Open Connect

  • duckdb_create_instance_cache

  • duckdb_get_or_create_from_cache

  • duckdb_destroy_instance_cache

  • duckdb_open

  • duckdb_open_ext

  • duckdb_close

  • duckdb_connect

  • duckdb_interrupt

  • duckdb_query_progress

  • duckdb_disconnect

  • duckdb_connection_get_client_context

  • duckdb_connection_get_arrow_options

  • duckdb_client_context_get_connection_id

  • duckdb_destroy_client_context

  • duckdb_destroy_arrow_options

  • duckdb_library_version

  • duckdb_get_table_names

Configuration

  • duckdb_create_config

  • duckdb_config_count

  • duckdb_get_config_flag

  • duckdb_set_config

  • duckdb_destroy_config

Error Data

  • duckdb_create_error_data

  • duckdb_destroy_error_data

  • duckdb_error_data_error_type

  • duckdb_error_data_message

  • duckdb_error_data_has_error

Query Execution

  • duckdb_query

  • duckdb_destroy_result

  • duckdb_column_name

  • duckdb_column_type

  • duckdb_result_statement_type

  • duckdb_column_logical_type

  • duckdb_result_get_arrow_options

  • duckdb_column_count

  • duckdb_row_count

  • duckdb_rows_changed

  • duckdb_column_data

  • duckdb_nullmask_data

  • duckdb_result_error

  • duckdb_result_error_type

Result Functions

  • duckdb_result_get_chunk

  • duckdb_result_is_streaming

  • duckdb_result_chunk_count

  • duckdb_result_return_type

Safe Fetch Functions

  • duckdb_value_boolean

  • duckdb_value_int8

  • duckdb_value_int16

  • duckdb_value_int32

  • duckdb_value_int64

  • duckdb_value_hugeint

  • duckdb_value_uhugeint

  • duckdb_value_decimal

  • duckdb_value_uint8

  • duckdb_value_uint16

  • duckdb_value_uint32

  • duckdb_value_uint64

  • duckdb_value_float

  • duckdb_value_double

  • duckdb_value_date

  • duckdb_value_time

  • duckdb_value_timestamp

  • duckdb_value_interval

  • duckdb_value_varchar

  • duckdb_value_string

  • duckdb_value_varchar_internal

  • duckdb_value_string_internal

  • duckdb_value_blob

  • duckdb_value_is_null

Helpers

  • duckdb_malloc

  • duckdb_free

  • duckdb_vector_size

  • duckdb_string_is_inlined

  • duckdb_string_t_length

  • duckdb_string_t_data

Date Time Timestamp Helpers

  • duckdb_from_date

  • duckdb_to_date

  • duckdb_is_finite_date

  • duckdb_from_time

  • duckdb_create_time_tz

  • duckdb_from_time_tz

  • duckdb_to_time

  • duckdb_from_timestamp

  • duckdb_to_timestamp

  • duckdb_is_finite_timestamp

  • duckdb_is_finite_timestamp_s

  • duckdb_is_finite_timestamp_ms

  • duckdb_is_finite_timestamp_ns

Hugeint Helpers

  • duckdb_hugeint_to_double

  • duckdb_double_to_hugeint

Unsigned Hugeint Helpers

  • duckdb_uhugeint_to_double

  • duckdb_double_to_uhugeint

Decimal Helpers

  • duckdb_double_to_decimal

  • duckdb_decimal_to_double

Prepared Statements

  • duckdb_prepare

  • duckdb_destroy_prepare

  • duckdb_prepare_error

  • duckdb_nparams

  • duckdb_parameter_name

  • duckdb_param_type

  • duckdb_param_logical_type

  • duckdb_clear_bindings

  • duckdb_prepared_statement_type

  • duckdb_prepared_statement_column_count

  • duckdb_prepared_statement_column_name

  • duckdb_prepared_statement_column_logical_type

  • duckdb_prepared_statement_column_type

Bind Values to Prepared Statements

  • duckdb_bind_value

  • duckdb_bind_parameter_index

  • duckdb_bind_boolean

  • duckdb_bind_int8

  • duckdb_bind_int16

  • duckdb_bind_int32

  • duckdb_bind_int64

  • duckdb_bind_hugeint

  • duckdb_bind_uhugeint

  • duckdb_bind_decimal

  • duckdb_bind_uint8

  • duckdb_bind_uint16

  • duckdb_bind_uint32

  • duckdb_bind_uint64

  • duckdb_bind_float

  • duckdb_bind_double

  • duckdb_bind_date

  • duckdb_bind_time

  • duckdb_bind_timestamp

  • duckdb_bind_timestamp_tz

  • duckdb_bind_interval

  • duckdb_bind_varchar

  • duckdb_bind_varchar_length

  • duckdb_bind_blob

  • duckdb_bind_null

Execute Prepared Statements

  • duckdb_execute_prepared

  • duckdb_execute_prepared_streaming

Extract Statements

  • duckdb_extract_statements

  • duckdb_prepare_extracted_statement

  • duckdb_extract_statements_error

  • duckdb_destroy_extracted

Pending Result Interface

  • duckdb_pending_prepared

  • duckdb_pending_prepared_streaming

  • duckdb_destroy_pending

  • duckdb_pending_error

  • duckdb_pending_execute_task

  • duckdb_pending_execute_check_state

  • duckdb_execute_pending

  • duckdb_pending_execution_is_finished

Value Interface

  • duckdb_destroy_value

  • duckdb_create_varchar

  • duckdb_create_varchar_length

  • duckdb_create_bool

  • duckdb_create_int8

  • duckdb_create_uint8

  • duckdb_create_int16

  • duckdb_create_uint16

  • duckdb_create_int32

  • duckdb_create_uint32

  • duckdb_create_uint64

  • duckdb_create_int64

  • duckdb_create_hugeint

  • duckdb_create_uhugeint

  • duckdb_create_bignum

  • duckdb_create_decimal

  • duckdb_create_float

  • duckdb_create_double

  • duckdb_create_date

  • duckdb_create_time

  • duckdb_create_time_ns

  • duckdb_create_time_tz_value

  • duckdb_create_timestamp

  • duckdb_create_timestamp_tz

  • duckdb_create_timestamp_s

  • duckdb_create_timestamp_ms

  • duckdb_create_timestamp_ns

  • duckdb_create_interval

  • duckdb_create_blob

  • duckdb_create_bit

  • duckdb_create_uuid

  • duckdb_get_bool

  • duckdb_get_int8

  • duckdb_get_uint8

  • duckdb_get_int16

  • duckdb_get_uint16

  • duckdb_get_int32

  • duckdb_get_uint32

  • duckdb_get_int64

  • duckdb_get_uint64

  • duckdb_get_hugeint

  • duckdb_get_uhugeint

  • duckdb_get_bignum

  • duckdb_get_decimal

  • duckdb_get_float

  • duckdb_get_double

  • duckdb_get_date

  • duckdb_get_time

  • duckdb_get_time_ns

  • duckdb_get_time_tz

  • duckdb_get_timestamp

  • duckdb_get_timestamp_tz

  • duckdb_get_timestamp_s

  • duckdb_get_timestamp_ms

  • duckdb_get_timestamp_ns

  • duckdb_get_interval

  • duckdb_get_value_type

  • duckdb_get_blob

  • duckdb_get_bit

  • duckdb_get_uuid

  • duckdb_get_varchar

  • duckdb_create_struct_value

  • duckdb_create_list_value

  • duckdb_create_array_value

  • duckdb_create_map_value

  • duckdb_create_union_value

  • duckdb_get_map_size

  • duckdb_get_map_key

  • duckdb_get_map_value

  • duckdb_is_null_value

  • duckdb_create_null_value

  • duckdb_get_list_size

  • duckdb_get_list_child

  • duckdb_create_enum_value

  • duckdb_get_enum_value

  • duckdb_get_struct_child

  • duckdb_value_to_string

Logical Type Interface

  • duckdb_create_logical_type

  • duckdb_logical_type_get_alias

  • duckdb_logical_type_set_alias

  • duckdb_create_list_type

  • duckdb_create_array_type

  • duckdb_create_map_type

  • duckdb_create_union_type

  • duckdb_create_struct_type

  • duckdb_create_enum_type

  • duckdb_create_decimal_type

  • duckdb_get_type_id

  • duckdb_decimal_width

  • duckdb_decimal_scale

  • duckdb_decimal_internal_type

  • duckdb_enum_internal_type

  • duckdb_enum_dictionary_size

  • duckdb_enum_dictionary_value

  • duckdb_list_type_child_type

  • duckdb_array_type_child_type

  • duckdb_array_type_array_size

  • duckdb_map_type_key_type

  • duckdb_map_type_value_type

  • duckdb_struct_type_child_count

  • duckdb_struct_type_child_name

  • duckdb_struct_type_child_type

  • duckdb_union_type_member_count

  • duckdb_union_type_member_name

  • duckdb_union_type_member_type

  • duckdb_destroy_logical_type

  • duckdb_register_logical_type

Data Chunk Interface

  • duckdb_create_data_chunk

  • duckdb_destroy_data_chunk

  • duckdb_data_chunk_reset

  • duckdb_data_chunk_get_column_count

  • duckdb_data_chunk_get_vector

  • duckdb_data_chunk_get_size

  • duckdb_data_chunk_set_size

Vector Interface

  • duckdb_create_vector

  • duckdb_destroy_vector

  • duckdb_vector_get_column_type

  • duckdb_vector_get_data

  • duckdb_vector_get_validity

  • duckdb_vector_ensure_validity_writable

  • duckdb_vector_assign_string_element

  • duckdb_vector_assign_string_element_len

  • duckdb_list_vector_get_child

  • duckdb_list_vector_get_size

  • duckdb_list_vector_set_size

  • duckdb_list_vector_reserve

  • duckdb_struct_vector_get_child

  • duckdb_array_vector_get_child

  • duckdb_slice_vector

  • duckdb_vector_copy_sel

  • duckdb_vector_reference_value

  • duckdb_vector_reference_vector

Validity Mask Functions

  • duckdb_validity_row_is_valid

  • duckdb_validity_set_row_validity

  • duckdb_validity_set_row_invalid

  • duckdb_validity_set_row_valid

Scalar Functions

  • duckdb_create_scalar_function

  • duckdb_destroy_scalar_function

  • duckdb_scalar_function_set_name

  • duckdb_scalar_function_set_varargs

  • duckdb_scalar_function_set_special_handling

  • duckdb_scalar_function_set_volatile

  • duckdb_scalar_function_add_parameter

  • duckdb_scalar_function_set_return_type

  • duckdb_scalar_function_set_extra_info

  • duckdb_scalar_function_set_bind

  • duckdb_scalar_function_set_bind_data

  • duckdb_scalar_function_set_bind_data_copy

  • duckdb_scalar_function_bind_set_error

  • duckdb_scalar_function_set_function

  • duckdb_register_scalar_function

  • duckdb_scalar_function_get_extra_info

  • duckdb_scalar_function_bind_get_extra_info

  • duckdb_scalar_function_get_bind_data

  • duckdb_scalar_function_get_client_context

  • duckdb_scalar_function_set_error

  • duckdb_create_scalar_function_set

  • duckdb_destroy_scalar_function_set

  • duckdb_add_scalar_function_to_set

  • duckdb_register_scalar_function_set

  • duckdb_scalar_function_bind_get_argument_count

  • duckdb_scalar_function_bind_get_argument

Selection Vector Interface

  • duckdb_create_selection_vector

  • duckdb_destroy_selection_vector

  • duckdb_selection_vector_get_data_ptr

Aggregate Functions

  • duckdb_create_aggregate_function

  • duckdb_destroy_aggregate_function

  • duckdb_aggregate_function_set_name

  • duckdb_aggregate_function_add_parameter

  • duckdb_aggregate_function_set_return_type

  • duckdb_aggregate_function_set_functions

  • duckdb_aggregate_function_set_destructor

  • duckdb_register_aggregate_function

  • duckdb_aggregate_function_set_special_handling

  • duckdb_aggregate_function_set_extra_info

  • duckdb_aggregate_function_get_extra_info

  • duckdb_aggregate_function_set_error

  • duckdb_create_aggregate_function_set

  • duckdb_destroy_aggregate_function_set

  • duckdb_add_aggregate_function_to_set

  • duckdb_register_aggregate_function_set

Table Functions

  • duckdb_create_table_function

  • duckdb_destroy_table_function

  • duckdb_table_function_set_name

  • duckdb_table_function_add_parameter

  • duckdb_table_function_add_named_parameter

  • duckdb_table_function_set_extra_info

  • duckdb_table_function_set_bind

  • duckdb_table_function_set_init

  • duckdb_table_function_set_local_init

  • duckdb_table_function_set_function

  • duckdb_table_function_supports_projection_pushdown

  • duckdb_register_table_function

Table Function Bind

  • duckdb_bind_get_extra_info

  • duckdb_table_function_get_client_context

  • duckdb_bind_add_result_column

  • duckdb_bind_get_parameter_count

  • duckdb_bind_get_parameter

  • duckdb_bind_get_named_parameter

  • duckdb_bind_set_bind_data

  • duckdb_bind_set_cardinality

  • duckdb_bind_set_error

Table Function Init

  • duckdb_init_get_extra_info

  • duckdb_init_get_bind_data

  • duckdb_init_set_init_data

  • duckdb_init_get_column_count

  • duckdb_init_get_column_index

  • duckdb_init_set_max_threads

  • duckdb_init_set_error

Table Function

  • duckdb_function_get_extra_info

  • duckdb_function_get_bind_data

  • duckdb_function_get_init_data

  • duckdb_function_get_local_init_data

  • duckdb_function_set_error

Replacement Scans

  • duckdb_add_replacement_scan

  • duckdb_replacement_scan_set_function_name

  • duckdb_replacement_scan_add_parameter

  • duckdb_replacement_scan_set_error

Profiling Info

  • duckdb_get_profiling_info

  • duckdb_profiling_info_get_value

  • duckdb_profiling_info_get_metrics

  • duckdb_profiling_info_get_child_count

  • duckdb_profiling_info_get_child

Appender

  • duckdb_appender_create

  • duckdb_appender_create_ext

  • duckdb_appender_create_query

  • duckdb_appender_column_count

  • duckdb_appender_column_type

  • duckdb_appender_error

  • duckdb_appender_error_data

  • duckdb_appender_flush

  • duckdb_appender_close

  • duckdb_appender_destroy

  • duckdb_appender_add_column

  • duckdb_appender_clear_columns

  • duckdb_appender_begin_row

  • duckdb_appender_end_row

  • duckdb_append_default

  • duckdb_append_default_to_chunk

  • duckdb_append_bool

  • duckdb_append_int8

  • duckdb_append_int16

  • duckdb_append_int32

  • duckdb_append_int64

  • duckdb_append_hugeint

  • duckdb_append_uint8

  • duckdb_append_uint16

  • duckdb_append_uint32

  • duckdb_append_uint64

  • duckdb_append_uhugeint

  • duckdb_append_float

  • duckdb_append_double

  • duckdb_append_date

  • duckdb_append_time

  • duckdb_append_timestamp

  • duckdb_append_interval

  • duckdb_append_varchar

  • duckdb_append_varchar_length

  • duckdb_append_blob

  • duckdb_append_null

  • duckdb_append_value

  • duckdb_append_data_chunk

Table Description

  • duckdb_table_description_create

  • duckdb_table_description_create_ext

  • duckdb_table_description_destroy

  • duckdb_table_description_error

  • duckdb_column_has_default

  • duckdb_table_description_get_column_name

Arrow Interface

  • duckdb_to_arrow_schema

  • duckdb_data_chunk_to_arrow

  • duckdb_schema_from_arrow

  • duckdb_data_chunk_from_arrow

  • duckdb_destroy_arrow_converted_schema

  • duckdb_query_arrow

  • duckdb_query_arrow_schema

  • duckdb_prepared_arrow_schema

  • duckdb_result_arrow_array

  • duckdb_query_arrow_array

  • duckdb_arrow_column_count

  • duckdb_arrow_row_count

  • duckdb_arrow_rows_changed

  • duckdb_query_arrow_error

  • duckdb_destroy_arrow

  • duckdb_destroy_arrow_stream

  • duckdb_execute_prepared_arrow

  • duckdb_arrow_scan

  • duckdb_arrow_array_scan

Threading Information

  • duckdb_execute_tasks

  • duckdb_create_task_state

  • duckdb_execute_tasks_state

  • duckdb_execute_n_tasks_state

  • duckdb_finish_execution

  • duckdb_task_state_is_finished

  • duckdb_destroy_task_state

  • duckdb_execution_is_finished

Streaming Result Interface

  • duckdb_stream_fetch_chunk

  • duckdb_fetch_chunk

Cast Functions

  • duckdb_create_cast_function

  • duckdb_cast_function_set_source_type

  • duckdb_cast_function_set_target_type

  • duckdb_cast_function_set_implicit_cast_cost

  • duckdb_cast_function_set_function

  • duckdb_cast_function_set_extra_info

  • duckdb_cast_function_get_extra_info

  • duckdb_cast_function_get_cast_mode

  • duckdb_cast_function_set_error

  • duckdb_cast_function_set_row_error

  • duckdb_register_cast_function

  • duckdb_destroy_cast_function

Expression Interface

  • duckdb_destroy_expression

  • duckdb_expression_return_type

  • duckdb_expression_is_foldable

  • duckdb_expression_fold

SUPPORT

Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at https://github.com/giterlizzi/perl-DBD-DuckDB/issues. You will be notified automatically of any progress on your issue.

Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

https://github.com/giterlizzi/perl-DBD-DuckDB

git clone https://github.com/giterlizzi/perl-DBD-DuckDB.git

AUTHOR

  • Giuseppe Di Terlizzi <gdt@cpan.org>

LICENSE AND COPYRIGHT

This software is copyright (c) 2024-2025 by Giuseppe Di Terlizzi.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.