Skip to content

Commit b20f211

Browse files
Added NULL checks
1 parent 9d2d17b commit b20f211

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

include/sqlgen/duckdb/ColumnData.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ struct ColumnData {
1010
duckdb_vector vec;
1111
T *data;
1212
uint64_t *validity;
13+
14+
bool is_not_null(idx_t _i) const {
15+
return (validity == nullptr) || duckdb_validity_row_is_valid(validity, _i);
16+
}
1317
};
1418

1519
} // namespace sqlgen::duckdb

include/sqlgen/duckdb/from_chunk_ptrs.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ struct FromChunkPtrs<T, rfl::NamedTuple<FieldTs...>,
2626
return [&]<int... _is>(std::integer_sequence<int, _is...>) -> Result<T> {
2727
try {
2828
return T{duckdb::parsing::Parser<typename FieldTs::Type>::read(
29-
rfl::get<_is>(_chunk_ptrs).data + _i)
29+
rfl::get<_is>(_chunk_ptrs).is_not_null(_i)
30+
? rfl::get<_is>(_chunk_ptrs).data + _i
31+
: nullptr)
3032
.value()...};
3133
} catch (const std::exception& e) {
3234
return error(e.what());

0 commit comments

Comments
 (0)