PostgreSQL 事件触发器 tag 原理简析

在 PostgreSQL 数据库中,Event Trigger(事件触发器)是一种触发机制,用于响应特定的数据库事件。与常规的 DML 触发器(响应行级别或语句级别操作)不同,事件触发器在 DDL 操作的生命周期中触发,触发时执行用户指定的存储过程或函数,可以用于监控或限制数据库结构的变更。 本文对事件触发器的 tag 这个小特性进行简单的原理分析,文中提到的函数和数据结构来源于 PostgreSQL 15 源码。 简介 创建事件触发器的语法如下,允许使用 filter_

pg_repack 插件原理解读

pg_repack 是 PostgreSQL 数据库生态的一款第三方插件,本文将结合 pg_repack 的 源代码 来介绍其原理,而不会介绍如何使用它。如果想了解 pg_repack 的具体用法,可以参考 pg_repack 的 官方文档 或 PolarDB PostgreSQL 版的 pg_repack 文档。 简介 pg_repack 的字面意思是“重新包装”,可以 回收碎片化的存储空间,解决表和索引的存储空间膨胀问题。 PostgreSQL 内核自带的 VACU

pg_repack 插件原理解读

pg_repack 是 PostgreSQL 数据库生态的一款第三方插件,本文将结合 pg_repack 的 源代码 来介绍其原理,而不会介绍如何使用它。如果想了解 pg_repack 的具体用法,可以参考 pg_repack 的 官方文档 或 PolarDB PostgreSQL 版的 pg_repack 文档。 简介 pg_repack 的字面意思是“重新包装”,可以 回收碎片化的存储空间,解决表和索引的存储空间膨胀问题。 PostgreSQL 内核自带的 VACU

PostgreSQL 插入常量的合法性检查

本文简单介绍 PostgreSQL 数据库如何对 INSERT 语句中的常量进行合法性检查,检查逻辑从上到下涉及到词法分析、语法解析、语义分析、查询优化、参数绑定、执行器等多个模块。 全文的所有代码都以 PostgreSQL 14 为例,所有 SQL 示例都基于如下表定义: CREATE TABLE test_table( column_char CHAR(3), column_int INT, column_num NUMERIC(4, 2) )

PostgreSQL 插入常量的合法性检查

本文简单介绍 PostgreSQL 数据库如何对 INSERT 语句中的常量进行合法性检查,检查逻辑从上到下涉及到词法分析、语法解析、语义分析、查询优化、参数绑定、执行器等多个模块。 全文的所有代码都以 PostgreSQL 14 为例,所有 SQL 示例都基于如下表定义: CREATE TABLE test_table( column_char CHAR(3), column_int INT, column_num NUMERIC(4, 2) )