| Type | Location | Extends | Description |
|---|---|---|---|
| parquet_column | parquet_columns | None | One column's values: a kind discriminator, one active storage array, sparse validity, an optional unit, and the row/width geometry. |
| parquet_column_info | parquet_core | None | Column-level schema state for one MAML: an array of parquet_column_type, one per declared field, plus lookups/toggles over it. Embedded in parquet_schema%cinfo; parquet_schema's own type-bound procedures are flat passthroughs to the ones here. |
| parquet_column_type | parquet_core | None | One schema field's write-time metadata and QC bounds, parsed from a MAML fields: entry (or built via schema%add_field); one array element per field, held in parquet_column_info%col(:). |
| parquet_date | parquet_temporal | None | A calendar date (proleptic Gregorian), stored as days since 1970-01-01 -- identical to the physical value of a Parquet DATE / Arrow date32 column. A default-initialized element is null. Range: about +-5.8 million years. |
| parquet_filter | parquet_core | None | A row filter for parquet_open_reader/parquet_reader_set_filter: each %add
call contributes one boolean expression over the file's columns, and
several %add calls are AND-combined, i.e. (expr1) and (expr2). One
expression is either a single clause, " |
| parquet_maml_col_map_entry | parquet_maml_base | None | One col_map: entry: |
| parquet_maml_file | parquet_maml_base | None | One embedded or user-supplied MAML file: its raw source lines plus, once parsed/validated, the columns missing relative to the base schema and any col_map: renames it declares. add_col_qc/set_col_qc build a qc-maml incrementally (see parquet_maml_base_add_col_qc.f90). |
| parquet_maml_missing_column | parquet_maml_base | None | One schema field the base MAML declares but a user-supplied MAML omits; populated by parquet_validate_user_maml, one entry per missing field. |
| parquet_read_qc | parquet_core | None | Read-time quality control declared in CODE rather than in a MAML file: one column per %add call, in exactly the compact "col, min, max, miss" string parquet_schema%add_col_qc already takes, so there is one read-time-QC grammar in this library rather than two. See "Building a qc-maml in code" in doc/pages/schema/quality-control.md for the field syntax -- the operator prefixes (>, >=, <, <=) and the Null/NA/empty miss: convention are inherited from %add_col_qc verbatim. |
| parquet_reader | parquet_core | None | Opaque handle for an open parquet file being read; see parquet_writer's doc comment above for the shared handle-ownership/no-copy rules. |
| parquet_schema | parquet_core | None | Bundles a parsed MAML source together with the column schema (cinfo) and table metadata (metadata) that parquet_parse_maml derives from it, so a single variable carries everything parquet_open_writer needs. %cinfo and %metadata are public: their fields (col(:), items(:)) and own type-bound procedures stay directly reachable, and the procedures below are flat convenience passthroughs (schema%set_column_available("id") instead of schema%cinfo%set_column_available("id")). |
| parquet_slice | parquet_tables | None | Which rows to pick out of a column: |
| parquet_sortkey | parquet_core | None | A read-time sort specification: an ordered list of sort KEYS, each naming one column and the direction to order it by. Passed as parquet_open_reader(..., sort_by=), or applied to an already-open reader with parquet_reader_set_sort. Every column read afterwards comes back in that order. |
| parquet_string | parquet_strings | None | A lightweight, non-owning handle to one element of a parquet_string_column. |
| parquet_string_column | parquet_strings | None | An owning, Arrow-LargeUtf8-compatible variable-length string column. |
| parquet_table | parquet_tables | None | A whole table: a column store plus the row scope and provenance describing it.
Declared by the caller ( |
| parquet_table_col | parquet_tables | None | A resolved handle on ONE column of a |
| parquet_table_metadata | parquet_core | None | Flat key-value table metadata: one array of parquet_metadata_entry plus the add_metadata family of type-bound procedures that append to it (one specific per supported type/kind, dispatched via the add_metadata generic). |
| parquet_table_row | parquet_tables | None | One row of a table, as a lightweight handle: |
| parquet_table_test | parquet_table_example | parquet_table | Predefined-column table generated from the |
| parquet_time | parquet_temporal | None | A time of day, stored as nanoseconds since midnight, [0, 86400e9 - 1]. Holds any Parquet TIME unit (seconds/millis/micros/nanos) exactly. A default-initialized element is null. |
| parquet_timestamp | parquet_temporal | None | An instant, stored losslessly as whole seconds since 1970-01-01T00:00:00 plus a normalized nanosecond-of-second part (always 0..999999999, also for pre-epoch instants). Holds any Parquet TIMESTAMP unit exactly over the full int64 range of the stored value. Timezone-agnostic: holds the stored epoch offset verbatim. A default-initialized element is null. |
| parquet_writer | parquet_core | None | parquet_writer/parquet_reader own a handle to a C++-side Arrow/Parquet object with no automatic Fortran cleanup. Always prefer an explicit parquet_close_writer/parquet_close_reader call; the FINAL procedures below are only a safety net for a handle that's still open when its variable goes out of scope or is overwritten (e.g. an early RETURN between open and close), not a substitute for closing normally -- for a writer specifically, the safety net skips parquet_close_writer's completeness checks (so an incomplete write never crashes an implicit finalizer), meaning the resulting file is not guaranteed valid/complete unless parquet_close_writer was actually called. |
| pf_random_stream | parquet_random | None | A walk along one stream: the same values tier 0 addresses, reached in sequence. |
| pf_sort_keys | parquet_sorting | None | A list of sort keys, applied in the order added -- the first key added is the primary one. |
| pf_weighted_draw | parquet_sampling | None | Successive sampling without replacement: draw one item with probability proportional to its weight, remove it, renormalise over the survivors, repeat. |
| sort_key_buf | parquet_argsort | None | One extracted sort key, in the canonical form the C++ engine takes. |