-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Integration
Currently there are a lot of branches that occur per-element for decompressGeneral() which handles decompression of interleaved data when we need to materialize objects (or scalar fields that must be interleaved in the output due to arrays and "traverse" paths).
We could avoid a lot of this branching if we pushed materialization into the DecodeState nested class, and avoid excess switching on the data type of elements. Additionally, we could remove the Elem variant type altogether, which would simplify things a lot.
It might make sense to start this work after the dust has settled from the fix for SERVER-87339, which will affect how reference object traversal works.