--- layout: docu redirect_from: - /docs/api/c/value - /docs/api/c/value/ - /docs/clients/c/value title: Values --- <!-- markdownlint-disable MD001 --> The value class represents a single value of any type. ## API Reference Overview <!-- This section is generated by scripts/generate_c_api_docs.py --> <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <a href="#duckdb_destroy_value"><span class="nf">duckdb_destroy_value</span></a>(<span class="kt">duckdb_value</span> *<span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_varchar"><span class="nf">duckdb_create_varchar</span></a>(<span class="kt">const</span> <span class="kt">char</span> *<span class="nv">text</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_varchar_length"><span class="nf">duckdb_create_varchar_length</span></a>(<span class="kt">const</span> <span class="kt">char</span> *<span class="nv">text</span>, <span class="kt">idx_t</span> <span class="nv">length</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_bool"><span class="nf">duckdb_create_bool</span></a>(<span class="kt">bool</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_int8"><span class="nf">duckdb_create_int8</span></a>(<span class="kt">int8_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_uint8"><span class="nf">duckdb_create_uint8</span></a>(<span class="kt">uint8_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_int16"><span class="nf">duckdb_create_int16</span></a>(<span class="kt">int16_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_uint16"><span class="nf">duckdb_create_uint16</span></a>(<span class="kt">uint16_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_int32"><span class="nf">duckdb_create_int32</span></a>(<span class="kt">int32_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_uint32"><span class="nf">duckdb_create_uint32</span></a>(<span class="kt">uint32_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_uint64"><span class="nf">duckdb_create_uint64</span></a>(<span class="kt">uint64_t</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_int64"><span class="nf">duckdb_create_int64</span></a>(<span class="kt">int64_t</span> <span class="nv">val</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_hugeint"><span class="nf">duckdb_create_hugeint</span></a>(<span class="kt">duckdb_hugeint</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_uhugeint"><span class="nf">duckdb_create_uhugeint</span></a>(<span class="kt">duckdb_uhugeint</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_varint"><span class="nf">duckdb_create_varint</span></a>(<span class="nv">duckdb_varint</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_decimal"><span class="nf">duckdb_create_decimal</span></a>(<span class="kt">duckdb_decimal</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_float"><span class="nf">duckdb_create_float</span></a>(<span class="kt">float</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_double"><span class="nf">duckdb_create_double</span></a>(<span class="kt">double</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_date"><span class="nf">duckdb_create_date</span></a>(<span class="kt">duckdb_date</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_time"><span class="nf">duckdb_create_time</span></a>(<span class="kt">duckdb_time</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_time_tz_value"><span class="nf">duckdb_create_time_tz_value</span></a>(<span class="kt">duckdb_time_tz</span> <span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_timestamp"><span class="nf">duckdb_create_timestamp</span></a>(<span class="kt">duckdb_timestamp</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_timestamp_tz"><span class="nf">duckdb_create_timestamp_tz</span></a>(<span class="kt">duckdb_timestamp</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_timestamp_s"><span class="nf">duckdb_create_timestamp_s</span></a>(<span class="nv">duckdb_timestamp_s</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_timestamp_ms"><span class="nf">duckdb_create_timestamp_ms</span></a>(<span class="nv">duckdb_timestamp_ms</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_timestamp_ns"><span class="nf">duckdb_create_timestamp_ns</span></a>(<span class="nv">duckdb_timestamp_ns</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_interval"><span class="nf">duckdb_create_interval</span></a>(<span class="kt">duckdb_interval</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_blob"><span class="nf">duckdb_create_blob</span></a>(<span class="kt">const</span> <span class="kt">uint8_t</span> *<span class="nv">data</span>, <span class="kt">idx_t</span> <span class="nv">length</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_bit"><span class="nf">duckdb_create_bit</span></a>(<span class="nv">duckdb_bit</span> <span class="nv">input</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_uuid"><span class="nf">duckdb_create_uuid</span></a>(<span class="kt">duckdb_uhugeint</span> <span class="nv">input</span>); <span class="kt">bool</span> <a href="#duckdb_get_bool"><span class="nf">duckdb_get_bool</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">int8_t</span> <a href="#duckdb_get_int8"><span class="nf">duckdb_get_int8</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">uint8_t</span> <a href="#duckdb_get_uint8"><span class="nf">duckdb_get_uint8</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">int16_t</span> <a href="#duckdb_get_int16"><span class="nf">duckdb_get_int16</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">uint16_t</span> <a href="#duckdb_get_uint16"><span class="nf">duckdb_get_uint16</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">int32_t</span> <a href="#duckdb_get_int32"><span class="nf">duckdb_get_int32</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">uint32_t</span> <a href="#duckdb_get_uint32"><span class="nf">duckdb_get_uint32</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">int64_t</span> <a href="#duckdb_get_int64"><span class="nf">duckdb_get_int64</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">uint64_t</span> <a href="#duckdb_get_uint64"><span class="nf">duckdb_get_uint64</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_hugeint</span> <a href="#duckdb_get_hugeint"><span class="nf">duckdb_get_hugeint</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_uhugeint</span> <a href="#duckdb_get_uhugeint"><span class="nf">duckdb_get_uhugeint</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="nv">duckdb_varint</span> <a href="#duckdb_get_varint"><span class="nf">duckdb_get_varint</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_decimal</span> <a href="#duckdb_get_decimal"><span class="nf">duckdb_get_decimal</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">float</span> <a href="#duckdb_get_float"><span class="nf">duckdb_get_float</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">double</span> <a href="#duckdb_get_double"><span class="nf">duckdb_get_double</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_date</span> <a href="#duckdb_get_date"><span class="nf">duckdb_get_date</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_time</span> <a href="#duckdb_get_time"><span class="nf">duckdb_get_time</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_time_tz</span> <a href="#duckdb_get_time_tz"><span class="nf">duckdb_get_time_tz</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_timestamp</span> <a href="#duckdb_get_timestamp"><span class="nf">duckdb_get_timestamp</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_timestamp</span> <a href="#duckdb_get_timestamp_tz"><span class="nf">duckdb_get_timestamp_tz</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="nv">duckdb_timestamp_s</span> <a href="#duckdb_get_timestamp_s"><span class="nf">duckdb_get_timestamp_s</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="nv">duckdb_timestamp_ms</span> <a href="#duckdb_get_timestamp_ms"><span class="nf">duckdb_get_timestamp_ms</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="nv">duckdb_timestamp_ns</span> <a href="#duckdb_get_timestamp_ns"><span class="nf">duckdb_get_timestamp_ns</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_interval</span> <a href="#duckdb_get_interval"><span class="nf">duckdb_get_interval</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_logical_type</span> <a href="#duckdb_get_value_type"><span class="nf">duckdb_get_value_type</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_blob</span> <a href="#duckdb_get_blob"><span class="nf">duckdb_get_blob</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="nv">duckdb_bit</span> <a href="#duckdb_get_bit"><span class="nf">duckdb_get_bit</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">duckdb_uhugeint</span> <a href="#duckdb_get_uuid"><span class="nf">duckdb_get_uuid</span></a>(<span class="kt">duckdb_value</span> <span class="nv">val</span>); <span class="kt">char</span> *<a href="#duckdb_get_varchar"><span class="nf">duckdb_get_varchar</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_struct_value"><span class="nf">duckdb_create_struct_value</span></a>(<span class="kt">duckdb_logical_type</span> <span class="nv">type</span>, <span class="kt">duckdb_value</span> *<span class="nv">values</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_list_value"><span class="nf">duckdb_create_list_value</span></a>(<span class="kt">duckdb_logical_type</span> <span class="nv">type</span>, <span class="kt">duckdb_value</span> *<span class="nv">values</span>, <span class="kt">idx_t</span> <span class="nv">value_count</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_array_value"><span class="nf">duckdb_create_array_value</span></a>(<span class="kt">duckdb_logical_type</span> <span class="nv">type</span>, <span class="kt">duckdb_value</span> *<span class="nv">values</span>, <span class="kt">idx_t</span> <span class="nv">value_count</span>); <span class="kt">idx_t</span> <a href="#duckdb_get_map_size"><span class="nf">duckdb_get_map_size</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_get_map_key"><span class="nf">duckdb_get_map_key</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>, <span class="kt">idx_t</span> <span class="nv">index</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_get_map_value"><span class="nf">duckdb_get_map_value</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>, <span class="kt">idx_t</span> <span class="nv">index</span>); <span class="kt">bool</span> <a href="#duckdb_is_null_value"><span class="nf">duckdb_is_null_value</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_null_value"><span class="nf">duckdb_create_null_value</span></a>(); <span class="kt">idx_t</span> <a href="#duckdb_get_list_size"><span class="nf">duckdb_get_list_size</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_get_list_child"><span class="nf">duckdb_get_list_child</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>, <span class="kt">idx_t</span> <span class="nv">index</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_create_enum_value"><span class="nf">duckdb_create_enum_value</span></a>(<span class="kt">duckdb_logical_type</span> <span class="nv">type</span>, <span class="kt">uint64_t</span> <span class="nv">value</span>); <span class="kt">uint64_t</span> <a href="#duckdb_get_enum_value"><span class="nf">duckdb_get_enum_value</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>); <span class="kt">duckdb_value</span> <a href="#duckdb_get_struct_child"><span class="nf">duckdb_get_struct_child</span></a>(<span class="kt">duckdb_value</span> <span class="nv">value</span>, <span class="kt">idx_t</span> <span class="nv">index</span>); </code></pre></div></div> #### `duckdb_destroy_value` Destroys the value and de-allocates all memory allocated for that type. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nv">duckdb_destroy_value</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> *<span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: The value to destroy. <br> #### `duckdb_create_varchar` Creates a value from a null-terminated string ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_varchar</span>(<span class="nv"> </span> <span class="kt">const</span> <span class="kt">char</span> *<span class="nv">text </span>); </code></pre></div></div> ##### Parameters * `text`: The null-terminated string ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_varchar_length` Creates a value from a string ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_varchar_length</span>(<span class="nv"> </span> <span class="kt">const</span> <span class="kt">char</span> *<span class="nv">text</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">length </span>); </code></pre></div></div> ##### Parameters * `text`: The text * `length`: The length of the text ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_bool` Creates a value from a boolean ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_bool</span>(<span class="nv"> </span> <span class="kt">bool</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The boolean value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_int8` Creates a value from a int8_t (a tinyint) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_int8</span>(<span class="nv"> </span> <span class="kt">int8_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The tinyint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_uint8` Creates a value from a uint8_t (a utinyint) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_uint8</span>(<span class="nv"> </span> <span class="kt">uint8_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The utinyint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_int16` Creates a value from a int16_t (a smallint) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_int16</span>(<span class="nv"> </span> <span class="kt">int16_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The smallint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_uint16` Creates a value from a uint16_t (a usmallint) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_uint16</span>(<span class="nv"> </span> <span class="kt">uint16_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The usmallint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_int32` Creates a value from a int32_t (an integer) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_int32</span>(<span class="nv"> </span> <span class="kt">int32_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The integer value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_uint32` Creates a value from a uint32_t (a uinteger) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_uint32</span>(<span class="nv"> </span> <span class="kt">uint32_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The uinteger value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_uint64` Creates a value from a uint64_t (a ubigint) ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_uint64</span>(<span class="nv"> </span> <span class="kt">uint64_t</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The ubigint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_int64` Creates a value from an int64 ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_int64</span>(<span class="nv"> </span> <span class="kt">int64_t</span> <span class="nv">val </span>); </code></pre></div></div> <br> #### `duckdb_create_hugeint` Creates a value from a hugeint ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_hugeint</span>(<span class="nv"> </span> <span class="kt">duckdb_hugeint</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The hugeint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_uhugeint` Creates a value from a uhugeint ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_uhugeint</span>(<span class="nv"> </span> <span class="kt">duckdb_uhugeint</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The uhugeint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_varint` Creates a VARINT value from a duckdb_varint ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_varint</span>(<span class="nv"> </span> <span class="nv">duckdb_varint</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_varint value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_decimal` Creates a DECIMAL value from a duckdb_decimal ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_decimal</span>(<span class="nv"> </span> <span class="kt">duckdb_decimal</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_decimal value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_float` Creates a value from a float ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_float</span>(<span class="nv"> </span> <span class="kt">float</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The float value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_double` Creates a value from a double ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_double</span>(<span class="nv"> </span> <span class="kt">double</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The double value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_date` Creates a value from a date ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_date</span>(<span class="nv"> </span> <span class="kt">duckdb_date</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The date value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_time` Creates a value from a time ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_time</span>(<span class="nv"> </span> <span class="kt">duckdb_time</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The time value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_time_tz_value` Creates a value from a time_tz. Not to be confused with `duckdb_create_time_tz`, which creates a duckdb_time_tz_t. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_time_tz_value</span>(<span class="nv"> </span> <span class="kt">duckdb_time_tz</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: The time_tz value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_timestamp` Creates a TIMESTAMP value from a duckdb_timestamp ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_timestamp</span>(<span class="nv"> </span> <span class="kt">duckdb_timestamp</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_timestamp value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_timestamp_tz` Creates a TIMESTAMP_TZ value from a duckdb_timestamp ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_timestamp_tz</span>(<span class="nv"> </span> <span class="kt">duckdb_timestamp</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_timestamp value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_timestamp_s` Creates a TIMESTAMP_S value from a duckdb_timestamp_s ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_timestamp_s</span>(<span class="nv"> </span> <span class="nv">duckdb_timestamp_s</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_timestamp_s value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_timestamp_ms` Creates a TIMESTAMP_MS value from a duckdb_timestamp_ms ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_timestamp_ms</span>(<span class="nv"> </span> <span class="nv">duckdb_timestamp_ms</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_timestamp_ms value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_timestamp_ns` Creates a TIMESTAMP_NS value from a duckdb_timestamp_ns ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_timestamp_ns</span>(<span class="nv"> </span> <span class="nv">duckdb_timestamp_ns</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_timestamp_ns value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_interval` Creates a value from an interval ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_interval</span>(<span class="nv"> </span> <span class="kt">duckdb_interval</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The interval value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_blob` Creates a value from a blob ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_blob</span>(<span class="nv"> </span> <span class="kt">const</span> <span class="kt">uint8_t</span> *<span class="nv">data</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">length </span>); </code></pre></div></div> ##### Parameters * `data`: The blob data * `length`: The length of the blob data ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_bit` Creates a BIT value from a duckdb_bit ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_bit</span>(<span class="nv"> </span> <span class="nv">duckdb_bit</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_bit value ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_create_uuid` Creates a UUID value from a uhugeint ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_uuid</span>(<span class="nv"> </span> <span class="kt">duckdb_uhugeint</span> <span class="nv">input </span>); </code></pre></div></div> ##### Parameters * `input`: The duckdb_uhugeint containing the UUID ##### Return Value The value. This must be destroyed with `duckdb_destroy_value`. <br> #### `duckdb_get_bool` Returns the boolean value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">bool</span> <span class="nv">duckdb_get_bool</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a boolean ##### Return Value A boolean, or false if the value cannot be converted <br> #### `duckdb_get_int8` Returns the int8_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int8_t</span> <span class="nv">duckdb_get_int8</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a tinyint ##### Return Value A int8_t, or MinValue<int8> if the value cannot be converted <br> #### `duckdb_get_uint8` Returns the uint8_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">uint8_t</span> <span class="nv">duckdb_get_uint8</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a utinyint ##### Return Value A uint8_t, or MinValue<uint8> if the value cannot be converted <br> #### `duckdb_get_int16` Returns the int16_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int16_t</span> <span class="nv">duckdb_get_int16</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a smallint ##### Return Value A int16_t, or MinValue<int16> if the value cannot be converted <br> #### `duckdb_get_uint16` Returns the uint16_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">uint16_t</span> <span class="nv">duckdb_get_uint16</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a usmallint ##### Return Value A uint16_t, or MinValue<uint16> if the value cannot be converted <br> #### `duckdb_get_int32` Returns the int32_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int32_t</span> <span class="nv">duckdb_get_int32</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a integer ##### Return Value A int32_t, or MinValue<int32> if the value cannot be converted <br> #### `duckdb_get_uint32` Returns the uint32_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">uint32_t</span> <span class="nv">duckdb_get_uint32</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a uinteger ##### Return Value A uint32_t, or MinValue<uint32> if the value cannot be converted <br> #### `duckdb_get_int64` Returns the int64_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int64_t</span> <span class="nv">duckdb_get_int64</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a bigint ##### Return Value A int64_t, or MinValue<int64> if the value cannot be converted <br> #### `duckdb_get_uint64` Returns the uint64_t value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">uint64_t</span> <span class="nv">duckdb_get_uint64</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a ubigint ##### Return Value A uint64_t, or MinValue<uint64> if the value cannot be converted <br> #### `duckdb_get_hugeint` Returns the hugeint value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_hugeint</span> <span class="nv">duckdb_get_hugeint</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a hugeint ##### Return Value A duckdb_hugeint, or MinValue<hugeint> if the value cannot be converted <br> #### `duckdb_get_uhugeint` Returns the uhugeint value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_uhugeint</span> <span class="nv">duckdb_get_uhugeint</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a uhugeint ##### Return Value A duckdb_uhugeint, or MinValue<uhugeint> if the value cannot be converted <br> #### `duckdb_get_varint` Returns the duckdb_varint value of the given value. The `data` field must be destroyed with `duckdb_free`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">duckdb_varint</span> <span class="nv">duckdb_get_varint</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a VARINT ##### Return Value A duckdb_varint. The `data` field must be destroyed with `duckdb_free`. <br> #### `duckdb_get_decimal` Returns the duckdb_decimal value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_decimal</span> <span class="nv">duckdb_get_decimal</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a DECIMAL ##### Return Value A duckdb_decimal, or MinValue<decimal> if the value cannot be converted <br> #### `duckdb_get_float` Returns the float value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">float</span> <span class="nv">duckdb_get_float</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a float ##### Return Value A float, or NAN if the value cannot be converted <br> #### `duckdb_get_double` Returns the double value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">double</span> <span class="nv">duckdb_get_double</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a double ##### Return Value A double, or NAN if the value cannot be converted <br> #### `duckdb_get_date` Returns the date value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_date</span> <span class="nv">duckdb_get_date</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a date ##### Return Value A duckdb_date, or MinValue<date> if the value cannot be converted <br> #### `duckdb_get_time` Returns the time value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_time</span> <span class="nv">duckdb_get_time</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a time ##### Return Value A duckdb_time, or MinValue<time> if the value cannot be converted <br> #### `duckdb_get_time_tz` Returns the time_tz value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_time_tz</span> <span class="nv">duckdb_get_time_tz</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a time_tz ##### Return Value A duckdb_time_tz, or MinValue<time_tz> if the value cannot be converted <br> #### `duckdb_get_timestamp` Returns the TIMESTAMP value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_timestamp</span> <span class="nv">duckdb_get_timestamp</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a TIMESTAMP ##### Return Value A duckdb_timestamp, or MinValue<timestamp> if the value cannot be converted <br> #### `duckdb_get_timestamp_tz` Returns the TIMESTAMP_TZ value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_timestamp</span> <span class="nv">duckdb_get_timestamp_tz</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a TIMESTAMP_TZ ##### Return Value A duckdb_timestamp, or MinValue<timestamp_tz> if the value cannot be converted <br> #### `duckdb_get_timestamp_s` Returns the duckdb_timestamp_s value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">duckdb_timestamp_s</span> <span class="nv">duckdb_get_timestamp_s</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a TIMESTAMP_S ##### Return Value A duckdb_timestamp_s, or MinValue<timestamp_s> if the value cannot be converted <br> #### `duckdb_get_timestamp_ms` Returns the duckdb_timestamp_ms value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">duckdb_timestamp_ms</span> <span class="nv">duckdb_get_timestamp_ms</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a TIMESTAMP_MS ##### Return Value A duckdb_timestamp_ms, or MinValue<timestamp_ms> if the value cannot be converted <br> #### `duckdb_get_timestamp_ns` Returns the duckdb_timestamp_ns value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">duckdb_timestamp_ns</span> <span class="nv">duckdb_get_timestamp_ns</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a TIMESTAMP_NS ##### Return Value A duckdb_timestamp_ns, or MinValue<timestamp_ns> if the value cannot be converted <br> #### `duckdb_get_interval` Returns the interval value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_interval</span> <span class="nv">duckdb_get_interval</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a interval ##### Return Value A duckdb_interval, or MinValue<interval> if the value cannot be converted <br> #### `duckdb_get_value_type` Returns the type of the given value. The type is valid as long as the value is not destroyed. The type itself must not be destroyed. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_logical_type</span> <span class="nv">duckdb_get_value_type</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value ##### Return Value A duckdb_logical_type. <br> #### `duckdb_get_blob` Returns the blob value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_blob</span> <span class="nv">duckdb_get_blob</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a blob ##### Return Value A duckdb_blob <br> #### `duckdb_get_bit` Returns the duckdb_bit value of the given value. The `data` field must be destroyed with `duckdb_free`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">duckdb_bit</span> <span class="nv">duckdb_get_bit</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a BIT ##### Return Value A duckdb_bit <br> #### `duckdb_get_uuid` Returns a duckdb_uhugeint representing the UUID value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_uhugeint</span> <span class="nv">duckdb_get_uuid</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">val </span>); </code></pre></div></div> ##### Parameters * `val`: A duckdb_value containing a UUID ##### Return Value A duckdb_uhugeint representing the UUID value <br> #### `duckdb_get_varchar` Obtains a string representation of the given value. The result must be destroyed with `duckdb_free`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">char</span> *<span class="nv">duckdb_get_varchar</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: The value ##### Return Value The string value. This must be destroyed with `duckdb_free`. <br> #### `duckdb_create_struct_value` Creates a struct value from a type and an array of values. Must be destroyed with `duckdb_destroy_value`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_struct_value</span>(<span class="nv"> </span> <span class="kt">duckdb_logical_type</span> <span class="nv">type</span>,<span class="nv"> </span> <span class="kt">duckdb_value</span> *<span class="nv">values </span>); </code></pre></div></div> ##### Parameters * `type`: The type of the struct * `values`: The values for the struct fields ##### Return Value The struct value, or nullptr, if any child type is `DUCKDB_TYPE_ANY` or `DUCKDB_TYPE_INVALID`. <br> #### `duckdb_create_list_value` Creates a list value from a child (element) type and an array of values of length `value_count`. Must be destroyed with `duckdb_destroy_value`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_list_value</span>(<span class="nv"> </span> <span class="kt">duckdb_logical_type</span> <span class="nv">type</span>,<span class="nv"> </span> <span class="kt">duckdb_value</span> *<span class="nv">values</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">value_count </span>); </code></pre></div></div> ##### Parameters * `type`: The type of the list * `values`: The values for the list * `value_count`: The number of values in the list ##### Return Value The list value, or nullptr, if the child type is `DUCKDB_TYPE_ANY` or `DUCKDB_TYPE_INVALID`. <br> #### `duckdb_create_array_value` Creates an array value from a child (element) type and an array of values of length `value_count`. Must be destroyed with `duckdb_destroy_value`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_array_value</span>(<span class="nv"> </span> <span class="kt">duckdb_logical_type</span> <span class="nv">type</span>,<span class="nv"> </span> <span class="kt">duckdb_value</span> *<span class="nv">values</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">value_count </span>); </code></pre></div></div> ##### Parameters * `type`: The type of the array * `values`: The values for the array * `value_count`: The number of values in the array ##### Return Value The array value, or nullptr, if the child type is `DUCKDB_TYPE_ANY` or `DUCKDB_TYPE_INVALID`. <br> #### `duckdb_get_map_size` Returns the number of elements in a MAP value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">idx_t</span> <span class="nv">duckdb_get_map_size</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: The MAP value. ##### Return Value The number of elements in the map. <br> #### `duckdb_get_map_key` Returns the MAP key at index as a duckdb_value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_get_map_key</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">index </span>); </code></pre></div></div> ##### Parameters * `value`: The MAP value. * `index`: The index of the key. ##### Return Value The key as a duckdb_value. <br> #### `duckdb_get_map_value` Returns the MAP value at index as a duckdb_value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_get_map_value</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">index </span>); </code></pre></div></div> ##### Parameters * `value`: The MAP value. * `index`: The index of the value. ##### Return Value The value as a duckdb_value. <br> #### `duckdb_is_null_value` Returns whether the value's type is SQLNULL or not. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">bool</span> <span class="nv">duckdb_is_null_value</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: The value to check. ##### Return Value True, if the value's type is SQLNULL, otherwise false. <br> #### `duckdb_create_null_value` Creates a value of type SQLNULL. ##### Return Value The duckdb_value representing SQLNULL. This must be destroyed with `duckdb_destroy_value`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_null_value</span>(<span class="nv"> </span> <span class="nv"> </span>); </code></pre></div></div> <br> #### `duckdb_get_list_size` Returns the number of elements in a LIST value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">idx_t</span> <span class="nv">duckdb_get_list_size</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: The LIST value. ##### Return Value The number of elements in the list. <br> #### `duckdb_get_list_child` Returns the LIST child at index as a duckdb_value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_get_list_child</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">index </span>); </code></pre></div></div> ##### Parameters * `value`: The LIST value. * `index`: The index of the child. ##### Return Value The child as a duckdb_value. <br> #### `duckdb_create_enum_value` Creates an enum value from a type and a value. Must be destroyed with `duckdb_destroy_value`. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_create_enum_value</span>(<span class="nv"> </span> <span class="kt">duckdb_logical_type</span> <span class="nv">type</span>,<span class="nv"> </span> <span class="kt">uint64_t</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `type`: The type of the enum * `value`: The value for the enum ##### Return Value The enum value, or nullptr. <br> #### `duckdb_get_enum_value` Returns the enum value of the given value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">uint64_t</span> <span class="nv">duckdb_get_enum_value</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value </span>); </code></pre></div></div> ##### Parameters * `value`: A duckdb_value containing an enum ##### Return Value A uint64_t, or MinValue<uint64> if the value cannot be converted <br> #### `duckdb_get_struct_child` Returns the STRUCT child at index as a duckdb_value. ##### Syntax <div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">duckdb_value</span> <span class="nv">duckdb_get_struct_child</span>(<span class="nv"> </span> <span class="kt">duckdb_value</span> <span class="nv">value</span>,<span class="nv"> </span> <span class="kt">idx_t</span> <span class="nv">index </span>); </code></pre></div></div> ##### Parameters * `value`: The STRUCT value. * `index`: The index of the child. ##### Return Value The child as a duckdb_value. <br>