|
|
struct { | |
| |
|
int32_t length | |
| |
|
char data [ArrowStringViewConstants::MAX_INLINED_BYTES] | |
| |
| } | inlined | |
| | Representation of inlined arrow string views.
|
| |
|
struct { | |
| |
|
int32_t length | |
| |
|
char prefix [ArrowStringViewConstants::PREFIX_BYTES] | |
| |
|
int32_t buffer_index | |
| |
|
int32_t offset | |
| |
| } | ref | |
| | Representation of non-inlined arrow string views.
|
| |
◆ arrow_string_view_t() [1/3]
| duckdb::arrow_string_view_t::arrow_string_view_t |
( |
| ) |
|
|
inline |
◆ arrow_string_view_t() [2/3]
| duckdb::arrow_string_view_t::arrow_string_view_t |
( |
int32_t |
length, |
|
|
const char * |
data |
|
) |
| |
|
inline |
Constructor for inlined arrow string views.
33869 {
33870 D_ASSERT(length <= ArrowStringViewConstants::MAX_INLINED_BYTES);
33872 memcpy(
inlined.data, data, UnsafeNumericCast<idx_t>(length));
33873 if (length < ArrowStringViewConstants::MAX_INLINED_BYTES) {
33874
33875 uint8_t remaining_bytes = ArrowStringViewConstants::MAX_INLINED_BYTES - NumericCast<uint8_t>(length);
33876
33877 memset(&
inlined.data[length],
'\0', remaining_bytes);
33878 }
33879 }
struct duckdb::arrow_string_view_t::@12 inlined
Representation of inlined arrow string views.
◆ arrow_string_view_t() [3/3]
Constructor for non-inlined arrow string views.
33882 {
33883 D_ASSERT(length > ArrowStringViewConstants::MAX_INLINED_BYTES);
33884 ref.length = length;
33885 memcpy(
ref.prefix, data, ArrowStringViewConstants::PREFIX_BYTES);
33886 ref.buffer_index = buffer_idx;
33887 ref.offset = offset;
33888 }
struct duckdb::arrow_string_view_t::@13 ref
Representation of non-inlined arrow string views.
◆ Length()
| int32_t duckdb::arrow_string_view_t::Length |
( |
| ) |
const |
|
inline |
◆ IsInline()
| bool duckdb::arrow_string_view_t::IsInline |
( |
| ) |
const |
|
inline |
33907 {
33908 return Length() <= ArrowStringViewConstants::MAX_INLINED_BYTES;
33909 }
◆ GetInlineData()
| const char * duckdb::arrow_string_view_t::GetInlineData |
( |
| ) |
const |
|
inline |
33911 {
33912 return IsInline() ?
inlined.data :
ref.prefix;
33913 }
◆ GetBufferIndex()
| int32_t duckdb::arrow_string_view_t::GetBufferIndex |
( |
| ) |
|
|
inline |
33914 {
33915 D_ASSERT(!IsInline());
33916 return ref.buffer_index;
33917 }
◆ GetOffset()
| int32_t duckdb::arrow_string_view_t::GetOffset |
( |
| ) |
|
|
inline |
33918 {
33919 D_ASSERT(!IsInline());
33921 }
The documentation for this union was generated from the following file:
- external/duckdb/duckdb.cpp