diff --git a/src/duckdb/src/function/table/arrow_conversion.cpp b/src/duckdb/src/function/table/arrow_conversion.cpp index 73a19ca8a..732549b03 100644 --- a/src/duckdb/src/function/table/arrow_conversion.cpp +++ b/src/duckdb/src/function/table/arrow_conversion.cpp @@ -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(array, 1); + auto blob_len = fixed_size; + auto result = FlatVector::GetData(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(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(array, 1) + GetEffectiveOffset(array, parent_offset, scan_state, nested_offset); auto cdata = ArrowBufferData(array, 2); + auto result = FlatVector::GetData(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(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 @@ -378,13 +381,14 @@ static void ArrowToDuckDBBlob(Vector &vector, ArrowArray &array, const ArrowScan auto offsets = ArrowBufferData(array, 1) + GetEffectiveOffset(array, parent_offset, scan_state, nested_offset); auto cdata = ArrowBufferData(array, 2); + auto result = FlatVector::GetData(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(vector)[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len); + result[row_idx] = StringVector::AddStringOrBlob(vector, bptr, blob_len); } } } diff --git a/src/duckdb/src/function/table/version/pragma_version.cpp b/src/duckdb/src/function/table/version/pragma_version.cpp index b06a780d0..dbbe6f6bc 100644 --- a/src/duckdb/src/function/table/version/pragma_version.cpp +++ b/src/duckdb/src/function/table/version/pragma_version.cpp @@ -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 @@ -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"