Apache Calcite Catalog 拾遗之 UDF 函数实现和扩展

注意:本文基于 Calcite main 分支 60e0a3f 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 最近,很多朋友咨询关于 Calcite UDF 实现和扩展的问题,在之前 Apache Calcite System Catalog 实现探究一文中,我们简单介绍过 Catalog 中的 Function 对象,也了解到 Cal...

Calcite

GraalVM 编译动态链接库之 MySQL UDF 实现

前言 在之前发布的 Java AOT 编译框架 GraalVM 快速入门一文中,我们介绍了 GraalVM 编译器的基础知识,对比了 GraalVM 和传统 JVM 之间的优势和劣势,并通过 Demo 示例展示了如何将 JVM 程序编译为原生可执行程序。GraalVM 除了编译原生可执行程序外,还可以用于编译动态链接库,提供给 C、C++ 等原生语言调用,GraalVM 编译动态链接库的能...

GraalVM

PolarDB-X 开发环境搭建笔记

注意:本文基于 PolarDB-X main 分支 6309889 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 笔者为了学习 Calcite 相关的技术,最近尝试在本地搭建 PolarDB-X 开发环境,从而可以深入探索 PolarDB-X 是如何基于 Calcite 构建 HTAP 数据库。本文记录了完整的搭建过程,并简单介绍了 P...

PolarDB-X

Java AOT 编译框架 GraalVM 快速入门

GraalVM 诞生的背景 过去 20 多年,Java 通过语言层虚拟化,实现了平台无关、架构中立等特性,彻底屏蔽了不同操作系统、不同指令集架构带来的差异,因而 Java 语言也取得了巨大的成功。但随着云原生时代的到来,面对相同的问题,云原生选择了操作系统层虚拟化方案——通过容器实现不可变基础设施,将程序连同它的运行环境一起封装到镜像里,这种方案越来越成为一种主流的应用程序分发方式。 云原...

GraalVM

无关性的基石之 Java 字节码技术初探

前言 熟悉 Java 语言的朋友应该都听过 Write Once, Run Anywhere. 这样的口号,它主要阐述地是 Java 语言的跨平台特性。工程师只需要编写一次 Java 源码,再通过 Java 编译器将源码编译为字节码文件,就可以很方便地在不同操作系统的 JVM 上进行分发运行。Java 字节码技术是 Java 语言实现平台无关性的基石,也是学习 JVM 虚拟机实现的基础,了...

JVM
12348