5.1.2
New Feature
- Kernel: Alpha version to support SQL dialect translate for MySQL and PostgreSQL
- Kernel: Support custom schema for PostgreSQL and openGauss
- Kernel: Support create/alter/drop view statement for PostgreSQL and openGauss
- Kernel: Support openGauss cursor statement
- Kernel: Support use customize system database
- Kernel: Support get openGauss and MySQL create SQL
- Kernel: Support get postgres create SQL
- Proxy: Official support for quickly deploying a ShardingSphere-Proxy cluster with a ZooKeeper cluster in Kubernetes using Helm
- JDBC: Support ShardingSphere JDBC Driver
- Scaling: Support PostgreSQL auto create table
- Scaling: Support scaling for table with customized schema in PostgreSQL and openGauss
- Scaling: Support scaling for table with text primary key and without integer primary key
- Mode: Registry center supports PG/openGauss three-level structure
- Mode: Registry center supports database-level distributed lock
Enhancement
- Kernel: Support copy statement for PostgreSQL and openGauss
- Kernel: Support alter/drop index statement for PostgreSQL
- Kernel: Support update force index statement for MySQL
- Kernel: Support create/alter/drop schema for openGauss
- Kernel: Optimize RoundRobinReplicaLoadBalanceAlgorithm and RoundRobinTrafficLoadBalanceAlgorithm logic
- Kernel: Optimize metadata loading logic when frontendDatabaseType and backendDatabaseType are different
- Kernel: Refactor meta data load logic
- Kernel: Optimize show processlist statement
- Kernel: Improve performance about large tables loaded
- Kernel: Support execute comment statement
- Kernel: Support view in sharding rule
- Kernel: Support parsing CREATE ROLLBACK SEGMENT in Oracle
- Kernel: Support Parsing DROP TYPE in openGauss
- Kernel: Support Parsing ALTER TYPE in openGauss
- Kernel: Support parsing DROP DISKGROUP in Oracle
- Kernel: Support parsing CREATE DISKGROUP in Oracle
- Kernel: Support parsing DROP FLASHBACK ARCHIVE in Oracle
- Kernel: Support Parsing CHECKPOINT in openGauss
- Kernel: Support parsing CREATE FLASHBACK ARCHIVE in Oracle
- Kernel: Add PostgreSQL Close Statement
- Kernel: Support Parsing DROP CAST in openGauss
- Kernel: Support parsing CREATE CAST in openGauss
- Kernel: Support parsing CREATE CONTROL FILE in Oracle
- Kernel: Support Parsing DROP DIRECTORY in openGauss
- Kernel: Support parsing ALTER DIRECTORY in openGauss
- Kernel: Support parsing CREATE DIRECTORY in openGauss
- Kernel: Add PostgreSQL Checkpoint Statement
- Kernel: Support parsing DROP SYNONYM in openGauss
- Kernel: Support parsing CREATE SYNONYM in openGauss
- Kernel: Support parsing ALTER SYNONYM in openGauss
- Kernel: Add PostgreSQL CALL Statement
- Kernel: Support parsing CREATE PFILE in Oracle
- Kernel: Support parsing CREATE SPFILE in Oracle
- Kernel: Support parsing ALTER SEQUENCE in Oracle
- Kernel: Support parsing CREATE CONTEXT in Oracle
- Kernel: Support Parsing ALTER PACKAGE in oracle
- Kernel: Support parsing CREATE SEQUENCE in Oracle
- Kernel: Support parsing ALTER ATTRIBUTE DIMENSION in Oracle
- Kernel: Support parsing ALTER ANALYTIC VIEW in Oracle
- Kernel: Use ShardingSphere SPI in SQLVisitorFacade
- Kernel: Use ShardingSphere SPI in DatabaseTypedSQLParserFacade
- Kernel: Support parsing ALTER OUTLINE in Oracle
- Kernel: Support parsing DROP OUTLINE in Oracle
- Kernel: Support parsing drop edition in oracle
- Kernel: Support WITH Common Table Expression of SQLServer
- Kernel: Exclude parenthesis from SubquerySegment's start and stop index in withClause
- Kernel: Refactor JoinTableSegment
- Kernel: Support parsing DROP SYNONYM in Oracle
- Kernel: Support parsing CREATE DIRECTORY in Oracle
- Kernel: Support parsing CREATE SYNONYM in Oracle
- Kernel: Support for XmlNamespaces Clause of SQLServer SELECT Statement
- Kernel: Support parsing Alter Database Dictionary in Oracle
- Kernel: Support FOR Clause of SQLServer SELECT Statement
- Kernel: Support Parsing ALTER DATABASE LINK in Oracle
- Kernel: Support CREATE EDITION Parsing in Oracle
- Kernel: Support parsing ALTER TRIGGER in Oracle
- Kernel: Add SQLServer REVERT Statement
- Kernel: Support Parsing DROP TEXT SEARCH in PostgreSQL
- Kernel: Add drop server for PostgreSQL
- Kernel: Support Parsing ALTER VIEW in Oracle
- Kernel: Add drop access method for PostgreSQL
- Kernel: Support Parsing DROP ROUTINE in PostgreSQL
- Kernel: Proofread SQLServer DROP USER Statement
- Kernel: Support parsing DROP TRIGGER in Oracle
- Kernel: Support parsing Drop subscription in PostgreSQL
- Kernel: Add drop operator class for PostgreSQL
- Kernel: Support parsing DROP PUBLICATION in PostgreSQL
- Kernel: Support Parsing DROP VIEW in Oracle
- Kernel: Support Parsing DROP TRIGGER in PostgreSQL
- Kernel: Support Parsing DROP DIRECTORY in Oracle
- Kernel: Support Parsing DROP STATISTICS for PostgreSQL
- Kernel: Add drop type SQL parser for PostgreSQL
- Kernel: Support Parsing DROP RULE in PostgreSQL
- Kernel: Proofread SQLServer ALTER LOGIN Statement
- Kernel: Support parsing PostgreSQL DROP FOREIGN DATA WRAPPER
- Kernel: Small changes to PostgreSQL DROP EVENT TRIGGER statement
- Proxy: ShardingSphere-Proxy MySQL supports receiving MySQL packet more than 16 MB
- Proxy: Supports netty parameter ChannelOption.SO_BACKLOG configurable in ShardingSphere-Proxy
- Proxy: Optimize so-reuseaddr in netty to solve the problem of port occupied
- Proxy: Docker image of ShardingSphere-Proxy supports aarch64 platform
- Proxy: Make server version configurable in ShardingSphere-Proxy MySQL
- Proxy: Supports more character sets in ShardingSphere-Proxy PostgreSQL/openGauss
- Proxy: Make default port configurable in ShardingSphere-Proxy
- Scaling: Compatible with HA ports for openGauss:3.0 when thread_pool enabled
- Scaling: Optimize ZooKeeper event handling in PipelineJobExecutor to avoid blocking ZooKeeper events
- Scaling: Make table name case-insensitive in whole process
- Scaling: Improve replication slot cleanup for PostgreSQL and openGauss
- Scaling: Improve lock protection for job preparation
- Scaling: Support PostgreSQL insert on conflict do update
- Scaling: Do not cache data source in GlobalDataSourceRegistry to avoid possible shared resource close issue
- Scaling: Reuse data source pool as more as possible to reduce working database connections
- DistSQL:
REFRESH TABLE METADATA
supports specifying PostgreSQL's schema - DistSQL:
ALTER SHARDING TABLE RULE
add validation of binding table - Mode: ShardingSphere-JDBC supports configuring database connection name
- Distributed Transaction: DistSQL is prohibited from executing within a transaction
- Distributed Transaction: autocommit = 0, DDL part of DML will automatically open the transaction
Bug Fix
- Kernel: Fix parsing error about show statement for PostgreSQL and openGauss
- Kernel: Fix parsing error about time extract function for for PostgreSQL and openGauss
- Kernel: Fix parsing error about select mod function for for PostgreSQL and openGauss
- Kernel: Fix PSQLException when execute join statement with multi schema in readwrite scenario
- Kernel: Fix wrong route result when execute create schema statement in encrypt scenario
- Kernel: Fix npe when execute drop schema if exist statement
- Kernel: Fix wrong route result when execute SELECT LAST_INSERT_ID() AS id; statement
- Kernel: Fix npe when execute use database when database doesn't contains datasource
- Kernel: Fix create function with set var
- Proxy: Fix NPE caused by column's case unmatched in PostgreSQLComDescribeExecutor
- Proxy: Complete command tags for schema DDL in ShardingSphere-Proxy PostgreSQL / openGauss
- Scaling: Fix MySQL unsigned type null value cause error during increment task
- Scaling: Fix resource leak caused by error occurred when creating DataSource in ShardingSphere-Scaling
- Scaling: Fix ShardingSphereDataSource creation ignoring other rules
- Scaling: Fix on preparation job could not be stopped
- Scaling: Fix data source property url and jdbcUrl compatibility
- Scaling: Fix openGauss logical replication slot creation, avoid possible incremental data loss
- Scaling: Update local job status before persisting job status to registry center, make sure it won't be overwritten later
- Scaling: Handling null value in TestDecodingPlugin for PostgreSQL
- DistSQL: Fix
SET VARIABLE
modification not taking effect in stand-alone and memory mode - DistSQL: Fix the inconsistency between
SHOW INSTANCE LIST
display data and actual data - DistSQL: Fix capitalization sensitivity in sharding DistSQL
- Mode: Fix the new version metadata lost data after the Scaling changes the table sharding rules
- Distributed Transaction: Fix getIndexInfo with catalog
API Changes
- DistSQL: Change
EXPORT SCHEMA CONFIG
toEXPORT DATABASE CONFIG
- DistSQL: Change
IMPORT SCHEMA CONFIG
toIMPORT DATABASE CONFIG
- DistSQL: Change
SHOW SCHEMA RESOURCES
toSHOW DATABASE RESOURCES
- DistSQL: Change
COUNT SCHEMA RULES
toCOUNT DATABASE RULES
- Mode: Adjust db-discovery algorithm configuration
- Authority: Authority provider
ALL_PRIVILEGES_PERMITTED
updated toALL_PERMITTED
- Authority: Authority provider
SCHEMA_PRIVILEGES_PERMITTED
updated toDATABASE_PERMITTED
Refactor
- Scaling: Refactor JobConfiguration, prepare for different types of jobs reuse and extension
- Mode: Optimize compute node structure of the registry center
- Mode: Use uuid instead of ip@port as instance id