Parquet.SourceGenerator.AttributesParquetColumnStatistics
Namespace: Parquet.SourceGenerator
The <c>min_value</c> / <c>max_value</c> / <c>null_count</c> zone map a Parquet writer records for one column chunk, projected onto the CLR type of the generated model property (issue #149).
Syntax
ParquetColumnStatistics<T>Implements
UML Class Diagram
ParquetColumnStatistics Class Diagram
Remarks
<para> Statistics are advisory: a writer may omit them, and a file produced by another engine may record them in a physical type this projection cannot map. Both cases surface as <see cref="HasMinMax"/> being <see langword="false"/>, and the generated readers never prune a row group whose statistics are incomplete. </para> <para> Prefer the <c>May*</c> helpers over raw <see cref="Min"/> / <see cref="Max"/> in a pruning predicate: they answer "could this row group contain a matching row?", and answer <see langword="true"/> whenever statistics are missing, so a predicate built from them can never prune away real data. </para> <para> Ordering uses <see cref="Comparer{T}.Default"/>, except for <see cref="string"/>, which uses <see cref="StringComparer.Ordinal"/>. Parquet orders binary columns by unsigned UTF-8 bytes; an ordinal UTF-16 comparison agrees with that across all of ASCII and disagrees only where surrogate pairs meet the U+E000..U+FFFF range. </para>