Ivorysql框架设计 1. 目的 在对原有的PostgreSQL改动最小的前提下,实现对Oracle兼容。我们需要实现双parser、双端口、模式PL/PGSQL实现PL/iSQL的框架。实现流程图如下: 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过程语言。 initdb过程 2、GUC框架