Kùzu C API
Loading...
Searching...
No Matches
kuzu.h
Go to the documentation of this file.
1#pragma once
2#include <stdbool.h>
3#include <stdint.h>
4#include <time.h>
5#ifdef _WIN32
6#include <windows.h>
7#endif
8
9/* Export header from common/api.h */
10// Helpers
11#if defined _WIN32 || defined __CYGWIN__
12#define KUZU_HELPER_DLL_IMPORT __declspec(dllimport)
13#define KUZU_HELPER_DLL_EXPORT __declspec(dllexport)
14#define KUZU_HELPER_DLL_LOCAL
15#define KUZU_HELPER_DEPRECATED __declspec(deprecated)
16#else
17#define KUZU_HELPER_DLL_IMPORT __attribute__((visibility("default")))
18#define KUZU_HELPER_DLL_EXPORT __attribute__((visibility("default")))
19#define KUZU_HELPER_DLL_LOCAL __attribute__((visibility("hidden")))
20#define KUZU_HELPER_DEPRECATED __attribute__((__deprecated__))
21#endif
22
23#ifdef KUZU_STATIC_DEFINE
24#define KUZU_API
25#define KUZU_NO_EXPORT
26#else
27#ifndef KUZU_API
28#ifdef KUZU_EXPORTS
29/* We are building this library */
30#define KUZU_API KUZU_HELPER_DLL_EXPORT
31#else
32/* We are using this library */
33#define KUZU_API KUZU_HELPER_DLL_IMPORT
34#endif
35#endif
36
37#endif
38
39#ifndef KUZU_DEPRECATED
40#define KUZU_DEPRECATED KUZU_HELPER_DEPRECATED
41#endif
42
43#ifndef KUZU_DEPRECATED_EXPORT
44#define KUZU_DEPRECATED_EXPORT KUZU_API KUZU_DEPRECATED
45#endif
46/* end export header */
47
48// The Arrow C data interface.
49// https://arrow.apache.org/docs/format/CDataInterface.html
50
51#include <stdint.h>
52
53#ifdef __cplusplus
54extern "C" {
55#endif
56
57#ifndef ARROW_C_DATA_INTERFACE
58#define ARROW_C_DATA_INTERFACE
59
60#define ARROW_FLAG_DICTIONARY_ORDERED 1
61#define ARROW_FLAG_NULLABLE 2
62#define ARROW_FLAG_MAP_KEYS_SORTED 4
63
65 // Array type description
66 const char* format;
67 const char* name;
68 const char* metadata;
69 int64_t flags;
70 int64_t n_children;
73
74 // Release callback
75 void (*release)(struct ArrowSchema*);
76 // Opaque producer-specific data
78};
79
80struct ArrowArray {
81 // Array data description
82 int64_t length;
83 int64_t null_count;
84 int64_t offset;
85 int64_t n_buffers;
86 int64_t n_children;
87 const void** buffers;
90
91 // Release callback
92 void (*release)(struct ArrowArray*);
93 // Opaque producer-specific data
95};
96
97#endif // ARROW_C_DATA_INTERFACE
98
99#ifdef __cplusplus
100}
101#endif
102
103#ifdef __cplusplus
104#define KUZU_C_API extern "C" KUZU_API
105#else
106#define KUZU_C_API KUZU_API
107#endif
108
112typedef struct {
113 // bufferPoolSize Max size of the buffer pool in bytes.
114 // The larger the buffer pool, the more data from the database files is kept in memory,
115 // reducing the amount of File I/O
117 // The maximum number of threads to use during query execution
119 // Whether or not to compress data on-disk for supported types
121 // If true, open the database in read-only mode. No write transaction is allowed on the Database
122 // object. If false, open the database read-write.
124 // The maximum size of the database in bytes. Note that this is introduced temporarily for now
125 // to get around with the default 8TB mmap address space limit under some environment. This
126 // will be removed once we implemente a better solution later. The value is default to 1 << 43
127 // (8TB) under 64-bit environment and 1GB under 32-bit one (see `DEFAULT_VM_REGION_MAX_SIZE`).
128 uint64_t max_db_size;
130
134typedef struct {
137
143typedef struct {
146
155
159typedef struct {
163
167typedef struct {
171
175typedef struct {
178
182typedef struct {
183 void* _value;
185} kuzu_value;
186
190typedef struct {
191 uint64_t table_id;
192 uint64_t offset;
194
198typedef struct {
199 // Days since 1970-01-01 00:00:00 UTC.
200 int32_t days;
202
207typedef struct {
208 // Nanoseconds since 1970-01-01 00:00:00 UTC.
209 int64_t value;
211
216typedef struct {
217 // Milliseconds since 1970-01-01 00:00:00 UTC.
218 int64_t value;
220
225typedef struct {
226 // Seconds since 1970-01-01 00:00:00 UTC.
227 int64_t value;
229
234typedef struct {
235 // Microseconds since 1970-01-01 00:00:00 UTC.
236 int64_t value;
238
243typedef struct {
244 // Microseconds since 1970-01-01 00:00:00 UTC.
245 int64_t value;
247
251typedef struct {
252 int32_t months;
253 int32_t days;
254 int64_t micros;
256
261typedef struct {
264
265typedef struct {
266 uint64_t low;
267 int64_t high;
269
273typedef enum {
278 // SERIAL is a special data type that is used to represent a sequence of INT64 values that are
279 // incremented by 1 starting from 0.
281 // fixed size types
303 // variable size types
313 KUZU_UUID = 59
315
319typedef enum { KuzuSuccess = 0, KuzuError = 1 } kuzu_state;
320
321// Database
331KUZU_C_API kuzu_state kuzu_database_init(const char* database_path,
332 kuzu_system_config system_config, kuzu_database* out_database);
338
340
341// Connection
350 kuzu_connection* out_connection);
363 uint64_t num_threads);
364
373 uint64_t* out_result);
382 kuzu_query_result* out_query_result);
391 kuzu_prepared_statement* out_prepared_statement);
400 kuzu_prepared_statement* prepared_statement, kuzu_query_result* out_query_result);
413 uint64_t timeout_in_ms);
414
415// PreparedStatement
430 kuzu_prepared_statement* prepared_statement);
439 const char* param_name, bool value);
448 kuzu_prepared_statement* prepared_statement, const char* param_name, int64_t value);
457 kuzu_prepared_statement* prepared_statement, const char* param_name, int32_t value);
466 kuzu_prepared_statement* prepared_statement, const char* param_name, int16_t value);
475 const char* param_name, int8_t value);
484 kuzu_prepared_statement* prepared_statement, const char* param_name, uint64_t value);
493 kuzu_prepared_statement* prepared_statement, const char* param_name, uint32_t value);
502 kuzu_prepared_statement* prepared_statement, const char* param_name, uint16_t value);
511 kuzu_prepared_statement* prepared_statement, const char* param_name, uint8_t value);
512
521 kuzu_prepared_statement* prepared_statement, const char* param_name, double value);
530 kuzu_prepared_statement* prepared_statement, const char* param_name, float value);
539 const char* param_name, kuzu_date_t value);
548 kuzu_prepared_statement* prepared_statement, const char* param_name, kuzu_timestamp_ns_t value);
557 kuzu_prepared_statement* prepared_statement, const char* param_name,
567 kuzu_prepared_statement* prepared_statement, const char* param_name, kuzu_timestamp_tz_t value);
576 kuzu_prepared_statement* prepared_statement, const char* param_name, kuzu_timestamp_ms_t value);
585 kuzu_prepared_statement* prepared_statement, const char* param_name, kuzu_timestamp_t value);
594 kuzu_prepared_statement* prepared_statement, const char* param_name, kuzu_interval_t value);
603 kuzu_prepared_statement* prepared_statement, const char* param_name, const char* value);
612 kuzu_prepared_statement* prepared_statement, const char* param_name, kuzu_value* value);
613
614// QueryResult
644 uint64_t index, char** out_column_name);
653 uint64_t index, kuzu_logical_type* out_column_data_type);
666 kuzu_query_summary* out_query_summary);
679 kuzu_flat_tuple* out_flat_tuple);
694 kuzu_query_result* out_next_query_result);
695
707
718 struct ArrowSchema* out_schema);
719
732 int64_t chunk_size, struct ArrowArray* out_arrow_array);
733
734// FlatTuple
748 kuzu_value* out_value);
755
756// DataType
757// TODO(Chang): Refactor the datatype constructor to follow the cpp way of creating dataTypes.
768 uint64_t num_elements_in_array, kuzu_logical_type* out_type);
799 uint64_t* out_result);
800
801// Value
822KUZU_C_API void kuzu_value_set_null(kuzu_value* value, bool is_null);
988 kuzu_value* out_value);
1005 char** out_result);
1015 kuzu_value* out_value);
1024 kuzu_value* out_value);
1025
1033 kuzu_value* out_value);
1166 kuzu_timestamp_ns_t* out_result);
1174 kuzu_timestamp_ms_t* out_result);
1183 kuzu_timestamp_sec_t* out_result);
1191 kuzu_timestamp_tz_t* out_result);
1257 char** out_result);
1266 kuzu_value* out_value);
1311 char** out_result);
1320 kuzu_value* out_value);
1335 kuzu_data_type_id* out_type);
1350KUZU_C_API kuzu_state kuzu_rdf_variant_get_blob(kuzu_value* rdf_variant, uint8_t** out_result);
1443 kuzu_timestamp_t* out_result);
1451 kuzu_interval_t* out_result);
1466KUZU_C_API void kuzu_destroy_blob(uint8_t* blob);
1467
1468// QuerySummary
1484
1485// Utility functions
1507 struct tm* out_result);
1590KUZU_C_API void kuzu_interval_to_difftime(kuzu_interval_t interval, double* out_result);
1596KUZU_C_API void kuzu_interval_from_difftime(double difftime, kuzu_interval_t* out_result);
1597
1598// Version
1603
1608#undef KUZU_C_API
KUZU_C_API char * kuzu_query_result_to_string(kuzu_query_result *query_result)
Returns the query result as a string.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_uint32(kuzu_value *rdf_variant, uint32_t *out_result)
Returns the uint32 value of the given rdf variant. The value must be of type UINT32.
KUZU_C_API kuzu_value * kuzu_value_create_timestamp(kuzu_timestamp_t val_)
Creates a value with timestamp type and the given timestamp value. Caller is responsible for destroyi...
KUZU_C_API kuzu_state kuzu_connection_init(kuzu_database *database, kuzu_connection *out_connection)
Allocates memory and creates a connection to the database. Caller is responsible for calling kuzu_con...
KUZU_C_API bool kuzu_prepared_statement_is_success(kuzu_prepared_statement *prepared_statement)
KUZU_C_API void kuzu_value_get_data_type(kuzu_value *value, kuzu_logical_type *out_type)
Returns internal type of the given value.
KUZU_C_API kuzu_state kuzu_connection_prepare(kuzu_connection *connection, const char *query, kuzu_prepared_statement *out_prepared_statement)
Prepares the given query and returns the prepared statement.
KUZU_C_API bool kuzu_query_result_has_next(kuzu_query_result *query_result)
Returns true if we have not consumed all tuples in the query result, false otherwise.
KUZU_C_API kuzu_state kuzu_timestamp_sec_from_tm(struct tm tm, kuzu_timestamp_sec_t *out_result)
Convert tm struct to timestamp_sec value.
KUZU_C_API kuzu_state kuzu_node_val_get_property_size(kuzu_value *node_val, uint64_t *out_value)
Returns the number of properties of the given node value.
KUZU_C_API kuzu_value * kuzu_value_create_internal_id(kuzu_internal_id_t val_)
Creates a value with internal_id type and the given internal_id value. Caller is responsible for dest...
KUZU_C_API double kuzu_query_summary_get_compiling_time(kuzu_query_summary *query_summary)
Returns the compilation time of the given query summary in milliseconds.
KUZU_C_API bool kuzu_value_is_null(kuzu_value *value)
Returns true if the given value is NULL, false otherwise.
KUZU_C_API kuzu_state kuzu_query_result_get_next(kuzu_query_result *query_result, kuzu_flat_tuple *out_flat_tuple)
Returns the next tuple in the query result. Throws an exception if there is no more tuple.
KUZU_C_API kuzu_state kuzu_connection_set_max_num_thread_for_exec(kuzu_connection *connection, uint64_t num_threads)
Sets the maximum number of threads to use for executing queries.
KUZU_C_API kuzu_value * kuzu_value_create_interval(kuzu_interval_t val_)
Creates a value with interval type and the given interval value. Caller is responsible for destroying...
KUZU_C_API kuzu_state kuzu_rdf_variant_get_int32(kuzu_value *rdf_variant, int32_t *out_result)
Returns the int32 value of the given rdf variant. The value must be of type INT32.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_blob(kuzu_value *rdf_variant, uint8_t **out_result)
Returns the blob value of the given rdf variant. The returned buffer is null-terminated similar to a ...
KUZU_C_API void kuzu_data_type_destroy(kuzu_logical_type *data_type)
Destroys the given data type instance.
KUZU_C_API kuzu_state kuzu_value_get_struct_field_value(kuzu_value *value, uint64_t index, kuzu_value *out_value)
Returns the field value at index of the given struct value. The value must be of physical type STRUCT...
KUZU_C_API kuzu_state kuzu_timestamp_tz_to_tm(kuzu_timestamp_tz_t timestamp, struct tm *out_result)
Convert timestamp_tz to corresponding tm struct.
KUZU_C_API kuzu_state kuzu_value_get_float(kuzu_value *value, float *out_result)
Returns the float value of the given value. The value must be of type FLOAT.
KUZU_C_API kuzu_state kuzu_database_init(const char *database_path, kuzu_system_config system_config, kuzu_database *out_database)
Allocates memory and creates a kuzu database instance at database_path with bufferPoolSize=buffer_poo...
KUZU_C_API kuzu_state kuzu_rdf_variant_get_interval(kuzu_value *rdf_variant, kuzu_interval_t *out_result)
Returns the interval value of the given rdf variant. The value must be of type INTERVAL.
KUZU_C_API kuzu_state kuzu_rel_val_get_src_id_val(kuzu_value *rel_val, kuzu_value *out_value)
Returns the internal id value of the source node of the given rel value as a kuzu value.
KUZU_C_API void kuzu_query_summary_destroy(kuzu_query_summary *query_summary)
Destroys the given query summary.
KUZU_C_API kuzu_value * kuzu_value_create_timestamp_sec(kuzu_timestamp_sec_t val_)
Creates a value with timestamp_sec type and the given timestamp value. Caller is responsible for dest...
KUZU_C_API kuzu_state kuzu_connection_execute(kuzu_connection *connection, kuzu_prepared_statement *prepared_statement, kuzu_query_result *out_query_result)
Executes the prepared_statement using connection.
KUZU_C_API kuzu_state kuzu_query_result_get_column_data_type(kuzu_query_result *query_result, uint64_t index, kuzu_logical_type *out_column_data_type)
Returns the data type of the column at the given index.
KUZU_C_API kuzu_state kuzu_rel_val_get_property_size(kuzu_value *rel_val, uint64_t *out_value)
Returns the number of properties of the given rel value.
KUZU_C_API kuzu_state kuzu_value_get_int32(kuzu_value *value, int32_t *out_result)
Returns the int32 value of the given value. The value must be of type INT32.
KUZU_C_API char * kuzu_prepared_statement_get_error_message(kuzu_prepared_statement *prepared_statement)
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_int64(kuzu_prepared_statement *prepared_statement, const char *param_name, int64_t value)
Binds the given int64_t value to the given parameter name in the prepared statement.
KUZU_C_API char * kuzu_get_version()
Returns the version of the Kùzu library.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_uint8(kuzu_value *rdf_variant, uint8_t *out_result)
Returns the uint8 value of the given rdf variant. The value must be of type UINT8.
KUZU_C_API void kuzu_prepared_statement_destroy(kuzu_prepared_statement *prepared_statement)
Destroys the prepared statement instance and frees the allocated memory.
KUZU_C_API kuzu_state kuzu_int128_t_to_string(kuzu_int128_t val, char **out_result)
convert int128 to corresponding string.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_int64(kuzu_value *rdf_variant, int64_t *out_result)
Returns the int64 value of the given rdf variant. The value must be of type INT64.
KUZU_C_API kuzu_state kuzu_value_get_int128(kuzu_value *value, kuzu_int128_t *out_result)
Returns the int128 value of the given value. The value must be of type INT128.
KUZU_C_API void kuzu_query_result_reset_iterator(kuzu_query_result *query_result)
Resets the iterator of the query result to the beginning of the query result.
KUZU_C_API kuzu_state kuzu_value_get_uint32(kuzu_value *value, uint32_t *out_result)
Returns the uint32 value of the given value. The value must be of type UINT32.
KUZU_C_API void kuzu_destroy_string(char *str)
Destroys any string created by the Kùzu C API, including both the error message and the values return...
KUZU_C_API kuzu_state kuzu_timestamp_ns_to_tm(kuzu_timestamp_ns_t timestamp, struct tm *out_result)
Convert timestamp_ns to corresponding tm struct.
KUZU_C_API kuzu_state kuzu_value_get_uint16(kuzu_value *value, uint16_t *out_result)
Returns the uint16 value of the given value. The value must be of type UINT16.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_bool(kuzu_prepared_statement *prepared_statement, const char *param_name, bool value)
Binds the given boolean value to the given parameter name in the prepared statement.
kuzu_data_type_id
enum class for kuzu internal dataTypes.
Definition kuzu.h:273
@ KUZU_UINT64
Definition kuzu.h:287
@ KUZU_INT16
Definition kuzu.h:285
@ KUZU_UINT16
Definition kuzu.h:289
@ KUZU_UUID
Definition kuzu.h:313
@ KUZU_DOUBLE
Definition kuzu.h:292
@ KUZU_TIMESTAMP_MS
Definition kuzu.h:297
@ KUZU_INT8
Definition kuzu.h:286
@ KUZU_DECIMAL
Definition kuzu.h:301
@ KUZU_NODE
Definition kuzu.h:275
@ KUZU_BLOB
Definition kuzu.h:305
@ KUZU_TIMESTAMP_SEC
Definition kuzu.h:296
@ KUZU_STRING
Definition kuzu.h:304
@ KUZU_TIMESTAMP_TZ
Definition kuzu.h:299
@ KUZU_TIMESTAMP
Definition kuzu.h:295
@ KUZU_INTERNAL_ID
Definition kuzu.h:302
@ KUZU_MAP
Definition kuzu.h:309
@ KUZU_RDF_VARIANT
Definition kuzu.h:311
@ KUZU_REL
Definition kuzu.h:276
@ KUZU_UNION
Definition kuzu.h:310
@ KUZU_UINT32
Definition kuzu.h:288
@ KUZU_INTERVAL
Definition kuzu.h:300
@ KUZU_ARRAY
Definition kuzu.h:307
@ KUZU_POINTER
Definition kuzu.h:312
@ KUZU_INT64
Definition kuzu.h:283
@ KUZU_BOOL
Definition kuzu.h:282
@ KUZU_RECURSIVE_REL
Definition kuzu.h:277
@ KUZU_STRUCT
Definition kuzu.h:308
@ KUZU_ANY
Definition kuzu.h:274
@ KUZU_INT32
Definition kuzu.h:284
@ KUZU_UINT8
Definition kuzu.h:290
@ KUZU_LIST
Definition kuzu.h:306
@ KUZU_INT128
Definition kuzu.h:291
@ KUZU_TIMESTAMP_NS
Definition kuzu.h:298
@ KUZU_FLOAT
Definition kuzu.h:293
@ KUZU_SERIAL
Definition kuzu.h:280
@ KUZU_DATE
Definition kuzu.h:294
KUZU_C_API void kuzu_database_destroy(kuzu_database *database)
Destroys the kuzu database instance and frees the allocated memory.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_float(kuzu_prepared_statement *prepared_statement, const char *param_name, float value)
Binds the given float value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_uint64(kuzu_value *rdf_variant, uint64_t *out_result)
Returns the uint64 value of the given rdf variant. The value must be of type UINT64.
KUZU_C_API kuzu_system_config kuzu_default_system_config()
KUZU_C_API kuzu_state kuzu_value_get_blob(kuzu_value *value, uint8_t **out_result)
Returns the blob value of the given value. The returned buffer is null-terminated similar to a string...
KUZU_C_API kuzu_state kuzu_timestamp_ms_to_tm(kuzu_timestamp_ms_t timestamp, struct tm *out_result)
Convert timestamp_ms to corresponding tm struct.
#define KUZU_C_API
Definition kuzu.h:106
KUZU_C_API void kuzu_interval_from_difftime(double difftime, kuzu_interval_t *out_result)
Convert difftime value in seconds to interval.
KUZU_C_API kuzu_state kuzu_value_get_internal_id(kuzu_value *value, kuzu_internal_id_t *out_result)
Returns the internal id value of the given value. The value must be of type INTERNAL_ID.
KUZU_C_API kuzu_state kuzu_value_get_int16(kuzu_value *value, int16_t *out_result)
Returns the int16 value of the given value. The value must be of type INT16.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_timestamp(kuzu_value *rdf_variant, kuzu_timestamp_t *out_result)
Returns the timestamp value of the given rdf variant. The value must be of type TIMESTAMP.
KUZU_C_API kuzu_state kuzu_date_from_tm(struct tm tm, kuzu_date_t *out_result)
Convert tm struct to date value.
KUZU_C_API void kuzu_query_result_destroy(kuzu_query_result *query_result)
Destroys the given query result instance.
KUZU_C_API kuzu_value * kuzu_value_create_timestamp_tz(kuzu_timestamp_tz_t val_)
Creates a value with timestamp_tz type and the given timestamp value. Caller is responsible for destr...
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_timestamp_tz(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_timestamp_tz_t value)
Binds the given timestamp_tz value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_value_get_bool(kuzu_value *value, bool *out_result)
Returns the boolean value of the given value. The value must be of type BOOL.
KUZU_C_API bool kuzu_query_result_is_success(kuzu_query_result *query_result)
Returns true if the query is executed successful, false otherwise.
KUZU_C_API kuzu_state kuzu_query_result_get_arrow_schema(kuzu_query_result *query_result, struct ArrowSchema *out_schema)
Returns the query result's schema as ArrowSchema.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_string(kuzu_prepared_statement *prepared_statement, const char *param_name, const char *value)
Binds the given string value to the given parameter name in the prepared statement.
kuzu_state
enum class for kuzu function return state.
Definition kuzu.h:319
@ KuzuSuccess
Definition kuzu.h:319
@ KuzuError
Definition kuzu.h:319
KUZU_C_API kuzu_value * kuzu_value_create_int64(int64_t val_)
Creates a value with int64 type and the given int64 value. Caller is responsible for destroying the r...
KUZU_C_API void kuzu_data_type_create(kuzu_data_type_id id, kuzu_logical_type *child_type, uint64_t num_elements_in_array, kuzu_logical_type *out_type)
Creates a data type instance with the given id, childType and num_elements_in_array....
KUZU_C_API kuzu_value * kuzu_value_create_timestamp_ms(kuzu_timestamp_ms_t val_)
Creates a value with timestamp_ms type and the given timestamp value. Caller is responsible for destr...
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_int16(kuzu_prepared_statement *prepared_statement, const char *param_name, int16_t value)
Binds the given int16_t value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_value_get_recursive_rel_rel_list(kuzu_value *value, kuzu_value *out_value)
Returns the list of rels for recursive rel value. The value must be of type RECURSIVE_REL.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_float(kuzu_value *rdf_variant, float *out_result)
Returns the float value of the given rdf variant. The value must be of type FLOAT.
KUZU_C_API kuzu_state kuzu_value_get_date(kuzu_value *value, kuzu_date_t *out_result)
Returns the date value of the given value. The value must be of type DATE.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_int16(kuzu_value *rdf_variant, int16_t *out_result)
Returns the int16 value of the given rdf variant. The value must be of type INT16.
KUZU_C_API kuzu_state kuzu_value_get_interval(kuzu_value *value, kuzu_interval_t *out_result)
Returns the interval value of the given value. The value must be of type INTERVAL.
KUZU_C_API kuzu_state kuzu_value_get_timestamp_tz(kuzu_value *value, kuzu_timestamp_tz_t *out_result)
Returns the timestamp_tz value of the given value. The value must be of type TIMESTAMP_TZ.
KUZU_C_API kuzu_state kuzu_query_result_get_query_summary(kuzu_query_result *query_result, kuzu_query_summary *out_query_summary)
Returns the query summary of the query result.
KUZU_C_API kuzu_state kuzu_value_get_struct_field_name(kuzu_value *value, uint64_t index, char **out_result)
Returns the field name at index of the given struct value. The value must be of physical type STRUCT ...
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_timestamp_ns(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_timestamp_ns_t value)
Binds the given timestamp_ns value to the given parameter name in the prepared statement.
KUZU_C_API void kuzu_connection_destroy(kuzu_connection *connection)
Destroys the connection instance and frees the allocated memory.
KUZU_C_API kuzu_state kuzu_connection_get_max_num_thread_for_exec(kuzu_connection *connection, uint64_t *out_result)
Returns the maximum number of threads of the connection to use for executing queries.
KUZU_C_API uint64_t kuzu_get_storage_version()
Returns the storage version of the Kùzu library.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_int32(kuzu_prepared_statement *prepared_statement, const char *param_name, int32_t value)
Binds the given int32_t value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_node_val_to_string(kuzu_value *node_val, char **out_result)
Converts the given node value to string.
KUZU_C_API kuzu_state kuzu_rel_val_get_property_name_at(kuzu_value *rel_val, uint64_t index, char **out_result)
Returns the property name of the given rel value at the given index.
KUZU_C_API kuzu_state kuzu_value_get_timestamp_sec(kuzu_value *value, kuzu_timestamp_sec_t *out_result)
Returns the timestamp_sec value of the given value. The value must be of type TIMESTAMP_SEC.
KUZU_C_API kuzu_state kuzu_rel_val_get_label_val(kuzu_value *rel_val, kuzu_value *out_value)
Returns the label value of the given rel value.
KUZU_C_API kuzu_state kuzu_timestamp_ns_from_tm(struct tm tm, kuzu_timestamp_ns_t *out_result)
Convert tm struct to timestamp_ns value.
KUZU_C_API kuzu_value * kuzu_value_create_bool(bool val_)
Creates a value with boolean type and the given bool value. Caller is responsible for destroying the ...
KUZU_C_API kuzu_state kuzu_value_get_int64(kuzu_value *value, int64_t *out_result)
Returns the int64 value of the given value. The value must be of type INT64 or SERIAL.
KUZU_C_API double kuzu_query_summary_get_execution_time(kuzu_query_summary *query_summary)
Returns the execution time of the given query summary in milliseconds.
KUZU_C_API kuzu_state kuzu_node_val_get_label_val(kuzu_value *node_val, kuzu_value *out_value)
Returns the label value of the given node value as a label value.
KUZU_C_API kuzu_state kuzu_node_val_get_property_value_at(kuzu_value *node_val, uint64_t index, kuzu_value *out_value)
Returns the property value of the given node value at the given index.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_int8(kuzu_value *rdf_variant, int8_t *out_result)
Returns the int8 value of the given rdf variant. The value must be of type INT8.
KUZU_C_API kuzu_state kuzu_node_val_get_id_val(kuzu_value *node_val, kuzu_value *out_value)
Returns the internal id value of the given node value as a kuzu value.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_interval(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_interval_t value)
Binds the given interval value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_value * kuzu_value_create_uint16(uint16_t val_)
Creates a value with uint16 type and the given uint16 value. Caller is responsible for destroying the...
KUZU_C_API void kuzu_data_type_clone(kuzu_logical_type *data_type, kuzu_logical_type *out_type)
Creates a new data type instance by cloning the given data type instance.
KUZU_C_API kuzu_state kuzu_timestamp_tz_from_tm(struct tm tm, kuzu_timestamp_tz_t *out_result)
Convert tm struct to timestamp_tz value.
KUZU_C_API kuzu_state kuzu_date_from_string(const char *str, kuzu_date_t *out_result)
Convert a string to date value.
KUZU_C_API void kuzu_value_copy(kuzu_value *value, kuzu_value *other)
Copies the other value to the value.
KUZU_C_API kuzu_state kuzu_value_get_string(kuzu_value *value, char **out_result)
Returns the string value of the given value. The value must be of type STRING.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_value(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_value *value)
Binds the given kuzu value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_value * kuzu_value_create_double(double val_)
Creates a value with double type and the given double value. Caller is responsible for destroying the...
KUZU_C_API kuzu_value * kuzu_value_create_string(const char *val_)
Creates a value with string type and the given string value. Caller is responsible for destroying the...
KUZU_C_API kuzu_value * kuzu_value_create_default(kuzu_logical_type *data_type)
Creates a value of the given data type with default non-NULL value. Caller is responsible for destroy...
KUZU_C_API kuzu_state kuzu_value_get_timestamp_ns(kuzu_value *value, kuzu_timestamp_ns_t *out_result)
Returns the timestamp_ns value of the given value. The value must be of type TIMESTAMP_NS.
KUZU_C_API uint64_t kuzu_query_result_get_num_columns(kuzu_query_result *query_result)
Returns the number of columns in the query result.
KUZU_C_API kuzu_state kuzu_value_get_uuid(kuzu_value *value, char **out_result)
Returns the uuid value of the given value. to a string. The value must be of type UUID.
KUZU_C_API kuzu_state kuzu_rel_val_get_property_value_at(kuzu_value *rel_val, uint64_t index, kuzu_value *out_value)
Returns the property of the given rel value at the given index as kuzu value.
KUZU_C_API kuzu_state kuzu_value_get_int8(kuzu_value *value, int8_t *out_result)
Returns the int8 value of the given value. The value must be of type INT8.
KUZU_C_API kuzu_value * kuzu_value_create_int32(int32_t val_)
Creates a value with int32 type and the given int32 value. Caller is responsible for destroying the r...
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_timestamp_sec(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_timestamp_sec_t value)
Binds the given timestamp_sec value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_uint64(kuzu_prepared_statement *prepared_statement, const char *param_name, uint64_t value)
Binds the given uint64_t value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_int128_t_from_string(const char *str, kuzu_int128_t *out_result)
convert a string to int128 value.
KUZU_C_API kuzu_value * kuzu_value_create_float(float val_)
Creates a value with float type and the given float value. Caller is responsible for destroying the r...
KUZU_C_API kuzu_state kuzu_value_get_uint64(kuzu_value *value, uint64_t *out_result)
Returns the uint64 value of the given value. The value must be of type UINT64.
KUZU_C_API void kuzu_flat_tuple_destroy(kuzu_flat_tuple *flat_tuple)
Destroys the given flat tuple instance.
KUZU_C_API void kuzu_connection_interrupt(kuzu_connection *connection)
Interrupts the current query execution in the connection.
KUZU_C_API kuzu_state kuzu_value_get_struct_num_fields(kuzu_value *value, uint64_t *out_result)
Returns the number of fields of the given struct value. The value must be of type STRUCT.
KUZU_C_API kuzu_value * kuzu_value_clone(kuzu_value *value)
Creates a new value based on the given value. Caller is responsible for destroying the returned value...
KUZU_C_API kuzu_value * kuzu_value_create_uint32(uint32_t val_)
Creates a value with uint32 type and the given uint32 value. Caller is responsible for destroying the...
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_timestamp(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_timestamp_t value)
Binds the given timestamp value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_timestamp_to_tm(kuzu_timestamp_t timestamp, struct tm *out_result)
Convert timestamp to corresponding tm struct.
KUZU_C_API kuzu_state kuzu_query_result_get_next_arrow_chunk(kuzu_query_result *query_result, int64_t chunk_size, struct ArrowArray *out_arrow_array)
Returns the next chunk of the query result as ArrowArray.
KUZU_C_API char * kuzu_query_result_get_error_message(kuzu_query_result *query_result)
Returns the error message if the query is failed.
KUZU_C_API kuzu_state kuzu_data_type_get_num_elements_in_array(kuzu_logical_type *data_type, uint64_t *out_result)
Returns the number of elements for array.
KUZU_C_API kuzu_state kuzu_timestamp_from_tm(struct tm tm, kuzu_timestamp_t *out_result)
Convert timestamp_ns to corresponding string.
KUZU_C_API kuzu_state kuzu_flat_tuple_get_value(kuzu_flat_tuple *flat_tuple, uint64_t index, kuzu_value *out_value)
Returns the value at index of the flat tuple.
KUZU_C_API kuzu_state kuzu_date_to_string(kuzu_date_t date, char **out_result)
Convert date to corresponding string.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_date(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_date_t value)
Binds the given date value to the given parameter name in the prepared statement.
KUZU_C_API void kuzu_interval_to_difftime(kuzu_interval_t interval, double *out_result)
Convert interval to corresponding difftime value in seconds.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_date(kuzu_value *rdf_variant, kuzu_date_t *out_result)
Returns the date value of the given rdf variant. The value must be of type DATE.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_uint16(kuzu_prepared_statement *prepared_statement, const char *param_name, uint16_t value)
Binds the given uint16_t value to the given parameter name in the prepared statement.
KUZU_C_API char * kuzu_flat_tuple_to_string(kuzu_flat_tuple *flat_tuple)
Converts the flat tuple to a string.
KUZU_C_API kuzu_value * kuzu_value_create_uint64(uint64_t val_)
Creates a value with uint64 type and the given uint64 value. Caller is responsible for destroying the...
KUZU_C_API kuzu_value * kuzu_value_create_date(kuzu_date_t val_)
Creates a value with date type and the given date value. Caller is responsible for destroying the ret...
KUZU_C_API kuzu_state kuzu_value_get_list_size(kuzu_value *value, uint64_t *out_result)
Returns the number of elements per list of the given value. The value must be of type ARRAY.
KUZU_C_API kuzu_state kuzu_value_get_timestamp_ms(kuzu_value *value, kuzu_timestamp_ms_t *out_result)
Returns the timestamp_ms value of the given value. The value must be of type TIMESTAMP_MS.
KUZU_C_API kuzu_state kuzu_value_get_double(kuzu_value *value, double *out_result)
Returns the double value of the given value. The value must be of type DOUBLE.
KUZU_C_API kuzu_state kuzu_query_result_get_next_query_result(kuzu_query_result *query_result, kuzu_query_result *out_next_query_result)
Returns the next query result. Use this function to loop multiple query statements' results.
KUZU_C_API kuzu_value * kuzu_value_create_null_with_data_type(kuzu_logical_type *data_type)
Creates a value of the given data type. Caller is responsible for destroying the returned value.
KUZU_C_API kuzu_state kuzu_value_get_timestamp(kuzu_value *value, kuzu_timestamp_t *out_result)
Returns the timestamp value of the given value. The value must be of type TIMESTAMP.
KUZU_C_API char * kuzu_value_to_string(kuzu_value *value)
Converts the given value to string.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_double(kuzu_prepared_statement *prepared_statement, const char *param_name, double value)
Binds the given double value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_data_type_id kuzu_data_type_get_id(kuzu_logical_type *data_type)
Returns the enum type id of the given data type.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_type(kuzu_value *rdf_variant, kuzu_data_type_id *out_type)
Returns the underlying data type of the given rdf variant.
KUZU_C_API kuzu_state kuzu_query_result_get_column_name(kuzu_query_result *query_result, uint64_t index, char **out_column_name)
Returns the column name at the given index.
KUZU_C_API kuzu_state kuzu_timestamp_sec_to_tm(kuzu_timestamp_sec_t timestamp, struct tm *out_result)
Convert timestamp_sec to corresponding tm struct.
KUZU_C_API kuzu_state kuzu_timestamp_ms_from_tm(struct tm tm, kuzu_timestamp_ms_t *out_result)
Convert tm struct to timestamp_ms value.
KUZU_C_API kuzu_state kuzu_connection_set_query_timeout(kuzu_connection *connection, uint64_t timeout_in_ms)
Sets query timeout value in milliseconds for the connection.
KUZU_C_API kuzu_state kuzu_rel_val_get_dst_id_val(kuzu_value *rel_val, kuzu_value *out_value)
Returns the internal id value of the destination node of the given rel value as a kuzu value.
KUZU_C_API kuzu_value * kuzu_value_create_int128(kuzu_int128_t val_)
Creates a value with int128 type and the given int128 value. Caller is responsible for destroying the...
KUZU_C_API kuzu_state kuzu_value_get_recursive_rel_node_list(kuzu_value *value, kuzu_value *out_value)
Returns the list of nodes for recursive rel value. The value must be of type RECURSIVE_REL.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_uint32(kuzu_prepared_statement *prepared_statement, const char *param_name, uint32_t value)
Binds the given uint32_t value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_string(kuzu_value *rdf_variant, char **out_result)
Returns the string value of the given rdf variant. The value must be of type STRING.
KUZU_C_API void kuzu_value_destroy(kuzu_value *value)
Destroys the value.
KUZU_C_API kuzu_value * kuzu_value_create_int8(int8_t val_)
Creates a value with int8 type and the given int8 value. Caller is responsible for destroying the ret...
KUZU_C_API kuzu_state kuzu_rdf_variant_get_uint16(kuzu_value *rdf_variant, uint16_t *out_result)
Returns the uint16 value of the given rdf variant. The value must be of type UINT16.
KUZU_C_API kuzu_state kuzu_value_get_list_element(kuzu_value *value, uint64_t index, kuzu_value *out_value)
Returns the element at index of the given value. The value must be of type LIST.
KUZU_C_API kuzu_state kuzu_date_to_tm(kuzu_date_t date, struct tm *out_result)
Convert date to corresponding tm struct.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_timestamp_ms(kuzu_prepared_statement *prepared_statement, const char *param_name, kuzu_timestamp_ms_t value)
Binds the given timestamp_ms value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_int8(kuzu_prepared_statement *prepared_statement, const char *param_name, int8_t value)
Binds the given int8_t value to the given parameter name in the prepared statement.
KUZU_C_API kuzu_state kuzu_node_val_get_property_name_at(kuzu_value *node_val, uint64_t index, char **out_result)
Returns the property name of the given node value at the given index.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_double(kuzu_value *rdf_variant, double *out_result)
Returns the double value of the given rdf variant. The value must be of type DOUBLE.
KUZU_C_API kuzu_state kuzu_value_get_uint8(kuzu_value *value, uint8_t *out_result)
Returns the uint8 value of the given value. The value must be of type UINT8.
KUZU_C_API kuzu_state kuzu_rdf_variant_get_bool(kuzu_value *rdf_variant, bool *out_result)
Returns the boolean value of the given rdf variant. The value must be of type BOOL.
KUZU_C_API void kuzu_destroy_blob(uint8_t *blob)
Destroys any blob created by the Kùzu C API. This function is provided to avoid the inconsistency bet...
KUZU_C_API kuzu_value * kuzu_value_create_null()
Creates a NULL value of ANY type. Caller is responsible for destroying the returned value.
KUZU_C_API kuzu_state kuzu_connection_query(kuzu_connection *connection, const char *query, kuzu_query_result *out_query_result)
Executes the given query and returns the result.
KUZU_C_API kuzu_state kuzu_prepared_statement_bind_uint8(kuzu_prepared_statement *prepared_statement, const char *param_name, uint8_t value)
Binds the given int8_t value to the given parameter name in the prepared statement.
KUZU_C_API uint64_t kuzu_query_result_get_num_tuples(kuzu_query_result *query_result)
Returns the number of tuples in the query result.
KUZU_C_API void kuzu_value_set_null(kuzu_value *value, bool is_null)
Sets the given value to NULL or not.
KUZU_C_API kuzu_value * kuzu_value_create_timestamp_ns(kuzu_timestamp_ns_t val_)
Creates a value with timestamp_ns type and the given timestamp value. Caller is responsible for destr...
KUZU_C_API kuzu_state kuzu_rel_val_to_string(kuzu_value *rel_val, char **out_result)
Converts the given rel value to string.
KUZU_C_API kuzu_value * kuzu_value_create_int16(int16_t val_)
Creates a value with int16 type and the given int16 value. Caller is responsible for destroying the r...
KUZU_C_API kuzu_value * kuzu_value_create_uint8(uint8_t val_)
Creates a value with uint8 type and the given uint8 value. Caller is responsible for destroying the r...
KUZU_C_API bool kuzu_query_result_has_next_query_result(kuzu_query_result *query_result)
Returns true if we have not consumed all query results, false otherwise. Use this function for loop r...
KUZU_C_API bool kuzu_data_type_equals(kuzu_logical_type *data_type1, kuzu_logical_type *data_type2)
Returns true if the given data type is equal to the other data type, false otherwise.
Definition kuzu.h:80
void(* release)(struct ArrowArray *)
Definition kuzu.h:92
void * private_data
Definition kuzu.h:94
int64_t n_children
Definition kuzu.h:86
int64_t null_count
Definition kuzu.h:83
struct ArrowArray ** children
Definition kuzu.h:88
int64_t offset
Definition kuzu.h:84
struct ArrowArray * dictionary
Definition kuzu.h:89
const void ** buffers
Definition kuzu.h:87
int64_t n_buffers
Definition kuzu.h:85
int64_t length
Definition kuzu.h:82
Definition kuzu.h:64
int64_t flags
Definition kuzu.h:69
const char * metadata
Definition kuzu.h:68
int64_t n_children
Definition kuzu.h:70
const char * name
Definition kuzu.h:67
void * private_data
Definition kuzu.h:77
const char * format
Definition kuzu.h:66
struct ArrowSchema * dictionary
Definition kuzu.h:72
void(* release)(struct ArrowSchema *)
Definition kuzu.h:75
struct ArrowSchema ** children
Definition kuzu.h:71
kuzu_connection is used to interact with a Database instance. Each connection is thread-safe....
Definition kuzu.h:143
void * _connection
Definition kuzu.h:144
kuzu_database manages all database components.
Definition kuzu.h:134
void * _database
Definition kuzu.h:135
kuzu internal date type which stores the number of days since 1970-01-01 00:00:00 UTC.
Definition kuzu.h:198
int32_t days
Definition kuzu.h:200
kuzu_flat_tuple stores a vector of values.
Definition kuzu.h:167
void * _flat_tuple
Definition kuzu.h:168
bool _is_owned_by_cpp
Definition kuzu.h:169
Definition kuzu.h:265
int64_t high
Definition kuzu.h:267
uint64_t low
Definition kuzu.h:266
kuzu internal internal_id type which stores the table_id and offset of a node/rel.
Definition kuzu.h:190
uint64_t table_id
Definition kuzu.h:191
uint64_t offset
Definition kuzu.h:192
kuzu internal interval type which stores the months, days and microseconds.
Definition kuzu.h:251
int64_t micros
Definition kuzu.h:254
int32_t months
Definition kuzu.h:252
int32_t days
Definition kuzu.h:253
kuzu_logical_type is the kuzu internal representation of data types.
Definition kuzu.h:175
void * _data_type
Definition kuzu.h:176
kuzu_prepared_statement is a parameterized query which can avoid planning the same query for repeated...
Definition kuzu.h:151
void * _prepared_statement
Definition kuzu.h:152
void * _bound_values
Definition kuzu.h:153
kuzu_query_result stores the result of a query.
Definition kuzu.h:159
void * _query_result
Definition kuzu.h:160
bool _is_owned_by_cpp
Definition kuzu.h:161
kuzu_query_summary stores the execution time, plan, compiling time and query options of a query.
Definition kuzu.h:261
void * _query_summary
Definition kuzu.h:262
Stores runtime configuration for creating or opening a Database.
Definition kuzu.h:112
uint64_t buffer_pool_size
Definition kuzu.h:116
bool read_only
Definition kuzu.h:123
uint64_t max_db_size
Definition kuzu.h:128
uint64_t max_num_threads
Definition kuzu.h:118
bool enable_compression
Definition kuzu.h:120
kuzu internal timestamp_ms type which stores the number of milliseconds since 1970-01-01 00:00:00 UTC...
Definition kuzu.h:216
int64_t value
Definition kuzu.h:218
kuzu internal timestamp_ns type which stores the number of nanoseconds since 1970-01-01 00:00:00 UTC.
Definition kuzu.h:207
int64_t value
Definition kuzu.h:209
kuzu internal timestamp_sec_t type which stores the number of seconds since 1970-01-01 00:00:00 UTC.
Definition kuzu.h:225
int64_t value
Definition kuzu.h:227
kuzu internal timestamp type which stores the number of microseconds since 1970-01-01 00:00:00 UTC.
Definition kuzu.h:243
int64_t value
Definition kuzu.h:245
kuzu internal timestamp_tz type which stores the number of microseconds since 1970-01-01 with timezon...
Definition kuzu.h:234
int64_t value
Definition kuzu.h:236
kuzu_value is used to represent a value with any kuzu internal dataType.
Definition kuzu.h:182
void * _value
Definition kuzu.h:183
bool _is_owned_by_cpp
Definition kuzu.h:184