New Feature
- Support SQL audit for sharding feature
- Support MySQL show processlist and kill process list id feature
- Scaling: Add dedicated DistSQL for data migration
- Scaling: Basic support migrate data to heterogeneous database
- DistSQL: New syntax
CREATE MIGRATION PROCESS CONFIGURATION
- DistSQL: New syntax
ALTER MIGRATION PROCESS CONFIGURATION
- DistSQL: New syntax
SHOW MIGRATION PROCESS CONFIGURATION
- DistSQL: New syntax
ADD MIGRATION SOURCE RESOURCE
- DistSQL: New syntax
SHOW SQL_TRANSLATOR RULE
- DistSQL: New syntax
CREATE SHARDING AUDITOR
- DistSQL: New syntax
ALTER SHARDING AUDITOR
- DistSQL: New syntax
SHOW SHARDING AUDIT ALGORITHMS
Enhancement
- Support column visible feature for MySQL, Oracle, SQLServer and H2
- Support cartesian product configuration for read write splitting
- Support spring namespace and spring boot usage for sql translator
- Support JSR-310 Year and Month in IntervalShardingAlgorithm
- Support broadcast table update/delete limit statement
- Support create index on table(column) statement rewrite when config encrypt
- Support openGauss cursor, fetch, move, close statement for sharding, readwrite-splitting
- Support encrypt column rewrite when execute column is null in predicate
- Support encrypt show create table return logic columns
- Support create table with index statement rewrite when config encrypt
- Support PostgreSQL create operator statement parse
- Support PostgreSQL create materialized view statement parse
- Support PostgreSQL nested comments parse
- Support PostgreSQL alter subscription statement parse
- Support PostgreSQL create group statement parse
- Support PostgreSQL alter statictics statement parse
- Support PostgreSQL create foreign table statement parse
- Support PostgreSQL alter server statement parse
- Support PostgreSQL create foreign data wrapper statement parse
- Support PostgreSQL create event trigger statement parse
- Support PostgreSQL security label statement parse
- Support PostgreSQL reindex statement parse
- Support PostgreSQL reassign owned statement and refresh materialized view statement parse
- Support PostgreSQL prepare transaction statement parse
- Support PostgreSQL create collation statement parse
- Support PostgreSQL lock statement parse
- Support PostgreSQL alter rule statement parse
- Support PostgreSQL notify statement parse
- Support PostgreSQL unlisten statement parse
- Support Oracle alter function and alter hierarchy statement parse
- Support Oracle alter pluggable database statement parse
- Support Oracle alter materialized view log statement parse
- Support Oracle alter diskgroup statement parse
- Support Oracle alter operator statement parse
- Support oracle alter cluster statement parse
- Support oracle alter audit policy statement parse
- Support Oracle alter index type statement parse
- Support Oracle lock table statement parse
- Support Oracle alter java statement parse
- Support Oracle inline constraint statement parse
- Support openGauss geometric operator statement parse
- Optimize MySQL visible/invisible parse of create/alter table statements
- Support scope of variable prefixed with @@ in MySQL SET statement parse
- Support MySQL create procedure with create view parse
- Support column segments parse in create index on table statement
- Support openGauss cursor, fetch, move, close statement for sharding, readwrite-splitting
- Support encrypt column rewrite when execute column is null in predicate
- Support encrypt show create table return logic columns
- Support create table with index statement rewrite when config encrypt
- Support parsing ALTER LOCKDOWN PROFILE in Oracle
- Support parsing ALTER MATERIALIZED VIEW in Oracle
- Support parsing ALTER MATERIALIZED ZONEMAP in Oracle
- Support parsing ALTER LIBRARY in Oracle
- Support parsing ALTER INMEMORY JOIN GROUP in Oracle
- Support parsing DROP OPERATOR in Oracle
- Support parsing DROP RESTORE POINT in Oracle
- Support parsing CREATE RESTORE POINT in Oracle
- Support parsing DROP INMEMORY JOIN GROUP in Oracle
- Support parsing create_bit_xor_table in MySQL
- Support parsing MySQL DO statement
- Support parsing DropServer in openGauss
- Support parsing CREATE AGGREGATE In openGauss
- Support parsing ALTER ROUTINE in PostgreSQL
- Add PostgreSQL Create Cast Statement
- Add PostgreSQL Create Aggregate Statement
- Support fetch/move/close cursor statement in PostgreSQL
- Support Parsing ALTER PUBLICATION in PostgreSQL
- Add PostgreSQL Create Access Method Statement
- Support Parsing ALTER POLICY in PostgreSQL
- Support parsing ALTER OPERATOR in PostgreSQL
- Add PostgreSQL Copy Statement
- Add PostgreSQL Comment Statement
- Support listen statement in postgreSQL
- Support DECLARE cursor statement
- Add default serverConfig in helm charts
- Assemble openGauss JDBC Driver into Proxy distribution
- ShardingSphere-Proxy listen on specified IP addresses
- Support COM_STMT_SEND_LONG_DATA in MySQL Proxy
- SELECT VERSION() support alias in MySQL Proxy
- Fix openGauss Proxy could not be connected if no resource defined
- Support using JRE defined in JAVA_HOME in ShardingSphere-Proxy's startup script
- Avoid client blocked when OOM occurred in ShardingSphere-Proxy
- Support using c3p0 in ShardingSphere-JDBC
- Support SET NAMES with value quoted by double-quote
- Connection.prepareStatement with columns arguments is available in ShardingSphere-JDBC
- Scaling: Improve MySQL connect and reconnect
- Scaling: Fix MySQL json column may cause leak at incremental task
- Scaling: Add permission check for PostgreSQL data sources
- Scaling: Incremental migration support for MySQL MGR mode
- Scaling: Improve job progress persistence
- Scaling: Start job DistSQL execute and return synchronously
- Scaling: Inventory migration support table has primary key and unique key
- Scaling: Close unerlying ElasticJob when stopping job
- Scaling: Improve logical replication slot name generation for PostgreSQL and openGauss
- Scaling: Make query DistSQL could be executed when no database selected
- DistSQL: Add worker_id to the result set of
SHOW INSTANCE LIST
&SHOW INSTANCE INFO
- DistSQL: Improve the result of
EXPORT DATABASE CONFIG
- DistSQL: Support more databases for
FORMAT SQL
- DistSQL: Optimize the execution logic of
CREATE TRAFFIC RULE
- DistSQL: Add paramter
writeDataSourceQueryEnabled
for RDL READWRITE_SPLITTING RULE. - DistSQL: Support
assistEncryptor
for Encrypt RDL - DistSQL: Add sharding algorithm type check when
CREATE SHARDING TABLE RULE
- Support database discovery to configure multiple groups of high availability under the same logic database
- Support ShardingSphere-Proxy to start up under empty logic library
- Support for isolating EventBus events by instance
- Support the database to detect changes in the master node and restart the detection heartbeat task
- Support ShardingSphere-Proxy to generate new worker-id when re-registering in cluster mode
- Thrown exception when inserting expression value in shadow column on executing insert
- Support distributed transactions across multiple logical databases
- Support executing truncate in XA & PostgreSQL
- Support alter local transaction rule with DistSQL
- Support global transaction manager
- Delete support for branch transaction on proxy
Bug Fix
- Fix single table metadata refresh error caused by filtering DataSourceContainedRule
- Fix parsing exception caused by the null value of MySQL blob type
- Fix PostgreSQL/openGauss reset statement parse error
- Fix wrong parameter rewrite when use sharding and encrypt
- Fix the failed conversion of Month related classes on IntervalShardingAlgorithm
- Fix NullPointerException when execute select union statement contains subquery
- Fix wrong encrypt rewrite result due to incorrect order of metadata
- Fix MySQL trim function parse error
- Fix MySQL insert values with _binary parse error
- Fix MySQL syntax error cannot be thrown to client
- Avoid EventLoop blocked because of closing JDBC resources
- Correct server status flags returned by MySQL Proxy
- Fix a possible connection leak issue if Proxy client disconnected in transaction
- Fixed a possible consistency issue with the statement being executed when the Proxy client is disconnected
- Avoid pooled connection polluted by executing SET statements
- Make SHOW TABLES FROM work in ShardingSphere-Proxy
- Fix PostgreSQL DDL could not be executed by Extended Query
- Fix SHOW VARIABLES could not be executed in PostgreSQL Proxy without resource
- Fix FileNotFoundException when use ShardingSphere Driver with SpringBoot fatjar
- Scaling: Fix the problem that the table contains both primary key and unique index at inventory migration
- Scaling: Improve incremental migration, support the latest position in the middle of batch insert event
- Scaling: Fix the error caused by null field value in openGauss incremental migration
- DistSQL: Fix incorrect strategy name in result of
SHOW SHARDING TABLE RULES
- DistSQL: Fix current rule config is modified in advance when
ALTER SHARDING TABLE RULE
- DistSQL: Fix connection leak when
ALTER RESOURCE
- DistSQL: Fix
CREATE TRAFFIC RULE
failed when load balance algorithm is null - Fix that the monitoring heartbeat task was not stopped when the database was discovered and the logical library was deleted
- Fix cluster mode ShardingSphere-JDBC load all logic database
- Fix worker-id generated by SnowflakeKeyGenerateAlgorithm in cluster mode may exceed the maximum value
- Fix
DistSQL
adding shadow algorithm exception without shadow data source - Fix cross-database data source confusion caused by same data source name in multiple logical databases
- Fix RUL DistSQL execution failure in transaction
- Fix begin for PostgreSQL & openGauss
- Agent: Fixed the error of null value in contextManager when collecting metric data
API Changes
- Remove SQL passthrough to data source feature
- Add new assistedQueryEncryptorName and remove QueryAssistedEncryptAlgorithm interface
- Refactor readwrite-splitting api to improve user experience
- Remove check-duplicate-table-enabled configuration
- Remove useless config item show-process-list-enabled configuration
- Scaling: Change keyword for part of data migration DistSQL
- Scaling: Redesign part of data migration DistSQL
- DistSQL: Unify parameter type specification
- DistSQL: Split
SHOW INSTANCE MODE
toSHOW MODE INFO
andSHOW INSTANCE INFO
- DistSQL: Change
DROP SCALING jobId
toCLEAN MIGRATION jobId
- DistSQL: Remove
COUNT INSTANCE RULES
- Add database found that high availability supports all the slave libraries to go offline, and the main library undertakes the read traffic configuration
- SnowflakeKeyGenerateAlgorithm supports configuring worker-id in standalone mode
- Replace
sourceDataSourceName
withproductionDataSourceName
in Shadow API Configuration - Authority: Remove deprecated native authority provider
Refactor
- ShardingSphere metadata refactoring for splitting actual metadata and logical metadata
- Use ConnectionContext, QueryContext to remove ThreadLocal in FetchOrderByValueQueuesHolder, TrafficContextHolder, SQLStatementDatabaseHolder and TransactionHolder
- Modify the default value of the ShardingSphere-Proxy version in the helm chart
- Docker container will exit if ShardingSphere-Proxy failed to startup
- Helm Charts in ShardingSphere repository are transferred to sub-project shardingsphere-on-cloud
- Scaling: Plenty of refactor for better code reuse
- DistSQL: Add a new category named RUL
- Refactor the schedule module and split it into cluster schedule and standalone schedule
- Remove memory mode, keep standalone mode and cluster mode
- Refactoring metadata table loading logic and persistence logic
- Refactoring distributed locks to retain the most concise interface design
- Refactor : Unify The Creation for Proxy Containers in IT from ENV Modules
- Refactor : Unify The Configuration for container created by testcontainer