Ivorysql框架设计 1. 目的 为了对原有的postgres改动最小的前提下,实现对oracle兼容。我们需要实现双parser、双端口、模式PLPGSQL实现PL\iSQL的框架。实现流程图如下: 2. 功能 2.1. 双端口设计 保持了Ivorysql 5432端口兼容原有postgres情况,因此 Ivorysql采用另一个独立的端口登录,默认为1521。从该端口登录,默认采用oracle兼容模式。如果需要从5432端口登录且还要进入兼容模式,则需要通过compatible_mode参数进行设置; 2.2. parser模块设计 为了将Oracle语法与postgres语法间的相互干扰降到最低,因此新增parser模块,用于处理Oracle相关的语法; 2.3. 新增PL\iSQL过程语言 同样为了减少Oracle兼容与postgres语法不同而导致测试用例冲突得情况,因此单独设计了一套Oracle专用的测试用例。该套测试用例由postgres原有测试框架拷贝修改而来; 迁移指南 2、GUC框架