The version of parquet-fortran itself, and nothing else.
This module is a LEAF: it imports parquet_settings_base for the library's
informational output channel and nothing further, so it reaches neither
parquet_bindings nor the Arrow/Parquet C++ stack. That is what lets a
program built on one of the Arrow-free tiers -- parquet_random,
parquet_argsort, parquet_sampling, parquet_columns, parquet_strings,
parquet_temporal, parquet_sorting -- report which parquet-fortran it was
built against, with use parquet_version and no other cost.
Only use parquet re-exports this procedure. Every other entry module
leaves it here deliberately, so that none of them grows a dependency for a
string that is fixed at compile time; a program importing one of those writes
a second use parquet_version line. This is a deliberate exception to the
rule that each module re-exports the settings its own code reads -- a version
string is not a setting, and nothing in this library reads it.
It does re-export the two OUTPUT settings, verbosity and message_stream,
because this module can print: parquet_get_version emits a remark on a
development build whose RELEASE_VERSION substitution did not happen, and a
program importing nothing else has to be able to quiet or redirect it. That
is the ordinary rule applying, not a second exception to it.
For the version of the Arrow and Parquet C++ libraries actually linked, call
parquet_get_arrow_version instead (parquet_settings, and so also
parquet_io and parquet). That query needs the C++ boundary, which is
exactly what this module is defined not to have.
Returns this library's own version string. Default (mode absent): the RELEASE_VERSION build macro's bare release number; emits an informational remark first if that disagrees with cversion (a hand-maintained "vX.Y.Z (date)" string), which signals a build that skipped fpm's macro substitution or a version bump missed on one side. mode="internal" instead returns cversion verbatim. Any other mode value is an error -- in particular the linked Arrow and Parquet C++ library versions are reported by parquet_get_arrow_version, not by this procedure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=:), | intent(out), | allocatable | :: | ver_string |
resulting version string. |
|
| character(len=*), | intent(in), | optional | :: | mode |
"internal"; absent = default RELEASE_VERSION behavior. |