parquet_parse_sort_key Interface

interface
public module subroutine parquet_parse_sort_key(key, name, descending, ok, errmsg)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: key

raw key text from one %add call.

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

column name (possibly a dotted struct path).

logical, intent(out) :: descending

.true. for a descending key.

logical, intent(out) :: ok

.true. if the key parsed.

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

parse-failure message; "" when ok.

Description

Parses one parquet_sortkey%add key ("ra asc", "-dec", "main.inner.age") into its column name and direction. Purely syntactic: reports a parse failure via ok/errmsg -- never aborts, so the caller can attach the reader's file context to the message -- and leaves every schema-dependent check (column exists, type is orderable) to the C++ side.

Declared here rather than in parquet_read.f90 (and public) because parquet_tables parses the same grammar for its own string key lists -- t%sort_by("ra,-dec"). One parser, so the read-time and in-memory spellings of a direction cannot drift apart.