Apache Calcite 学习资料整理

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

Calcite

JVM 学习资料整理

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

JVM

使用 SQLancer 测试 ShardingSphere 联邦查询

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

ShardingSphere

ShardingSphere 联邦查询 GROUPING 聚合结果问题分析

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

Calcite

Apache Calcite Catalog 拾遗之类型系统实现

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

Calcite
1239