Ivorysql框架设计

1. 目的

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

p18

2. 功能

2.1. 双端口设计

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

2.2. parser模块设计

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

2.3. 新增PL/iSQL过程语言

  • 同样为了减少Oracle兼容与PostgreSQL语法不同而导致测试用例冲突的情况,因此单独设计了一套Oracle专用的测试用例。该套测试用例由PostgreSQL原有测试框架拷贝修改而来。