RussellSpitzer commented on code in PR #14234:
URL: https://github.com/apache/iceberg/pull/14234#discussion_r3250007945
##########
format/spec.md:
##########
@@ -686,9 +687,31 @@ Notes:
5. The `content_offset` and `content_size_in_bytes` fields are used to
reference a specific blob for direct access to a deletion vector. For deletion
vectors, these values are required and must exactly match the `offset` and
`length` stored in the Puffin footer for the deletion vector blob.
6. The following field ids are reserved on `data_file`: 141.
-###### Bounds for Variant, Geometry, and Geography
+##### Field-level Metrics and Statistics
-For Variant, values in the `lower_bounds` and `upper_bounds` maps store
serialized Variant objects that contain lower or upper bounds respectively. The
object keys for the bound-variants are normalized JSON path expressions that
uniquely identify a field. The object values are primitive Variant
representations of the lower or upper bound for that field. Including bounds
for any field is optional and upper and lower bounds must have the same Variant
type.
+Field statistics (or, interchangeably, metrics) are used when filtering to
select data and delete files.
+
+In v3 and earlier, metrics are stored in maps keyed by column id:
`value_counts`, `null_value_counts`, `nan_value_counts`, `lower_bounds` and
`upper_bounds`.
+
+In v4, metrics are stored as typed values in the `content_stats` struct,
documented in the [Content Stats](#content-stats) section.
+
+Both representations store equivalent information. If a map or id in a map is
missing in v3, it is equivalent to a `null` value or missing field struct in
v4. Lower bounds must be less than or equal to all non-null and non-NaN values
and upper bounds must be greater than or equal to all non-null and non-NaN
values.
+
+For delete files, metrics must store bounds and counts for all deleted rows,
or must be omitted. Storing metrics for deleted rows ensures that the values
can be used during job planning to find delete files that must be merged during
a scan.
Review Comment:
I should have been more specific, I meant structurally in the document we go
Both - Field statistics ...
V3 - In V3
V4 - In V4
Both -
I was just wondering if it should be
Both { shared stuff }
Then
V3 stuff
Then V4 Stuff
Not a blocker
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]