Materializes the validity bitmap now, with every element still valid.
Nothing about the column's contents changes -- the bitmap is initialised to all-ones -- so
this is purely about when the allocation happens. Its reason to exist is concurrency:
append_null/set_null allocate the bitmap lazily, so two threads nulling elements of the
same previously null-free column would race on that allocation with no diagnostic. Calling
this first leaves them nothing to allocate.
Idempotent: a column that already has a bitmap is untouched, and a zero-row column still gets the minimum allocation, so a later append has nothing to grow from scratch either.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(parquet_string_column), | intent(inout) | :: | self |
the column. |
subroutine parquet_string_column_reserve_validity(self) type(parquet_string_column), intent(inout) :: self !! the column. call ensure_validity_cap(self, max(self%nrows, 1_int64)) self%has_nulls = .true. end subroutine parquet_string_column_reserve_validity