Writes one column's values for the currently-open row group (see parquet_new_row_group)
to an open parquet_writer (writer), under the given column name (name) -- the streaming
counterpart to parquet_write_column, for a large column you build and write one row group
at a time instead of as one complete array. Dispatched by the actual/declared type/kind of
values, same as parquet_write_column (scalar values(:) or matrix/vector values(:,:)),
and every column's chunk for the currently-open row group must have exactly
parquet_new_row_group's own nrows rows. A schema-enforced column's values are converted to
its declared data_type exactly as parquet_write_column converts them (int32/int64/float32/
float64 in any combination; a float-to-integer conversion error stops on a non-integral or
out-of-range value, per chunk), so the same values are accepted whichever path writes them --
see parquet_append_as_schema_chunk_int32. A kind the declared type is not compatible with at
all (a logical chunk into an int32 column, say) is still an error stop. A column written
once via parquet_write_column can never also be written via parquet_write_column_chunk
(or vice versa), and every column must appear in the first row group written for this
writer, since a Parquet file's schema is fixed from that point on.
A scalar "string" column can also be passed as a type(parquet_string_column) holding
exactly this row group's rows -- see parquet_write_column's own doc comment above for the
shared parquet_string_column notes (no is_valid, scalar only).