@@ -26,9 +26,9 @@ current supported type mappings.
2626| ` float16 ` | ` Float16 ` | |
2727| ` float32 ` | ` Float32 ` | |
2828| ` float64 ` | ` Float64 ` | |
29- | ` bytes ` | ` BinaryView ` | When the field name is ` bbox ` , mapped to WKB with EPSG:4326 CRS via the GeoArrow extension type instead |
29+ | ` VariableLengthBytes ` | ` BinaryView ` | When the field name is ` bbox ` , mapped to WKB with EPSG:4326 CRS via the GeoArrow extension type instead |
3030| ` r<N> ` (raw bits) | ` BinaryView ` | |
31- | ` string ` | ` Utf8View ` | |
31+ | ` VariableLengthUTF8 ` | ` Utf8View ` | |
3232| ` numpy.datetime64[s] ` | ` Timestamp(Second, None) ` | |
3333| ` numpy.datetime64[ms] ` | ` Timestamp(Millisecond, None) ` | |
3434| ` numpy.datetime64[us] ` | ` Timestamp(Microsecond, None) ` | |
@@ -53,3 +53,15 @@ group called `indexes` and search for an array of the same name as the
5353predicate array. Currently the only index type supported are R-tree indexes
5454generated by the [ geo-index] ( https://github.com/georust/geo-index )
5555library but we will continue to expand index support.
56+
57+ ### Decoding performance
58+ Whenever possible it is worthwhile to avoid including VariableLengthBytes fields
59+ in your query's projection. Variable length decoding incurs a significantly
60+ higher cost than decoding fixed width types and can drastically affect query
61+ performance. This is especially evident when an index is present and the actual
62+ chunks don't need to be materialized for filter operations. See the results of
63+ ```
64+ cargo bench --bench bbox_zarrs_raw
65+ ```
66+ as an example.
67+
0 commit comments