当前位置: 首页 > article >正文

PostgreSQL的学习心得和知识总结(一百六十七)|深入理解PostgreSQL数据库之静态语法检查工具PgSanity的使用和实现


注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下:

1、参考书籍:《PostgreSQL数据库内核分析》
2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》
3、PostgreSQL数据库仓库链接,点击前往
4、日本著名PostgreSQL数据库专家 铃木启修 网站主页,点击前往
5、参考书籍:《PostgreSQL中文手册》
6、参考书籍:《PostgreSQL指南:内幕探索》,点击前往


1、本文内容全部来源于开源社区 GitHub和以上博主的贡献,本文也免费开源(可能会存在问题,评论区等待大佬们的指正)
2、本文目的:开源共享 抛砖引玉 一起学习
3、本文不提供任何资源 不存在任何交易 与任何组织和机构无关
4、大家可以根据需要自行 复制粘贴以及作为其他个人用途,但是不允许转载 不允许商用 (写作不易,还请见谅 💖)
5、本文内容基于PostgreSQL master源码开发而成


深入理解PostgreSQL数据库之静态语法检查工具PgSanity的使用和实现

  • 文章快速说明索引
  • 功能使用背景说明
  • 工具使用源码解析



文章快速说明索引

学习目标:

做数据库内核开发久了就会有一种 少年得志,年少轻狂 的错觉,然鹅细细一品觉得自己其实不算特别优秀 远远没有达到自己想要的。也许光鲜的表面掩盖了空洞的内在,每每想到于此,皆有夜半临渊如履薄冰之感。为了睡上几个踏实觉,即日起 暂缓其他基于PostgreSQL数据库的兼容功能开发,近段时间 将着重于学习分享Postgres的基础知识和实践内幕。


学习内容:(详见目录)

1、静态语法检查工具PgSanity的使用和实现


学习时间:

2025年02月09日 10:36:35


学习产出:

1、PostgreSQL数据库基础知识回顾 1个
2、CSDN 技术博客 1篇
3、PostgreSQL数据库内核深入学习


注:下面我们所有的学习环境是Centos8+PostgreSQL master+Oracle19C+MySQL8.0

postgres=# select version();
                                     version                                     
---------------------------------------------------------------------------------
 PostgreSQL 18devel on x86_64-pc-linux-gnu, compiled by gcc (GCC) 13.1.0, 64-bit
(1 row)

postgres=#

#-----------------------------------------------------------------------------#

SQL> select * from v$version;          

BANNER        Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production	
BANNER_FULL	  Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.17.0.0.0	
BANNER_LEGACY Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production	
CON_ID 0


#-----------------------------------------------------------------------------#

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.27    |
+-----------+
1 row in set (0.06 sec)

mysql>

功能使用背景说明

在线SQL语法校验,点击前往

案例展示1,语法校验如下:

在这里插入图片描述

SQL Validate Output Results,如下:

[
	"There is one or more errors in your SQL syntax",
	"",
	"Line 1, col 14: An expression was expected. table",
	"Line 1, col 14: Unrecognized keyword. table",
	"Line 1, col 20: Unexpected token. t1"
]

案例展示2,语法校验如下:

在这里插入图片描述

SQL Validate Output Results,如下:

[
	"Great!. Valid syntax."
]

案例展示3,语句美化如下:

在这里插入图片描述

SQL Validate Output Results,如下:

SELECT
    *
FROM
    t1;

注:如上网站对于复杂的PostgreSQL的新增语法来说,就显得无能为力了。如下(下面是2025年01月16日的一次提交):


http://www.kler.cn/a/540734.html

相关文章:

  • vue 中 props 的使用,保姆教程
  • C语言基础第04天:数据的输出和输出
  • MongoDB 有哪些特性
  • 探秘AES加密算法:多种Transformation全解析
  • Netty:高性能网络应用框架的深度解析
  • C++ 中信号转异常机制:在磁盘 I/O 内存映射场景下的应用与解析
  • 示波器使用指南
  • [7] 游戏机项目说明
  • SQL自学,mysql从入门到精通 --- 第 15天,数据导入、导出
  • 《深度学习》——pytorch框架及项目
  • 处理STM32 DMA方式下的HAL_UART_ERROR_ORE错误
  • 中央处理器
  • 分布式微服务接口基于多线程进行性能优化
  • 蓝桥杯试题:冒泡排序 选择排序
  • 六.logback记录日志文件并按大小日期分割文件
  • 操作系统调度算法解析(SJF)
  • EtherNet/IP转Modbus TCP实现三菱变频器与西门子PLC通讯的配置案例
  • 从零复现DeepSeek R1:从V3中对MoE、MLA、MTP的实现,到Open R1对R1中SFT、GRPO的实现
  • ESP8266配置为TCP客户端,连接电脑和手机(使用Arduino配置)
  • javaEE-10.CSS入门
  • 【Elasticsearch】管道聚合
  • SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法
  • 相对收益-固定收益组合归因-前言
  • 纯前度(vue)实现对pdf\mp4\png\jpg\jpegxls\doc\txt文件预览,无需要转化
  • Android图片加载框架Coil,Kotlin
  • 国税局发票查验中英文验证码识别,识别率99.99%