Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0-ALPHA
-
None
-
New
Description
Currently ValueType exposes a lot of impl. details about how values are stored. However, since those are really impl details we should move those into the codec and decide during indexing which storage variant we are using. (robert convinced me this is the right thing and we should explore it)
We can basically reduce the ValuesType to
{ Bytes, SortedBytes, FixedInts, Floats, VarInts }. The implementation ie. the codec can decide based on how many unique values and if values have all the same size what storage variant it should use. For merging we would need some statistics exposed on the Source ie. how many unique values and if all value have a fixed size to decide what the target "type" is going to be.
This change would make usage of the API a lot easier and less confusing and at the same time it makes merging and type promotion straight forward since we can decide what type we promote to without loading the IDV provider to get the actual size and compare it.