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

@ -335,10 +335,11 @@ void* ExprContext::get_value(Expr* e, TupleRow* row) {
}
case TYPE_CHAR:
case TYPE_VARCHAR:
case TYPE_HLL: {
case TYPE_HLL:
case TYPE_OBJECT: {
doris_udf::StringVal v = e->get_string_val(this, row);
if (v.is_null) {
return NULL;
return nullptr;
}
_result.string_val.ptr = reinterpret_cast<char*>(v.ptr);
_result.string_val.len = v.len;