From 21ad02e4e98f12d75ad678ccaac8ff88cc75676a Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Sat, 28 Feb 2026 13:44:29 +0800 Subject: [PATCH] update roadmap page --- .../roadmap-page.md | 37 +++---------------- src/pages/roadmap-page.md | 37 +++---------------- 2 files changed, 12 insertions(+), 62 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-pages/roadmap-page.md b/i18n/zh-CN/docusaurus-plugin-content-pages/roadmap-page.md index d5134a44..e28604f8 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-pages/roadmap-page.md +++ b/i18n/zh-CN/docusaurus-plugin-content-pages/roadmap-page.md @@ -12,38 +12,13 @@ IvorySQL 是一个非商业性的全志愿者开源软件项目,因此开发 IvorySQL 项目旨在按照预定计划,每个季度发布一个小版本。如果因重要的错误修复或安全问题需要发布额外版本,则可能会在这些日期之间增加发布。因此,该列表应被视为最低发布频率。IvorySQL紧跟PostgreSQL发布计划,每个季度,都会发布一个最新内核的小版本。 今年的版本发布情况如下: -- 2025年第一季度发布v4.2(PG内核17.2) ```特性:添加架构设计相关文档``` -- 2025年第一季度发布v4.4(PG内核17.4) ```特性:IvorySQL Operator内核升级``` -- 2025年第二季度发布v4.5(PG内核17.5) ```特性:在线体验IvorySQL``` -- 2025年第三季度发布v4.6(PG内核17.6) ```特性:IvorySQL Cloud v4``` +- 2026年第一季度发布v5.3(PG内核18.3) +- 2026年第二季度发布v5.4(PG内核18.4) +- 2026年第三季度发布v5.5(PG内核18.5) +- 2026年第四季度发布v5.6(PG内核18.6) ### 下一次主版本发布 -IvorySQL 的下一个主版本计划为v5.0,预计于 2025年 第四季度发布。IvorySQL v5.0的兼容特性如下表所示,当前的开发计划可以前往[GitHub的Project页面](https://github.com/orgs/IvorySQL/projects/19)查看。 - -| 类型 | 特性 | 描述 | -|---------|---------|---------| -| 数据库编码 | GB18030 | 实现字符在服务器上的存储采用GB18030编码,同时支持在初始化数据库(initdb)以及创建数据库(create database)过程中指定使用GB18030编码 | -| 内置函数 | rawtohex | 与Oracle数据库兼容的RAWTOHEX函数。该函数用于将RAW数据类型转换为其十六进制表示的字符串格式 | -| 内置函数 | sys_guid | 与Oracle数据库兼容的SYS_GUID函数。该函数用于生成全局唯一标识符(GUID),通常以16字节RAW值形式返回 | -| 内置函数 | sys_context | 与Oracle数据库兼容的SYS_CONTEXT函数。该函数用于从预定义的命名空间(如USERENV)中检索当前会话或系统环境的相关信息 | -| 内置函数 | userenv | 与Oracle数据库兼容的USERENV函数 | -| 内置函数 | instr | 支持Oracle中的instr函数 | -| PL/iSQL | CALL调用语法 | PL/iSQL引入的CALL调用语法通过提供标准化存储过程调用方式,增强了过程语言能力。该特性简化了存储过程调用流程,提升代码可读性,并与支持类似功能的其他数据库系统保持语法一致性 | -| PL/iSQL | %ROWTYPE | %ROWTYPE属性允许开发者声明表示整张表或游标行的变量。该特性无需为表中每列手动定义变量,从而减少冗余代码并提高可维护性 | -| PL/iSQL | %TYPE | %TYPE属性允许声明与表列或其他变量数据类型相同的变量。该特性确保变量类型始终与源类型匹配,即使源数据类型发生变化也能保持同步 | -| 函数 | 函数 | 支持函数(FUNCTION),满足兼容Oracle函数,比如:EDITIONABLE/NONEDITIONABLE, return, IS,out参数NOCOPY功能、函数后面不带()、参数个数最多32767、alter function等 | -| 存储过程 | 存储过程 | 支持函数存储过程(PROCEDURE),满足兼容Oracle存储过程,比如:EDITIONABLE/NONEDITIONABLE,、函数后面不带()、参数个数最多32767、存储过程调用支持EXEC 、ALTER PROCEDURE语法等 | -| OUT参数 | libpq | Oracle OCI接口中支持SQL语句按名字绑定参数。IvorySQL目前libpq接口中只支持SQL语句按位置绑定参数,不支持按名字绑定参数。需求构造与OCI接口类似的prepare、bind以及execute函数 | -| OUT参数 | 存储过程 | 创建存储过程参数的语法,其中参数模式可以是IN、OUT、 IN OUT,创建含有out参数的存储过程语法和存储过程调用与Oracle相同 | -| OUT参数 | 函数 | 创建函数参数的语法,其中参数模式可以是IN、OUT、 IN OUT,创建含有out参数的函数语法和函数调用与Oracle相同 | -| 嵌套子函数 | 嵌套子函数 | IvorySQL的PLISQL功能是为满足兼容Oracle的PLSQL而开发的。而Oracle中的PLSQL支持在子过程中声明与定义子过程,并且子过程是可以重载的,这样的子过程包括函数与存储过程,同样,子过程中又可以嵌套子过程,这样非常方便,并有利于PLSQL编程人员灵活运用,为了在以后项目中Oracle的PLSQL程序能够顺利迁入IvorySQL,故在PLISQL端,我们也支持上述语法与用法 | -| SQL | rowid | 提供与Oracle兼容的rowid伪列 | -| SQL | 操作符-like | 兼容 Oracle 的like 操作符而开发的,Oracle 的like 操作符支持对数字、时间、字符串类型的字段配合通配符来实现模糊查询,ivorySQL只支持字符串类型的字段进行模糊查询,为了兼容Oracle 中的 like 操作符的模糊查询 | -| SQL | 大小写兼容 | 该特性通过支持区分大小写的标识符,确保与Oracle数据库兼容,从而实现与基于Oracle的应用系统无缝集成 | -| SQL | NLS参数 | 支持国家语言支持(NLS)参数可确保与Oracle的区域特定设置兼容,例如NLS_DATE_FORMAT(日期格式)、NLS_TIMESTAMP_FORMAT(时间戳格式)等 | -| SQL | 空转NULL | 该特性可确保数据库中的空值或未定义值自动转换为NULL。此机制在处理数据导入、用户输入或遗留系统时尤为实用——当缺失值或空白值未被显式标记为NULL时,系统通过自动转换提供统一处理方式,从而减少潜在错误并提升数据完整性 | -| 视图 | force view | 创建视图时,指定FORCE选项,则视图的基表不存在、引用了不存在的对象类型或者当前模式的拥有者不具有创建视图的权限这几种情况下,可以创建视图成功,不会报错,但会出现警告 | -| 工具 | 切换parser | 该特性支持在Oracle与PostgreSQL两种SQL解析模式间自由切换,允许用户根据需求选择最适合的语法规则和运行行为,从而确保同时兼容Oracle和PostgreSQL生态体系 | +IvorySQL 的下一个主版本计划为v6.0,预计于 2026年 第四季度发布。IvorySQL v6.0的的开发计划可以前往[GitHub的Project页面](https://github.com/orgs/IvorySQL/projects/28)查看。 ### 以往版本的兼容特性 -以往版本已经实现的Oracle兼容特性,可以查看IvorySQL文档中心的[Oracle兼容功能列表](https://docs.ivorysql.org/cn/ivorysql-doc/v4.4/v4.4/14)。 \ No newline at end of file +以往版本已经实现的Oracle兼容特性,可以查看IvorySQL文档中心的[Oracle兼容功能列表](https://docs.ivorysql.org/cn/ivorysql-doc/master/oracle_compatibility/compat_case_conversion)。 \ No newline at end of file diff --git a/src/pages/roadmap-page.md b/src/pages/roadmap-page.md index 84e541bc..ecc6e1c1 100644 --- a/src/pages/roadmap-page.md +++ b/src/pages/roadmap-page.md @@ -15,38 +15,13 @@ The IvorySQL project aims to follow a predefined schedule, releasing at least on The version release schedule for this year is as follows: -- 1st Quarter: Release v4.2 (PG Kernel 17.2) ```Features: Added architecture design documentation``` -- 1nd Quarter: Release v4.4 (PG Kernel 17.4) ```Features: IvorySQL Operator kernel upgrade``` -- 2rd Quarter: Release v4.5 (PG Kernel 17.5) ```Online IvorySQL Demo``` -- 3rd Quarter: Release v4.6 (PG Kernel 17.6) ```Features: IvorySQL Cloud v4``` +- 1st Quarter: Release v5.3 (PG Kernel 18.3) +- 2nd Quarter: Release v5.4 (PG Kernel 18.4) +- 3rd Quarter: Release v5.5 (PG Kernel 18.5) +- 4th Quarter: Release v5.6 (PG Kernel 18.6) ### Next Major Release -The next major version of IvorySQL is planned as v5.0, scheduled for release in Q4 2025. The Oracle-compatible features in IvorySQL v5.0 are shown in the table below. Current development progress can be tracked on the [GitHub Project page](https://github.com/orgs/IvorySQL/projects/19). - -| Category | Feature | Description | -|---------|---------|---------| -| Encoding | GB18030 | The system must ensure that characters are stored in GB18030 encoding on the server, and it should allow the specification of GB18030 encoding during the initdb and create database processes | -| Functions | rawtohex | Refers to the function RAWTOHEX, which is compatible with Oracle databases. This function is used to convert a raw data type into its hexadecimal representation as a character string | -| Functions | sys_guid | Refers to the SYS_GUID function, which is designed to be compatible with Oracle databases. The SYS_GUID function generates a globally unique identifier (GUID), typically as a 16-byte RAW value | -| Functions | sys_context | Refers to the SYS_CONTEXT function, which is designed to be compatible with Oracle databases. The SYS_CONTEXT function is used to retrieve information about the current session or system environment from predefined namespaces, such as USERENV | -| Functions | userenv | Refers to the USERENV function,which is designed to be compatible with Oracle databases | -| Functions | instr | Support for the same syntax as Oracle's INSTR function | -| PL/iSQL | CALL syntax | The introduction of the CALL invocation syntax in PL/iSQL enhances the procedural language by providing a standardized way to invoke stored procedures. This feature simplifies the process of calling procedures, making the code more readable and consistent with other database systems that support similar functionality | -| PL/iSQL | %ROWTYPE | The %ROWTYPE attribute allows developers to declare variables that represent an entire row of a table or cursor. This feature eliminates the need to manually define variables for each column in a table, thereby reducing redundancy and improving maintainability | -| PL/iSQL | %TYPE | The %TYPE attribute enables the declaration of variables with the same data type as a column in a table or another variable. This ensures that the variable's type always matches the source, even if the source's data type changes | -| Functions | Functions | Support for Oracle's function syntax, including features such as: EDITIONABLE/NONEDITIONABLE, return, IS, OUT parameter NOCOPY functionality, functions without parentheses (), a maximum of 32,767 parameters, and ALTER FUNCTION etc | -| Procedures | Procedures | Support for Oracle's procedure syntax, including features such as: EDITIONABLE/NONEDITIONABLE, functions without parentheses (), a maximum of 32,767 parameters, support for EXEC to call stored procedures, and ALTER PROCEDURE syntax,etc | -| OUT params | libpq | In the Oracle OCI interface, SQL statements support parameter binding by name. Currently, in IvorySQL's libpq interface, only positional parameter binding is supported for SQL statements, while named parameter binding is not supported. The requirement is to construct prepare, bind, and execute functions similar to those in the OCI interface | -| OUT params | Procedures | The syntax for creating stored procedure parameters, where the parameter mode can be IN, OUT, or IN OUT. The syntax for creating stored procedures with OUT parameters and the calling of such stored procedures are the same as in Oracle | -| OUT params | Functions | The syntax for creating function parameters, where the parameter mode can be IN, OUT, or IN OUT. The syntax for creating functions with OUT parameters and the calling of such functions are the same as in Oracle | -| Nested subprograms | Nested subprograms | The PLISQL functionality in IvorySQL was developed to ensure compatibility with Oracle's PL/SQL. In Oracle's PL/SQL, it is possible to declare and define subprograms (including both functions and procedures) within other subprograms, and these subprograms can be overloaded. Additionally, subprograms can be nested within other subprograms, providing great convenience and flexibility for PL/SQL developers. To ensure that Oracle PL/SQL programs can be smoothly migrated to IvorySQL in future projects, we also support the aforementioned syntax and usage in PLISQL | -| SQL | rowid | Provides Oracle-compatible ROWID pseudocolumn | -| SQL | LIKE operator | The LIKE operator is utilized in the WHERE clause of a SQL statement to filter rows based on pattern matching with string expressions. It allows for flexible searching capabilities by enabling partial matches according to specified patterns | -| SQL | Case sensitivity | This feature ensures compatibility with Oracle databases by allowing case-sensitive identifiers. Supporting this feature allows seamless integration with Oracle-based applications | -| SQL | NLS parameters | The support for National Language Support (NLS) parameters ensures compatibility with Oracle's locale-specific settings. Like NLS_DATE_FORMAT,NLS_TIMESTAMP_FORMAT etc | -| SQL | Empty-to-NULL | This feature ensures that empty or undefined values in the database are automatically converted to NULL. This behavior is particularly useful when dealing with data imports, user inputs, or legacy systems where missing or blank values may not be explicitly marked as NULL. By supporting this conversion, the database system provides a consistent way to handle such cases, reducing potential errors and improving data integrity | -| Views | FORCE VIEW | The FORCE option in the CREATE VIEW statement forces the creation of a view even if the base tables, other views, or any object types referenced in the view definition do not currently exist | -| Tools | Parser switching | Support for switching parser, allowing toggling between Oracle and PostgreSQL modes.This feature provides the ability to switch the SQL parser mode between Oracle and PostgreSQL. It allows users to choose the syntax and behavior that best suits their needs, ensuring compatibility with both Oracle and PostgreSQL ecosystems | +The next major version of IvorySQL is planned as v6.0, scheduled for release in Q4 2026. The current IvorySQL v6.0 development progress can be tracked on the [GitHub Project page](https://github.com/orgs/IvorySQL/projects/28). ### Previously Implemented Compatibility Features -For Oracle-compatible features implemented in previous versions, please refer to the [Oracle Compatibility List](https://docs.ivorysql.org/cn/ivorysql-doc/v4.4/v4.4/14) in IvorySQL Documentation Center. \ No newline at end of file +For Oracle-compatible features implemented in previous versions, please refer to the [Oracle Compatibility List](https://docs.ivorysql.org/en/ivorysql-doc/master/oracle_compatibility/compat_case_conversion) in IvorySQL Documentation Center. \ No newline at end of file