parquet_string_column_append_from Interface

public interface parquet_string_column_append_from

Typed form of %append_from, generic over an int32 or int64 index/count argument.


Module Procedures

private subroutine parquet_string_column_append_from_i32(self, src, i)

int32 specific of append_from; see the append_from generic.

Arguments

Type IntentOptional Attributes Name
type(parquet_string_column), intent(inout) :: self

the destination column.

type(parquet_string_column), intent(in) :: src

the source column.

integer(kind=int32), intent(in) :: i

1-based source element index.

private subroutine parquet_string_column_append_from_i64(self, src, i)

int64 specific of append_from: appends element i of src to the end of self, null state included.

The allocation-free counterpart of call src%get(i, s); call dst%append_string(s), which is the shape every "copy the rows I want into a new column" loop reaches for and which costs one heap round trip per row for bytes that are already contiguous in src. See feature_risks.md Risk-60.

It never trims, matching %append_string's own default: the bytes are copied verbatim.

src must not be the same object as self. Fortran forbids argument-associating one object with both an intent(inout) and an intent(in) dummy of the same call once either is defined (F2018 15.5.2.13), and neither gfortran nor ifx diagnoses it. Appending a column to itself is %append_column(other)'s job, on a copy.

Arguments

Type IntentOptional Attributes Name
type(parquet_string_column), intent(inout) :: self

the destination column.

type(parquet_string_column), intent(in) :: src

the source column.

integer(kind=int64), intent(in) :: i

1-based source element index.