The Query Transformation Pipeline
4 hours ago
- Readyset将传统的基于拉取的查询执行替换为一个数据流图,该图在数据变化时增量维护缓存结果,从而消除了重复的查询执行。
- 查询重写流水线将任意SQL转换为数据流引擎可编译的规范形式,组织为三个模块:标准化(语法脱糖、模式解析)、深层重写(去关联、内联、连接重排序)和清理(消除冗余、参数化字面量)。
- 关键转换包括数组构造函数重写、冗余连接消除、Top-K模式的左链提升、带三值逻辑处理的子查询去关联、派生表内联以及用于规范缓存共享的连接重排序。
- 该流水线确保语义保持并满足数据流引擎的约束:带等值谓词的二元连接、无相关执行、扁平连接结构以及显式的GROUP BY/ORDER BY引用。
- 未来工作包括基于成本的连接重排序、放宽转换保护措施,以及为常见ORM和BI工具查询模式添加特定模式的重写。