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.