ClickHouse 架构概述之Field介绍

ClickHouse 架构概述之Field介绍

盛年不重来,一日难再晨,及时当勉励,岁月不待人

尽管如此,有时候也可能需要处理单个值。表示单个值,可以使用 FieldField 是 UInt64Int64Float64String 和 Array 组成的联合。IColumn 拥有 operator[] 方法来获取第 n 个值成为一个 Field,同时也拥有 insert 方法将一个 Field 追加到一个列的末尾。这些方法并不高效,因为它们需要处理表示单一值的临时 Field 对象,但是有更高效的方法比如 insertFrom 和 insertRangeFrom 等。

Field 中并没有足够的关于一个表(table)的特定数据类型的信息。比如,UInt8UInt16UInt32 和 UInt64 在 Field 中均表示为 UInt64

Field对应的代码目录位置在dbms\src\Core下的Field.cpp和Field.h

Field的作用在于可以将Null、UInt64、Int64、Float64、UInt128、Int128、String、Array、Tuple、Decimal32、Decimal64、Decimal128和AggregateFunctionState这些类型都用Field模板类来表示,达到更通用和高效的目的。

支持等于、小于、大于、小于等于、大于等于、==和不等于等算法,对应的类如下图所示:

 

posted @ 2020-03-21 20:23  飞舞的小蛇  阅读(1018)  评论(0)    收藏  举报