parquet_set_sort_counting_bucket_limit Interface

public interface parquet_set_sort_counting_bucket_limit

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.


Module Procedures

private subroutine parquet_set_sort_counting_bucket_limit_int32(n)

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

Arguments

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

bucket ceiling, or 0 for the built-in default; must be >= 0.

private subroutine parquet_set_sort_counting_bucket_limit_int64(n)

Sets the largest key value RANGE for which the sort's counting fast path is taken. Pass 0 to restore the built-in 4194304 (2**22).

Range, not cardinality -- the bound is max(key) - min(key), so a thousand values spread over a billion is far outside a limit that a million densely-packed values sit inside. This distinction has already misled one test author here (feature_risks.md Risk-39).

The number IS the memory control: n buckets costs 8n bytes of counters, so the built-in value caps the counting path at 32 MB. Raising it trades memory for speed on wide-ranged integer keys; it does nothing at all while parquet_set_sort_counting_path is .false..

Available in both integer kinds; an int64 key's range can exceed int32.

Arguments

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

bucket ceiling, or 0 for the built-in default; must be >= 0.