parquet_set_target_row_group_bytes Interface

public interface parquet_set_target_row_group_bytes

Sets the largest key value range the sort's counting fast path will accept. See parquet_set_sort_counting_bucket_limit_int64 for the full description. Sets the work floor, in elements per thread, below which a bulk permutation stays serial. See parquet_set_random_parallel_min_elements_int64 for the full description. Sets the byte size an auto-sized row group aims for. See parquet_set_target_row_group_bytes_int64 for the full description.


Module Procedures

private subroutine parquet_set_target_row_group_bytes_int32(n)

int32 form of parquet_set_target_row_group_bytes_int64 -- see it for what the value means.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: n

byte target, or 0 for the built-in default; must be >= 0.

private subroutine parquet_set_target_row_group_bytes_int64(n)

Sets the size in BYTES an auto-sized row group aims for. Pass 0 to restore the built-in 268435456 (256 MiB).

Applies only when a writer is opened without an explicit chunk_size=; a caller-chosen row count is never overridden. Sizing by bytes rather than by a flat row count is what makes a table of narrow int32 columns and a table of wide vector columns produce row groups of comparable size, which is what Parquet's own row-group guidance (roughly 128 MB to 1 GB) is about and what drives per-row-group compression efficiency and decode cost.

Three bounds the library applies afterwards are NOT settable: a floor of 1000 rows, a ceiling of 10,000,000 rows, and the int32 element-count ceiling a vector column imposes. A target so small that even the floor would overshoot it fourfold abandons the floor rather than the target, down to a single row per row group.

Available in both integer kinds; a byte target can exceed int32.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: n

byte target, or 0 for the built-in default; must be >= 0.