shardingsphere 5.1.2¶
```markdown
新功能¶
- 内核:Alpha 版本支持 MySQL 和 PostgreSQL 的 SQL 方言翻译
- 内核:支持 PostgreSQL 和 openGauss 的自定义模式
- 内核:支持 PostgreSQL 和 openGauss 的创建/修改/删除视图语句
- 内核:支持 openGauss 游标语句
- 内核:支持使用自定义系统数据库
- 内核:支持获取 openGauss 和 MySQL 创建 SQL
- 内核:支持获取 PostgreSQL 创建 SQL
- 代理:官方支持使用 Helm 在 Kubernetes 中快速部署带有 ZooKeeper 集群的 ShardingSphere-Proxy 集群
- JDBC:支持 ShardingSphere JDBC 驱动
- 扩展:支持 PostgreSQL 自动创建表
- 扩展:支持 PostgreSQL 和 openGauss 中带有自定义模式的表扩展
- 扩展:支持带有文本主键和无整数主键的表扩展
- 模式:注册中心支持 PG/openGauss 三层结构
- 模式:注册中心支持数据库级分布式锁
增强¶
- 内核:支持 PostgreSQL 和 openGauss 的复制语句
- 内核:支持 PostgreSQL 的修改/删除索引语句
- 内核:支持 MySQL 的更新强制索引语句
- 内核:支持 openGauss 的创建/修改/删除模式
- 内核:优化 RoundRobinReplicaLoadBalanceAlgorithm 和 RoundRobinTrafficLoadBalanceAlgorithm 逻辑
- 内核:优化前端数据库类型和后端数据库类型不同的元数据加载逻辑
- 内核:重构元数据加载逻辑
- 内核:优化显示进程列表语句
- 内核:提高大表加载性能
- 内核:支持执行注释语句
- 内核:支持分片规则中的视图
- 内核:支持解析 Oracle 中的 CREATE ROLLBACK SEGMENT
- 内核:支持解析 openGauss 中的 DROP TYPE
- 内核:支持解析 openGauss 中的 ALTER TYPE
- 内核:支持解析 Oracle 中的 DROP DISKGROUP
- 内核:支持解析 Oracle 中的 CREATE DISKGROUP
- 内核:支持解析 Oracle 中的 DROP FLASHBACK ARCHIVE
- 内核:支持解析 openGauss 中的 CHECKPOINT
- 内核:支持解析 Oracle 中的 CREATE FLASHBACK ARCHIVE
- 内核:添加 PostgreSQL 关闭语句
- 内核:支持解析 openGauss 中的 DROP CAST
- 内核:支持解析 openGauss 中的 CREATE CAST
- 内核:支持解析 Oracle 中的 CREATE CONTROL FILE
- 内核:支持解析 openGauss 中的 DROP DIRECTORY
- 内核:支持解析 openGauss 中的 ALTER DIRECTORY
- 内核:支持解析 openGauss 中的 CREATE DIRECTORY
- 内核:添加 PostgreSQL 检查点语句
- 内核:支持解析 openGauss 中的 DROP SYNONYM
- 内核:支持解析 openGauss 中的 CREATE SYNONYM
- 内核:支持解析 openGauss 中的 ALTER SYNONYM
- 内核:添加 PostgreSQL 调用语句
- 内核:支持解析 Oracle 中的 CREATE PFILE
- 内核:支持解析 Oracle 中的 CREATE SPFILE
- 内核:支持解析 Oracle 中的 ALTER SEQUENCE
- 内核:支持解析 Oracle 中的 CREATE CONTEXT
- 内核:支持解析 Oracle 中的 ALTER PACKAGE
- 内核:支持解析 Oracle 中的 CREATE SEQUENCE
- 内核:支持解析 Oracle 中的 ALTER ATTRIBUTE DIMENSION
- 内核:支持解析 Oracle 中的 ALTER ANALYTIC VIEW
- 内核:在 SQLVisitorFacade 中使用 ShardingSphere SPI
- 内核:在 DatabaseTypedSQLParserFacade 中使用 ShardingSphere SPI
- 内核:支持解析 Oracle 中的 ALTER OUTLINE
- 内核:支持解析 Oracle 中的 DROP OUTLINE
- 内核:支持解析 Oracle 中的 DROP EDITION
- 内核:支持 SQLServer 的 WITH 公共表表达式
- 内核:在 withClause 中排除 SubquerySegment 的括号起止索引
- 内核:重构 JoinTableSegment
- 内核:支持解析 Oracle 中的 DROP SYNONYM
- 内核:支持解析 Oracle 中的 CREATE DIRECTORY
- 内核:支持解析 Oracle 中的 CREATE SYNONYM
- 内核:支持 SQLServer SELECT 语句的 XmlNamespaces 子句
- 内核:支持解析 Oracle 中的 Alter Database Dictionary
- 内核:支持 SQLServer SELECT 语句的 FOR 子句
- 内核:支持解析 Oracle 中的 ALTER DATABASE LINK
- 内核:支持解析 Oracle 中的 CREATE EDITION
- 内核:支持解析 Oracle 中的 ALTER TRIGGER
- 内核:添加 SQLServer REVERT 语句
- 内核:支持解析 PostgreSQL 中的 DROP TEXT SEARCH
- 内核:添加 PostgreSQL 的 drop server
- 内核:支持解析 Oracle 中的 ALTER VIEW
- 内核:添加 PostgreSQL 的 drop access method
- 内核:支持解析 PostgreSQL 中的 DROP ROUTINE
- 内核:校对 SQLServer DROP USER 语句
- 内核:支持解析 Oracle 中的 DROP TRIGGER
- 内核:支持解析 PostgreSQL 中的 Drop subscription
- 内核:添加 PostgreSQL 的 drop operator class
- 内核:支持解析 PostgreSQL 中的 DROP PUBLICATION
- 内核:支持解析 Oracle 中的 DROP VIEW
- 内核:支持解析 PostgreSQL 中的 DROP TRIGGER
- 内核:支持解析 Oracle 中的 DROP DIRECTORY
- 内核:支持解析 PostgreSQL 中的 DROP STATISTICS
- 内核:添加 PostgreSQL 的 drop type SQL 解析器
- 内核:支持解析 PostgreSQL 中的 DROP RULE
- 内核:校对 SQLServer ALTER LOGIN 语句
- 内核:支持解析 PostgreSQL 中的 DROP FOREIGN DATA WRAPPER
- 内核:对 PostgreSQL DROP EVENT TRIGGER 语句进行小改动
- 代理:ShardingSphere-Proxy MySQL 支持接收超过 16 MB 的 MySQL 数据包
- 代理:支持在 ShardingSphere-Proxy 中配置 netty 参数 ChannelOption.SO_BACKLOG
- 代理:优化 netty 中的 so-reuseaddr 以解决端口占用问题
- 代理:ShardingSphere-Proxy 的 Docker 镜像支持 aarch64 平台
- 代理:在 ShardingSphere-Proxy MySQL 中使服务器版本可配置
- 代理:在 ShardingSphere-Proxy PostgreSQL/openGauss 中支持更多字符集
- 代理:在 ShardingSphere-Proxy 中使默认端口可配置
- 扩展:兼容 openGauss:3.0 的 HA 端口,当启用 thread_pool 时
- 扩展:优化 PipelineJobExecutor 中的 ZooKeeper 事件处理,避免阻塞 ZooKeeper 事件
- 扩展:在整个过程中使表名不区分大小写
- 扩展:改进 PostgreSQL 和 openGauss 的复制槽清理
- 扩展:改进作业准备的锁保护
- 扩展:支持 PostgreSQL 的 insert on conflict do update
- 扩展:在 GlobalDataSourceRegistry 中不缓存数据源,以避免可能的共享资源关闭问题
- 扩展:尽可能重用数据源池,以减少工作数据库连接
- 分布式 SQL:
REFRESH TABLE METADATA
支持指定 PostgreSQL 的模式 - 分布式 SQL:
ALTER SHARDING TABLE RULE
添加绑定表验证 - 模式:ShardingSphere-JDBC 支持配置数据库连接名称
- 分布式事务:禁止在事务中执行分布式 SQL
- 分布式事务:autocommit = 0 时,DDL 部分的 DML 将自动开启事务
Bug 修复¶
- 内核:修复 PostgreSQL 和 openGauss 的 show 语句解析错误
- 内核:修复 PostgreSQL 和 openGauss 的时间提取函数解析错误
- 内核:修复 PostgreSQL 和 openGauss 的 select mod 函数解析错误
- 内核:修复在读写场景中执行多模式 join 语句时的 PSQLException
- 内核:修复在加密场景中执行创建模式语句时的错误路由结果
- 内核:修复执行 drop schema if exist 语句时的 npe
- 内核:修复执行
SELECT LAST_INSERT_ID() AS id;
语句时的错误路由结果 - 内核:修复在数据库不包含数据源时执行 use database 语句时的 npe
- 内核:修复带有 set var 的创建函数
- 代理:修复 PostgreSQLComDescribeExecutor 中由于列