
Apache Calcite 学习资料整理
前言 Apache Calcite 是一个优秀的动态数据管理框架,提供了如:SQL 解析、SQL 校验、SQL 查询优化、SQL 生成以及数据连接查询等典型数据库管理功能。本文主要记录了学习 Calcite 过程中整理收集的资料,希望能够由点及面,逐步深入理解 Calcite 及数据库优化的精髓,也希望能够帮助其他学习 Calcite 的同学。 个人整理 Calcite 知识图谱:思...

前言 Apache Calcite 是一个优秀的动态数据管理框架,提供了如:SQL 解析、SQL 校验、SQL 查询优化、SQL 生成以及数据连接查询等典型数据库管理功能。本文主要记录了学习 Calcite 过程中整理收集的资料,希望能够由点及面,逐步深入理解 Calcite 及数据库优化的精髓,也希望能够帮助其他学习 Calcite 的同学。 个人整理 Calcite 知识图谱:思...

前言 JVM 虚拟机原理及其相关的调优技术是每一位 Java 工程师必备的技能,随着 JDK 不断地发展,新的底层实现和调优方法需要我们不断跟进学习。正所谓「常学常新、常悟常进、常践常得」,笔者将重新学习和梳理 JVM 虚拟机相关知识,并会整理成博文以加深自己对 JVM 的理解,也希望能够帮助其他学习 JVM 的同学。 个人整理 JVM 知识图谱:思维导图(密码: y7km) 重学 ...

前言 在上一篇文章 ShardingSphere 联邦查询 GROUPING 聚合结果问题分析中,我们详细介绍了联邦查询引擎实现 GROUPING 聚合函数存在的问题,当时笔者曾提到 SQLacner 测试工具,它能够通过一些科学的方法来发现 SQL 逻辑问题,帮助提升联邦查询引擎的 SQL 支持度。本文将为大家详细介绍 SQLacner 测试工具,以及工具中内置的几种测试方法,然后我们会...

问题背景 上周笔者所在公司客户反馈,使用商业版联邦查询进行复杂 SQL 聚合分析时,出现了 StringIndexOutOfBoundsException 异常。根据客户反馈的异常信息,起初笔者觉得这只是一个简单的下标越界问题,于是快速通过 E2E 测试程序复现问题(如下图所示),并对下标越界的代码进行了增强。 但是问题似乎没有这么简单,修改后 E2E 测试仍然没有通过,根据断言结果来看...

注意:本文基于 Calcite main 分支 34989b0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在之前发布的深度探究 Apache Calcite SQL 校验器实现原理一文中,我们详细介绍了 Calcite 校验器的实现原理,在 SQL 校验的过程中,Calcite 会不断调用 deriveType 进行类型推断,当时由于篇...