New Feature
- Kernel: support alter materialized view for PostgreSQL
- Kernel: support declare for PostgreSQL
- Kernel: support discard for PostgreSQL
- Kernel: Add mode to parser to support $$ in PostgreSQL
- Kernel: Support MySQL create tablespace statement parse
- Scaling: Implement stop source writing and restore source writing
- Scaling: Support partial tables scale-out
- DistSQL: New DistSQL syntax:
SHOW UNUSED RESOURCES
- Mode: Added persistent
XA Recovery Id
to Governance Center - Mode: Database discovery adds delayed master-slave delay function
- Distributed Transaction: Add savepoint support for ShardingSphere proxy
- Distributed Transaction: Support auto rollback when report exception in transaction block for PostgreSQL and openGauss
- Distributed Transaction: Make it is easy to use with Narayana
- Distributed Transaction: Add savepoint support for ShardingSphere-JDBC
Enhancement
- Kernel: Refactor kernel to improve performance
- Proxy: Reduce Docker image size of ShardingSphere-Proxy
- Proxy: ShardingSphere-Proxy supports set names statements
- Proxy: ShardingSphere-Proxy MySQL supports multi statements
- Scaling: Only one proxy node could do data consistency check in proxy cluster
- Scaling: Replace scaling input and output config fields type from int to Integer
- Scaling: Update MySQL checksum SQL
- Scaling: Improve scaling job progress deletion in reset and progress check before starting job
- Scaling: Improve
FinishCheckJob
data consistency check when target tables already have the same data as source tables - Scaling: Break scaling job ASAP when there is unsupported table since primary key
- Scaling: Reuse
ClusterPersistRepository
of proxy inPipelineAPIFactory
- Scaling: Update jobId generation algorithm, and make it support idempotency
- DistSQL: Support configuration data type and length when CREATE/ALTER ENCRYPT RULE
- DistSQL: Unify the display results of
SHOW ALL VARIABLES
andSHOW VARIABLE
- DistSQL: Remove the effect of binding order when
DROP BINDING TABLE RULES
- DistSQL: Add column
mode_type
in the result ofSHOW INSTANCE LIST
- DistSQL: Add validation to the mode when
ENABLE/DISABLE INSTANCE
- DistSQL: Check if the rule is in used when
DROP READWRITE_SPLITTING RULE
- DistSQL: Check duplicate resource names when
CREATE READWRITE_SPLITTING RULE
- DistSQL: Add column
delay_time
to the result ofSHOW READWRITE_SPLITTING READ RESOURCES
- DistSQL: Support
IF EXISTS
whenDROP RULE
- DistSQL: Optimize the prompt information of connection failure when
ADD/ALTER RESOURCE
- Mode: Add schema-level global distributed locks
- Mode: Add schema version number to support batch execution of DistSQL
- Mode: Persistent metadata optimization in cluster mode
- Mode: The database discovery add the
schemaName
identifier when create a JOB
Refactor
- Kernel: Refactor test case for encrypt
- Kernel: Refactor metadata to support PostgreSQL database and schema
- Scaling: Remove HikariCP dependency in pipeline modules
- Mode: Refactor governance center storage node structure
- Mode: Refactor governance center meta data structure
- Mode: Adjust the database discovery MGR module to MySQL module
Bug Fix
- Kernel: Fix function with no parameter
- Kernel: Fix
InsertValueContext.getValue
cast exception - Kernel: Fix aggregate distinct column error
- Kernel: Fix NPE when rewrite parameter with schema
- Kernel: Fix NPE caused by
GeneratedKeysResultSet
not returncolumnName
in read-write splitting - Kernel: Fix show tables statement loses part of the single table
- Kernel: Fix ModShardingAlgorithm wrong route result when exist same suffix table
- Kernel: Fix sql parse error when contains key in assignment clause and optimize index parse
- Kernel: Fix NumberFormatException when sharding algorithm config number props
- Kernel: Fix wrong metadata when config single dataSource for read-write splitting
- Kernel: Fix statement close exception when use
BatchPreparedStatementExecutor
- Kernel: Fix rewrite lowercase logic when sql contains shorthand projection
- Kernel: Fix NullPointerException when start up proxy with memory mode
- Proxy: Fix literals may be replaced by mistake in PostgreSQL/openGauss protocol
- Proxy: Fix ShardingSphere-Proxy PostgreSQL with multi-schema cannot be connected by PostgreSQL JDBC Driver 42.3.x
- Proxy: Fix timestamp nanos inaccurate in ShardingSphere-Proxy MySQL
- Proxy: Complete ShardingSphere-Proxy PostgreSQL codec for numeric in binary format
- Proxy: Potential performance issue and risk of OOM in ShardingSphere-JDBC
- Proxy: Fix Operation not allowed after ResultSet closed occasionally happens in ShardingSphere-Proxy MySQL
- Proxy: Fix NPE causes by ShardingSphere-JDBC executeBatch without addBatch
- Scaling: Fix failed or stopped job could not be started by DistSQL except restarting proxy
- DistSQL: Fix parsing exception for inline expression when
CREATE SHARDING TABLE RULE
- DistSQL: Fix parsing exception when password is keyword
password
inADD RESOURCE
statement - Mode: Fixed loss of compute nodes due to ZooKeeper session timeout
- Mode: Fixed the case of the table name in the governance center
- Mode: DistSQL enable disable instance refresh in-memory compute node status
- Mode: Fixed database discovery unable to create Rule through DistSQL