Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/duckdb/src/function/table/arrow_conversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -349,26 +349,29 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, const ArrowScan
//! Have to check validity mask before setting this up
idx_t offset = GetEffectiveOffset(array, parent_offset, scan_state, nested_offset) * fixed_size;
auto cdata = ArrowBufferData<char>(array, 1);
auto blob_len = fixed_size;
auto result = FlatVector::GetData<string_t>(vector);
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
if (FlatVector::IsNull(vector, row_idx)) {
offset += blob_len;
continue;
}
auto bptr = cdata + offset;
auto blob_len = fixed_size;
FlatVector::GetData<string_t>(vector)[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len);
result[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len);
offset += blob_len;
}
} else if (size_type == ArrowVariableSizeType::NORMAL) {
auto offsets =
ArrowBufferData<uint32_t>(array, 1) + GetEffectiveOffset(array, parent_offset, scan_state, nested_offset);
auto cdata = ArrowBufferData<char>(array, 2);
auto result = FlatVector::GetData<string_t>(vector);
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
if (FlatVector::IsNull(vector, row_idx)) {
continue;
}
auto bptr = cdata + offsets[row_idx];
auto blob_len = offsets[row_idx + 1] - offsets[row_idx];
FlatVector::GetData<string_t>(vector)[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len);
result[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len);
}
} else {
//! Check if last offset is higher than max uint32
Expand All @@ -378,13 +381,14 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, const ArrowScan
auto offsets =
ArrowBufferData<uint64_t>(array, 1) + GetEffectiveOffset(array, parent_offset, scan_state, nested_offset);
auto cdata = ArrowBufferData<char>(array, 2);
auto result = FlatVector::GetData<string_t>(vector);
for (idx_t row_idx = 0; row_idx < size; row_idx++) {
if (FlatVector::IsNull(vector, row_idx)) {
continue;
}
auto bptr = cdata + offsets[row_idx];
auto blob_len = offsets[row_idx + 1] - offsets[row_idx];
FlatVector::GetData<string_t>(vector)[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len);
result[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len);
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/duckdb/src/function/table/version/pragma_version.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef DUCKDB_PATCH_VERSION
#define DUCKDB_PATCH_VERSION "0-dev3675"
#define DUCKDB_PATCH_VERSION "0"
#endif
#ifndef DUCKDB_MINOR_VERSION
#define DUCKDB_MINOR_VERSION 3
Expand All @@ -8,10 +8,10 @@
#define DUCKDB_MAJOR_VERSION 1
#endif
#ifndef DUCKDB_VERSION
#define DUCKDB_VERSION "v1.3.0-dev3675"
#define DUCKDB_VERSION "v1.3.0"
#endif
#ifndef DUCKDB_SOURCE_ID
#define DUCKDB_SOURCE_ID "eda01835de"
#define DUCKDB_SOURCE_ID "71c5c07cdd"
#endif
#include "duckdb/function/table/system_functions.hpp"
#include "duckdb/main/database.hpp"
Expand Down