Ivorysql框架设计

1. 目的

  • 在对原有的PostgreSQL改动最小的前提下,实现对Oracle兼容。我们需要实现双parser、双端口、模式PL/PGSQL实现PL/iSQL的框架。实现流程图如下:

p18

2. 功能

2.1. 双端口设计

  • 保持了Ivorysql 5432端口兼容原有postgres情况,因此 Ivorysql采用另一个独立的端口登录,默认为1521。从该端口登录,默认采用Oracle兼容模式。如果需要从5432端口登录且还要进入兼容模式,则需要通过SET ivorysql.compatible_mode=oracle进行设置。

2.2. parser模块设计

  • 为了将Oracle语法与PostgreSQL语法间的相互干扰降到最低,因此新增parser模块,用于处理Oracle相关的语法。

2.3. 新增PL/iSQL过程语言

  • 新增PL/iSQL过程语言兼容Oracle的PL/SQL过程语言。