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:
@ -327,6 +327,7 @@ void CaseExpr::get_child_val(int child_idx, ExprContext* ctx, TupleRow* row, Any
|
||||
case TYPE_CHAR:
|
||||
case TYPE_VARCHAR:
|
||||
case TYPE_HLL:
|
||||
case TYPE_OBJECT:
|
||||
*reinterpret_cast<StringVal*>(dst) = _children[child_idx]->get_string_val(ctx, row);
|
||||
break;
|
||||
case TYPE_DECIMAL:
|
||||
@ -373,6 +374,7 @@ bool CaseExpr::any_val_eq(const TypeDescriptor& type, const AnyVal* v1, const An
|
||||
case TYPE_CHAR:
|
||||
case TYPE_VARCHAR:
|
||||
case TYPE_HLL:
|
||||
case TYPE_OBJECT:
|
||||
return AnyValUtil::equals(type, *reinterpret_cast<const StringVal*>(v1),
|
||||
*reinterpret_cast<const StringVal*>(v2));
|
||||
case TYPE_DECIMAL:
|
||||
|
||||
Reference in New Issue
Block a user