parquet_get_qc_columns Interface

interface
public module subroutine parquet_get_qc_columns(schema, names)

Arguments

Type IntentOptional Attributes Name
type(parquet_schema), intent(in) :: schema

a qc schema (composed or loaded).

character(len=:), intent(out), allocatable :: names(:)

columns with a qc: block.

Description

Validates and parses a qc-maml's fields: entries into rules, one entry per field that has at least a name (data_type/unit/ucd/etc. are irrelevant here and never required) -- error stops on a duplicate field name, an unknown top-level section/sub-key, or an unrecognized qc: miss: value (anything other than Null/NA, case-insensitive, or empty). Table-level metadata is ignored entirely. See parquet_qc_rule's own doc comment for min_text/max_text. The columns a qc-MAML declares an actual qc: block for, as a blank-padded array.

Answers "what does this qc actually constrain?" without exposing the rule objects themselves: a field that merely NAMES a column, with no qc: key, declares nothing and is left out -- the same distinction parquet_apply_qc makes before it reaches the reader. names comes back zero-size when nothing is constrained. Sized to the longest name and blank-padded, so trim(names(i)) is the name to pass on.