3 Commits

Author SHA1 Message Date
Matvey Arye
12929fc813 Use DatumSerialize for binary strings
This is a refactor of the array and dictionary code to use binary
string functions in datum serialize to consolidate code. We also
made the datum serialize more flexible in that it no longer must use
a byte to store the encoding type (binary or text) but instead can
get that as input. This makes the encoding use less data in the
array case.
2019-10-29 19:02:58 -04:00
Matvey Arye
14f02f423e Switch the array code to use DatumSerializer
This commit switches the array compressor code to using
DatumSerializer/DatumDeserializer to reduce code duplication
and to add in some more efficiency.
2019-10-29 19:02:58 -04:00
Matvey Arye
b9674600ae Add segment meta min/max
Add the type for min/max segment meta object. Segment metadata
objects keep metadata about data in segments (compressed rows).
The min/max variant keeps the min and max values inside the compressed
object. It will be used on compression order by columns to allow
queries that have quals on those columns to be able to exclude entire
segments if no uncompressed rows in the segment may match the qual.

We also add generalized infrastructure for datum serialization
/ deserialization for arbitrary types to and from memory as well
as binary strings.
2019-10-29 19:02:58 -04:00