📄️ Types(数据类型)
Pollux 支持标量类型和复杂类型。标量类型分为一组固定的物理类型和一组可扩展的逻辑类型。
📄️ Vectors(向量)
Pollux 向量是一种列式内存格式,用于在执行期间存储查询数据。它与 Arrow 类似,但编码方 式更多,并且对字符串、
📄️ 如何添加标量函数?
简单的功能
📄️ 如何添加聚合函数?
聚合函数由 HashAggregation 运算符计算。单个运算符中可以有一个或多个聚合函数。
📄️ 视图和编写器类型
在标量函数和聚合函数的简单函数接口中,视图类型和写入器类型分别用作复杂类型和字符串类型的输入和输出参数类型。
📄️ 如何添加 lambda 函数?
本文假 设您熟悉 Presto 的 lambda 函数
📄️ 表达式计算 (Expression Evaluation)
Pollux 具有矢量化表达式求值功能。它在 FilterProject 运算符中用于求值过滤器和项目表达式,在
📄️ 字典编码(Dictionary Encoding)
Introduction
📄️ Arena Allocation
exec::Allocation 支持的 arena,并支持连续和非连续分配。它用于存储聚
📄️ Hash table
Pollux 中使用的哈希表与 F14 哈希表 类似。
📄️ 聚合(Aggregations)
本文探讨 Pollux 中与聚合相关的优化。我们将介绍不同的技术,并提供示例并定义每种技术的应用条件。
📄️ Connectors
连接器允许从外部源读取和写入数据。
📄️ Joins
Pollux 支持使用分区或广播分布策略的内部连接、左连接、右连接、完全外部连接、左半过滤连接、左半投影连接、右半过滤连接、右半
📄️ Anti joins
反连接可用于高效地实现带有 NOT IN ` 和 NOT EXISTS ` 子 句的查询。当外部查询或子查询
📄️ Plan Nodes and Operators
Pollux 查询计划是由 PlanNode 组成的树状结构。每个 PlanNode 都有零个或多个子 PlanNode。为了执行查询计划,Pollux 会将其转换为一组管道。
📄️ What's in the Task?
一些运算符需要与其他运算符协调工作。
📄️ SIMD Usage in Pollux
SIMD 使用 CPU 中的特殊寄存器来同时操作多个原始数据。在某些基本情况下,编译器能够将紧密循环转换为 SIMD 指令,但通常我们需要显式调用 SIMD 内部函数。
📄️ Memory Management
Background
📄️ Spilling
Background
🗃️ Serialization
3 items
🗃️ 调试
5 items
🗃️ 测试
8 items
📄️ Timestamp and Timezone Management
Following ANSI SQL semantics, TIMESTAMP is a data type that represents a
📄️ Window functions
Pollux 支持使用 Window 运算符来计算窗口函数。在本指南中,我们将讨论此运算符中一些复杂的设计问题。
📄️ Dynamic Loading of Pollux Extensions
This generic utility adds extensibility features to load User Defined Functions (UDFs) without having to fork and build Pollux, through the use of shared libraries. Support for connectors and types will be added in the future.