首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ClickHouse源码笔记5:聚合函数的源码再梳理

You can collect arguments into array "places" * and do a single call to "addBatch" for devirtualization...and inlining. */ virtual void addBatch(size_t batch_size, AggregateDataPtr * places, size_t...addBatch函数:这是函数也是非常重要的,虽然它仅仅实现了一个for循环调用add函数。它通过这样的方式来减少虚函数的调用次数,并且增加了编译器内联的概率,同样,它实现了高效的向量化。...首先看聚合节点Aggregetor是如何调用addBatch函数: /// Add values to the aggregate functions....而addBatch接口就是一行行的遍历列,将参数列inst->arguments与上文提到create函数构造的聚合数据结构的两列列数据进行聚合计算: void addBatch(size_t

1.2K20

ClickHouse源码笔记5:聚合函数的源码再梳理

You can collect arguments into array "places" * and do a single call to "addBatch" for devirtualization...and inlining. */ virtual void addBatch(size_t batch_size, AggregateDataPtr * places, size_t...addBatch函数:这是函数也是非常重要的,虽然它仅仅实现了一个for循环调用add函数。它通过这样的方式来减少虚函数的调用次数,并且增加了编译器内联的概率,同样,它实现了高效的向量化。...首先看聚合节点Aggregetor是如何调用addBatch函数: /// Add values to the aggregate functions....而addBatch接口就是一行行的遍历列,将参数列inst->arguments与上文提到create函数构造的聚合数据结构的两列列数据进行聚合计算: void addBatch(size_t

77530
领券