Add object type (#1948)

Add a new type: Object. Currently, it's mainly for complex aggregate metrics(HLL , Bitmap).

The Object type has the following constraints:
1 Object type could not as key column type
2 Object type doesn't support all indices (BloomFilter, short key, zone map, invert index)
3 Object type doesn't support filter and group by

In the implementation:

The Object type reuse the StringValue and StringVal, because in storage engine, the Object type is binary, it has a pointer and length.
This commit is contained in:
kangkaisen
2019-10-31 21:42:58 +08:00
committed by ZHAO Chun
parent 78d7a8f315
commit 95a3b4ccfe
46 changed files with 257 additions and 249 deletions

View File

@ -56,7 +56,8 @@ void VectorizedRowBatch::dump_to_row_block(RowBlock* row_block) {
size_t field_size = 0;
if (column.type() == OLAP_FIELD_TYPE_CHAR ||
column.type() == OLAP_FIELD_TYPE_VARCHAR ||
column.type() == OLAP_FIELD_TYPE_HLL) {
column.type() == OLAP_FIELD_TYPE_HLL ||
column.type() == OLAP_FIELD_TYPE_OBJECT) {
field_size = sizeof(Slice);
} else {
field_size = column.length();
@ -102,7 +103,8 @@ void VectorizedRowBatch::dump_to_row_block(RowBlock* row_block) {
size_t field_size = 0;
if (column.type() == OLAP_FIELD_TYPE_CHAR ||
column.type() == OLAP_FIELD_TYPE_VARCHAR ||
column.type() == OLAP_FIELD_TYPE_HLL) {
column.type() == OLAP_FIELD_TYPE_HLL ||
column.type() == OLAP_FIELD_TYPE_OBJECT) {
field_size = sizeof(Slice);
} else {
field_size = column.length();