Project: ShardingSphere (App Definition and Development / Database)
File: RELEASE-NOTES.md

Proxy: Remove the outdated schemaName configuration of the Proxy Kernel: Remove the sqlCommentParseEnabled configuration in SQL Parser Rule to reduce code complexity SQL Parser: Consider removing sqlCommentParseEnabled config in SQLParser rule Federation: Add allQueryUseSQLFederation config for sql federation DistSQL: New syntax for query plugin (SPI) implementation DistSQL: New syntax for managing SQL_TRANSLATOR rule Pipeline: Improve CDC stability and performance Pipeline: MemoryPipelineChannel supports configurable zero queue size for less memory consumption Pipeline: Show dedicated error when mode type is not Cluster Authority: Add isSuper option for user Pipeline: Ignore error message in status DistSQL result on job cancelling DistSQL: Use JSON format to output props in RQL DistSQL: Optimize REFRESH DATABASE METADATA logic DistSQL: SHOW COMPUTE NODES supports JDBC nodes DistSQL: Optimize syntax of REFRESH DATABASE METADATA DistSQL: Optimize the output of SHOW TABLE METADATA Proxy: Add MySQL precompiled parameter verification to avoid turning on rewriteBatchedStatements=true when BenchmarkSQL connects to Proxy, causing an ArrayIndexOutOfBoundsException exception when the Proxy parameterCount exceeds 65535. SQL Parser: Add EOF to throw exception when parse distsql rollback migration statement SQL Parser: Support more plsql statement parse and add plsql parse assert logic SQL Parser: Support parse index hint SQL Parser: Support mysql intersect combine operation sql parse SQL Parser: Supoort parse chinese white space for oracle SQL Parser: Fix mysql TimeStampDiff function parse SQL Parser: Fix sqlServer unqualified shorthand parsing SQL Parser: Support sqlServer SEARCH unreserved word parsing SQL Parser: Add sql server MEMBER unreserved word Binder: Add ParameterMarkerSegmentBinder logic for Oracle MergeStatementBinder Federation: Support mysql cross join statement for sql federation Transaction: Add advice message in XATransactionCheckPrivilegeFailedException Sharding: Validate duplicate sharding actual data nodes Sharding: Support null condition value routing Proxy: Fix mysql client multi statements option in protocol Pipeline: Fix commit/rollback migration job doesn't drop related consistency check job when check job is not completed Pipeline: Fix show consistency check status stop_time display Proxy: Restore original databaseName in connectionSession after unicast Proxy: Fix show tables can be executed without use database Proxy: Fix the incorrect current database after unicast routing Proxy: Fix the problem that show tables can be executed before use database Readwrite-splitting: Fix check exception when using shadow data source Governance: Fix thread blocking problem when create logic database for Etcd register center GovernanceFix register storage units and create feature rules failure when use Standalone mode MetaData: Fix database system schema is not built when create database Metadata: Fix NPE of system schema builder rule SQL Parser: Fix PostgreSQL NPE when parse columnRef SQL Parser: Fix npe cause by parse MySQL select window statement Sharding: Fix routing error when joining tables in uppercase Sharding: Fix drop sharding table exception when table name is uppercase Sharding: Fix generated key with upper case column name Federation: Fix Object 'DUAL' not found exception when execute select 1 from dual with sql federation Transaction: Fix xa auto commit in executeQuery Proxy: Fix multi statements with specified database name Proxy: Supports dbcp and c3p0 connection pools Metadata: Standalone mode adapts to metadata new structure Governance: Governance supports register instance level data source Mode: Improve Standalone mode JDBC type impl reset data on initialization Scaling: Isolate ShardingSphereDataSource Standalone repository in pipeline Scaling: Disable system-schema-metadata-enabled in pipeline JDBC: Move jdbc core

from test to main Scaling: Add algorithm columns in SHOW MIGRATION CHECK ALGORITHMS DistSQL result Scaling: Add type_aliaes column in SHOW MIGRATION CHECK ALGORITHMS DistSQL result Encrypt: Add duplicate name check for derived columns and logical columns Encrypt: Deny DDL for cipher columns in Proxy Encrypt: Add the default type for derived columns to varchar(4000) Scaling: Fix get inventory position not correctly on breakpoint resuming when table names are similar Scaling: Fix CDC importer not start on breakpoint resuming when first inventory task is finished Single Table: Fix not switched active version when CREATE/DROP table modifies the Single rule configuration JDBC: Fix JDBC memory leak with MySQL in the 5.4.0 version Metadata: Change sharding broadcast tables to global broadcast tables JDBC: Remove exclamation mark (!) for global rules DistSQL: Simplify keywords ASSISTEDQUERY, LIKEQUERY in encrypt DistSQL DistSQL: Optimize SQL_PARSER rule syntax Encrypt: Adjust encryption yaml API to distinguish between encrypt, like, and assisted query configurations Encrypt: Remove plain column and queryWithCipherColumn configuration in encrypt feature Readwrite-splitting: Refactor read/write splitting api Proxy: Remove property proxy-instance-type configuration Proxy: Remove property proxy-backend-executor-suitable Proxy: Remove property proxy-mysql-default-version Scaling: Refactor commit rollback streaming to drop streaming Sharding: Merge ShardingCacheRule into ShardingRule (Experimental) DistSQL: New syntax to manage SQL_FEDERATION rule Proxy: Support Unix Domain Socket Scaling: CDC supports pure incremental mode Scaling: CDC supports exporting data by transaction Scaling: CDC supports MySQL and PostgreSQL Scaling: CDC supports single table Scaling: CDC supports all openGauss data types Scaling: CDC supports replication reconnection Scaling: Remove DataConsistencyCalculateAlgorithmChooser Scaling: Improve performance of integer unique key table inventory data splitting Scaling: Adjust process configuration default value to reduce resource consumption Scaling: Auto refresh table metadata for migration Scaling: Compatible with openGauss existing replication slot reuse when database not existing Scaling: Show data consistency check status result should be empty when it's not completed Scaling: Enable concurrent CRC32 match on source and target Scaling: Pipeline job compatible with sharding rule audit strategy Metadata: Refactor metadata persistence structure Metadata: Optimize the process of loading single table metadata Metadata: Support MySQL/PostgreSQL/openGauss system tables empty query DistSQL: Add support for transactionalReadQueryStrategy for read/write splitting rule DistSQL: Enhanced algorithm properties check Transaction: Add privilege check Transaction: Remove the TransactionTypeHolder and only create the current transaction manager Parser: Support MySQL LOAD DATA and LOAD XML statement with single table or broadcast table Parser: Improve the parsing support of high-priority SQL statements in the test results of the MySQL test program Parser: Oracle dialect parser now supports Chinese comma Encrypt: Support query of encrypt column in projection subquery when use encrypt feature Kernel: Adds table existence metadata check for INSERT, DELETE, UPDATE and SELECT statements JDBC: Implement batch execution for ShardingSphereStatement Proxy: Frontend supports SSL/TLS Proxy: Support Flush message for PostgreSQL/openGauss Proxy Proxy: Support data type bit, bool for PostgreSQL Proxy Scaling: Fix pipeline job failure status persistence and usage Scaling: Fix CDC DELETE event Record.beforeList is null Scaling: Fix openGauss mppdb decoding plugin single quote issue Scaling: Fix execute engine not closed after job stopping Scaling: Fix stop job before task starting Metadata: Fix case sensitive issue when loading schema meta data with H2 database Metadata: Fix "object not found" exception when config PostgreSQL/openGauss schema name as database name DistSQL: Fix wrong result of checktablemetadata_enabled when execute SHOW DIST VARIABLE Encrypt: Fix SQL rewrite exception when use PostgreSQL/openGauss encrypt like feature Sharding: Support null sharding condition pass to sharding algorithm to allow user control null value route Parser: Support BETWEEN AND expression parsing in MySQL Projection Mask: Fix wrong mask result when config same value of from-x and to-y with KEEPFROMXTOY Infra: Fix ClassNotFoundException may occur when missing pgjdbc Proxy: Fix MySQL packet out of order when client sending pipelining requests Proxy: Add property `system-log-level`, support dynamic change of log level by

DistSQL: Remove Hint-related DistSQL, users can use `SQL Hint` instead Scaling: Support any type of column unique key table Scaling: Use stream query for inventory dump and data consistency check Scaling: Compatible with `VARBINARY` column type in MySQL binlog parsing Scaling: Refactor `AbstractSimplePipelineJob.execute` to blocking Scaling: Improve table records count calculation Scaling: Support proxy sharding rule absent for migration job Scaling: Add `useServerPrepStmts=false` for pipeline job on MySQL Scaling: Improve datetime/time parsing for MySQL binlog Scaling: Add global status for prepare stage Scaling: Add `netTimeoutForStreamingResults` for pipeline job on MySQL Authority: Support specifying password authentication method Authority: Add md5 authentication support for openGauss protocol Agent: Add more metrics for JDBC Kernel: ShardingSphere Driver configuration supports Apollo Kernel: Adjust `SKIPENCRYPTREWRITE SQL` Hint to `SKIPSQLREWRITE` to support more scenarios Kernel: Support openGauss `EXPLAIN PERFORMANCE` Encrypt: Like supports concat function Scaling: Fix unicode char and special char decoding for PostgreSQL incremental task Scaling: Fix Migration not support PostgreSQL json type DistSQL: `CREATE SHARDING TABLE RULE` supports `NONE` strategy Kernel: Fix use system database error when data sources are empty Kernel: Fix set worker-id does not take effect with Standalone mode Kernel: Clear storage node information when delete readwrite-splitting and database discovery rules Kernel: Fix the abnormal problem of Column index out of range in single table complex query Kernel: Fix PostgreSQL like lower case

Kernel: Fixed the exception of built-in metabase data collection when the front and back database types were inconsistent Kernel: Fix the problem of routing error reporting under certain table names Kernel: Fix MySQL create procedure parse error Kernel: Fix union extract table name NPE Kernel: Fix upper case table constraint not rewrite error Kernel: Fix failed to parse PostgreSQL / openGauss SQL contains money type Kernel: Fix PostgreSQL / openGauss positional parameter rule Kernel: Fix PostgreSQL / openGauss failed to parse const with type cast Kernel: Fix Chinese characters encode exception when execute select with sql federation engine Kernel: Fix `IndexOutOfBoundsException` when execute set variable statement int jdbc adapter Kernel: Fix index does not exist exception when execute drop index statement Proxy: Properly handle number sign in MySQL Proxy binary protocol Proxy: Fix PostgreSQL Proxy failed to handle bytea data type Proxy: Fix PostgreSQL Proxy failed to parse time value with microseconds Proxy: Fix PostgreSQL protocol codec for date type in binary format Proxy: Fix possible CCE `PostgreSQLInt2BinaryProtocolValue` Proxy: Fix possible error when client pass quoted charset to PostgreSQL/openGauss Proxy Kernel: Add new data masking, dynamic data masking features, and built-in data masking algorithms Scaling: Basic support of CDC feature DistSQL: Add masking rule related DistSQL Kernel: Cluster mode avoids secondary refresh of metadata Kernel: SHOW COMPUTE NODES supports displaying the version number of each instance Kernel: System database add cluster information table Kernel: Standalone mode persistent metadata supports MySQL Kernel: SQL HINT performance improvement Kernel: Restore routing to the specified database with Hint Encrypt: Supports underscore wildcards for Encrypt CharDigestLikeEncryptAlgorithm Kernel: Support SQL federation SELECT NULLS LAST/FIRST statement Kernel: Refactor encrypt integration test logic and add more test cases Kernel: Add salt props for MD5MaskAlgorithm, MD5EncryptAlgorithm Kernel: Refactor ShardingConditionEngine to support SPI configuration DistSQL: Add algorithm type check for `CREATE SHARDING TABLE RULE` Fix the problem of ZooKeeper cluster error reporting when ShardingSphere connects to Kubernetes Kernel: Fix use Consul in cluster mode start up failure DB Discovery: Close heartbeat job when drop discovery rule Kernel: Fix wrong decide result when execute same sharding condition subquery with SQL federation Kernel: Fix priority problem of UNION, INTERSECT, EXCEPT set operation in SQL Federation for PostgreSQL and openGauss dialect Kernel: Fix create view index out of range exception when view contains set operator Kernel: Add XA resource exceeds length check Kernel: Fix transaction support for spring requires_new Encrypt: Fix AESEncryptAlgorithm decrypt exception when config char type with PostgreSQL and openGauss Encrypt: Fix abnormal expansion result for shorthand when encrypt subquery contains an alias Kernel: Fix unsigned flag of column metadata was not serialized Kernel: Fix PostgreSQL / openGauss select fetch parsing issue to support federation execution engine Proxy: Fix packet sequence ID may be incorrect if error occurred in MySQL Proxy Proxy: Fix error occur in Proxy when using PostgreSQL composite type Proxy: Set proper column definition flag for MySQL COMSTMTPREPARE Proxy: When querying PG metadata through Proxy and the result set is empty, the labels are lost DistSQL: Refactor syntax API, please refer to the user manual Proxy: Change the configuration style of global rule, remove the exclamation mark Proxy: Allow zero-configuration startup, enable the default account root/root when there is no Authority configuration Proxy: Remove the default logback.xml and use API initialization JDBC: Remove the Spring configuration and use Driver + YAML configuration instead DistSQL: New syntax REFRESH DATABASE METADATA, refresh logic database metadata Kernel: Support DistSQL REFRESH DATABASE METADATA to load configuration from the governance center and rebuild MetaDataContext Support postgresql/openGauss setting transaction isolation level Scaling: Increase inventory task progress update frequency Scaling: DATA_MATCH consistency check support breakpoint resume Scaling: Support drop consistency check job via DistSQL Scaling: Rename column from shardingtotalcount to jobitemcount in job list DistSQL response Scaling: Add sharding column in incremental task SQL to avoid broadcast routing Scaling: Sharding column could be updated when generating SQL Scaling: Improve column value reader for DATA_MATCH consistency check DistSQL: Encrypt DistSQL syntax optimization, support like query algorithm DistSQL: Add properties value check when REGISTER STORAGE UNIT DistSQL: Remove useless algorithms at the same time when DROP RULE DistSQL: EXPORT DATABASE CONFIGURATION supports broadcast tables DistSQL: REGISTER STORAGE UNIT supports heterogeneous data sources Encrypt: Support Encrypt LIKE feature Automatically start distributed transactions when executing DML statements across multiple shards Kernel: Support client \d for PostgreSQL and openGauss Kernel: Support select group by, order by statement when column contains null values Kernel: Support parse RETURNING clause of PostgreSQL/openGauss Insert Kernel: SQL HINT performance improvement Kernel: Support mysql case when then statement parse Kernel: Supporting data source level heterogeneous database gateway (Experimental) Sharding: Add sharding cache plugin Proxy: Support more PostgreSQL datetime formats Proxy: Support MySQL COMRESETCONNECTION Scaling: Improve

to support unknown event type Kernel: Support case when for federation Scaling: Fix barrier node created at job deletion Scaling: Fix part of columns value might be ignored in DATA_MATCH consistency check Scaling: Fix jdbc url parameters are not updated in consistency check Scaling: Fix tables sharding algorithm type INLINE is case-sensitive Scaling: Fix incremental task on MySQL require mysql system database permission Proxy: Fix the NPE when executing select SQL without storage node Proxy: Support DATABASE_PERMITTED permission verification in unicast scenarios Kernel: Fix the wrong value of worker-id in show compute nodes Kernel: Fix route error when the number of readable data sources and weight configurations of the Weight algorithm are not equal Kernel: Fix multiple groups of readwrite-splitting refer to the same load balancer name, and the load balancer fails problem Kernel: Fix can not disable and enable compute node problem JDBC: Fix data source is closed in ShardingSphereDriver cluster mode when startup problem Kernel: Fix wrong rewrite result when part of logical table name of the binding table is consistent with the actual table name, and some are inconsistent Kernel: Fix startup exception when use SpringBoot without configuring rules Encrypt: Fix null pointer exception when Encrypt value is null Kernel: Fix oracle parsing does not support varchar2 specified type Kernel: Fix serial flag judgment error within the transaction Kernel: Fix cursor fetch error caused by wasNull change Kernel: Fix alter transaction rule error when refresh metadata Encrypt: Fix EncryptRule cast to TransparentRule exception that occurs when the call procedure statement is executed in the Encrypt scenario Encrypt: Fix exception which caused by ExpressionProjection in shorthand projection Proxy: Fix PostgreSQL Proxy int2 negative value decoding incorrect Proxy: PostgreSQL/openGauss support describe insert returning clause Proxy: Fix gsql 3.0 may be stuck when connecting Proxy Proxy: Fix parameters are missed when checking SQL in Proxy backend Proxy: Enable MySQL Proxy to encode large packets Kernel: Fix oracle parse comment without whitespace error DistSQL: Fix show create table for encrypt table Scaling: Reverse table name and column name when generating SQL if it's SQL keyword Scaling: Improve increamental task failure handling Kernel: Governance center node adjustment, unified hump to underscore Add ShardingSphere default system database to support global metadata management Support asynchronous data consistency check Added support for Consul governance center Added support for Nacos governance center Added support for the view function in the governance center SQL Federation engine adds ADVANCED executor and adapts to openGauss database Support ShardingSphere Proxy startup after read-write splitting read database is disabled SQL HINT supports force sharding route Show processlist supports showing Proxy connections (sleep, active) Optimized ShardingSphere-JDBC data source configuration error message ShardingSphere-JDBC supports SpringBoot 3.x version Support load MySQL, PostgreSQL, openGauss and SQLServer view metadata Update Snakeyaml to 1.33 and open YAML 3MB limit Reuse cached connections as possible when unicast sharding Support Parsing ALTER ROLE in Oracle Add support of ALTER RESOURCE COST for Oracle Support parsing Drop Materialized View in Oracle Support parsing DROP LIBRARY in Oracle Support parsing DROP JAVA in Oracle Support parsing DROP PLUGGABLE DATABASE in Oracle Support parsing DROP INDEX TYPE in Oracle Support Parsing ALTER PACKAGE in openGauss Support openGauss select offset, count statement parse and remove useless syntax in PostgreSQL grammar Add max_size to openGauss syntax Optimize alter view/drop view parse logic and fix alter view refresher bug Add sql parser error detail to ParseCancellationException Add support for parse OptOnConflict for postgres Enhance support for ALTER TABLE and ALTER VIEW in PostgreSQL Add a missing keyword in PostgreSQL Declare Statement Add json function support to mysql parser ShardingSphere-Proxy automatically adapts to cgroup memory limits in Docker environment Show migration status DistSQL respond new added error_message column Show migration status respond new added processedrecordscount column Support MySQL 8 cachingsha2password authentication in incremental dump Improve drop pipeline process configuration Support unique key table migration Support migrate table to new name table Improve thread pool usage in pipeline task and runner Support cancelable data consistency check DistSQL: When creating or altering readwrite-splitting rule, check duplicate write or read resources DistSQL: Add validity check for `ALTER SHARDING BINDING TABLE RULES` Standalone mode H2 support persistent metadata Fix openGauss cursor execution in xa transaction Added transaction related exceptions Generate proper placeholder for PostgreSQL when rewriting Fix opengauss update set parse exception Fix parse exception when execute insert statement with negative value Fix wrong connectDescriptorUrlPattern in OracleDataSourceMetaData Fix insert SQL garbled after sharding rewrote in special rules Fix exception when execute select * from information_schema.tables Fix exception when execute alter view rename Fix PostgreSQL check data source permission when using rolsuper DistSQL: fix NPE for `REFRESH TABLE METADATA` when there is no resource Fix Unmodified table metadata when modify rules Fix database discovery The

algorithm cannot find primary node" Fixed using etcd to build a cluster event not aware Fix NPE occurred when transaction management is not created Fix routing exception that occurs when the sharding value of the InlineShardingAlgorithm algorithm exceeds Integer SQL HINT syntax format adjust to SQL-style format DistSQL: Remove syntax `COUNT DATABASE RULES` ShardingSphere mode remove overwrite configuration Agent: Optimize configuration of

Support SQL audit for sharding feature Support MySQL show processlist and kill process 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` 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 createbitxor_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 COMSTMTSENDLONGDATA 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

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: 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 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 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` to `SHOW MODE INFO` and `SHOW INSTANCE INFO` DistSQL: Change `DROP SCALING jobId` to `CLEAN 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` with `productionDataSourceName` in Shadow API Configuration Authority: Remove deprecated native authority provider 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 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 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

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 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 LASTINSERTID() 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 DistSQL: Change `EXPORT SCHEMA CONFIG` to `EXPORT DATABASE CONFIG` DistSQL: Change `IMPORT SCHEMA CONFIG` to `IMPORT DATABASE CONFIG` DistSQL: Change `SHOW SCHEMA RESOURCES` to `SHOW DATABASE RESOURCES` DistSQL: Change `COUNT SCHEMA RULES` to `COUNT DATABASE RULES` Mode: Adjust db-discovery algorithm configuration Authority: Authority provider `ALLPRIVILEGESPERMITTED` updated to `ALL_PERMITTED` Authority: Authority provider `SCHEMAPRIVILEGESPERMITTED` updated to `DATABASE_PERMITTED` 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 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 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 in `PipelineAPIFactory` 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` and `SHOW VARIABLE` DistSQL: Remove the effect of binding order when `DROP BINDING TABLE RULES` DistSQL: Add column `mode_type` in the result of `SHOW 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 `delaytime` to the result of `SHOW READWRITESPLITTING READ RESOURCES` DistSQL: Support `IF EXISTS` when `DROP 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 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 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 return `columnName` 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

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` in `ADD 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 Support SQL hint New DistSQL syntax: SHOW AUTHORITY RULE New DistSQL syntax: SHOW TRANSACTION RULE New DistSQL syntax: ALTER TRANSACTION RULE New DistSQL syntax: SHOW SQL_PARSER RULE New DistSQL syntax: ALTER SQL_PARSER RULE New DistSQL syntax: ALTER DEFAULT SHARDING STRATEGY New DistSQL syntax: DROP DEFAULT SHARDING STRATEGY New DistSQL syntax: CREATE DEFAULT SINGLE TABLE RULE New DistSQL syntax: SHOW SINGLE TABLES New DistSQL syntax: SHOW SINGLE TABLE RULES New DistSQL syntax: SHOW SHARDING TABLE NODES New DistSQL syntax: CREATE/ALTER/DROP SHARDING KEY GENERATOR New DistSQL syntax: SHOW SHARDING KEY GENERATORS New DistSQL syntax: REFRESH TABLE METADATA New DistSQL syntax: PARSE SQL, Output the abstract syntax tree obtained by parsing SQL New DistSQL syntax: SHOW UNUSED SHARDING ALGORITHMS New DistSQL syntax: SHOW UNUSED SHARDING KEY GENERATORS New DistSQL syntax: CREATE/DROP SHARDING SCALING RULE New DistSQL syntax: ENABLE/DISABLE SHARDING SCALING RULE New DistSQL syntax: SHOW SHARDING SCALING RULES New DistSQL syntax: SHOW INSTANCE MODE New DistSQL syntax: COUNT SCHEMA RULES Scaling: Add `rateLimiter` configuration and `QPS` `TPS` implementation Scaling: Add `DATA_MATCH` data consistency check Scaling: Add `batchSize` configuration to avoid possible OOME Scaling: Add `streamChannel` configuration and `MEMORY` implementation Scaling: Support MySQL BINARY data type Scaling: Support MySQL YEAR data type Scaling: Support PostgreSQL BIT data type Scaling: Support PostgreSQL MONEY data type Database discovery adds support for JDBC Spring Boot Database discovery adds support for JDBC Spring Namespace Database discovery adds support for openGauss Shadow DB adds support for logical data source transfer Add data type validator for column matching shadow algorithm Add support for xa start/end/prepare/commit/recover in encrypt case with only one data source Redesign the database discovery related DistSQL syntax In DistSQL, the keyword GENERATEDKEY is adjusted to KEYGENERATE_STRATEGY Native authority provider is marked as deprecated and will be removed in a future version Scaling: Move scaling configuration from server.yaml to config-sharding.yaml Scaling: Rename clusterAutoSwitchAlgorithm SPI to completionDetector and refactor method parameter Scaling: Data consistency check API method rename and return type change Database discovery module API refactoring Readwrite-splitting supports static and dynamic configuration Shadow DB remove the enable configuration Shadow algorithm type modified Improve load multi single table performance Remove automatically added order by primary key clause Optimize binding table route logic without sharding column in join condition Support update sharding key when the sharding routing result keep the same Optimize rewrite engine performance Support select union/union all ... statements by federation engine Support insert on duplicate key update sharding column when route context keep same Use union all to merge sql route units for simple select to improve performance Supports autocommit in ShardingSphere-Proxy ShardingSphere openGauss Proxy supports sha256 authentication method Remove property java.net.preferIPv4Stack=true from Proxy startup script Remove the verification of null rules for JDBC Optimize performance of executing openGauss batch bind Disable Netty resource leak detector by default Supports describe prepared statement in PostgreSQL / openGauss Proxy Optimize performance of executing PostgreSQL batched inserts Add instance_id to the result of SHOW INSTANCE LIST Support to use instance_id to perform operations when enable/disable a proxy instance Support auto creative algorithm when `CREATE SHARDING TABLE RULE`, reducing the steps of creating rule Support specifying an existing KeyGenerator when CREATE SHARDING TABLE RULE DROP DATABASE supports IF EXISTS option DATANODES in SHARDING TABLE RULE supports enumerated inline expressions CREATE/ALTER SHARDING TABLE RULE supports complex sharding algorithm SHOW SHARDING TABLE NODES supports non-inline scenarios (range, time,

When there is only one read data source in the readwrite-splitting rule, it is not allowed to be disabled Scaling: Add basic support of chunked streaming data consistency check Shadow algorithm decision logic optimization to improve performance Refactor federation engine scan table logic Avoid duplicated TCL SQL parsing when executing prepared statement in Proxy Scaling: Add pipeline modules to redesign scaling Scaling: Refactor several job configuration structure Scaling: Precalculate tasks splitting and persist in job configuration Scaling: Add basic support of pipeline-core code reuse for encryption job Scaling: Add basic support of scaling job and encryption job combined running Scaling: Add `input` and `output` configuration, including `workerThread` and `rateLimiter` Scaling: Move `blockQueueSize` into `streamChannel` Scaling: Change jobId type from integer to text Optimize JDBC to load only the specified schema Optimize meta data structure of the registry center Rename Note shadow algorithm to HINT shadow algorithm Support parsing function Fix alter table drop constrain Fix optimize table route Support Route resource group Support parsing binlog Support postgreSql/openGauss '&' and '|' operator Support parsing openGauss insert on duplicate key Support parse postgreSql/openGauss union Support query which table has column contains keyword Fix missing parameter in function Fix sub query table with no alias Fix utc timestamp function Fix alter encrypt column Support alter column with position encrypt column Fix delete with schema for postgresql Fix wrong route result caused by oracle parser ambiguity Fix projection count error when use sharding and encrypt Fix npe when using shadow and readwrite_splitting Fix wrong metadata when actual table is case insensitive Fix encrypt rewrite exception when execute multiple table join query Fix parsing chinese Fix encrypt exists sub query Fix full route caused by the MySQL BINARY keyword in the sharding condition Fix getResultSet method empty result exception when using JDBCMemoryQueryResult processing statement Fix incorrect shard table validation logic when creating store function/procedure Fix null charset exception occurs when connecting Proxy with some PostgreSQL client Fix executing commit in prepared statement cause transaction status incorrect in MySQL Proxy Fix client connected to Proxy may stuck if error occurred in PostgreSQL with non English locale Fix file not found when path of configurations contains blank character Fix transaction status may be incorrect cause by early flush Fix the unsigned datatype problem when query with PrepareStatement Fix protocol violation in implementations of prepared statement in MySQL Proxy Fix caching too many connections in openGauss batch bind Fix the problem of missing data in SHOW READWRITE_SPLITTING RULES when db-discovery and readwrite-splitting are used together Fix the problem of missing data in SHOW READWRITE_SPLITTING READ RESOURCES when db-discovery and readwrite-splitting are used together Fix the NPE when the CREATE SHARDING TABLE RULE statement does not specify the sub-database and sub-table strategy Fix NPE when PREVIEW SQL by schema.table Fix DISABLE statement could disable readwrite-splitting write data source in some cases Fix DIABLE INSTANCE could disable the current instance in some cases Fix the issue that user may query the unauthorized logic schema when the provider is SCHEMAPRIVILEGESPERMITTED Fix NPE when authority provider is not configured Scaling: Fix DB connection leak on XA initialization which triggered by data consistency check Scaling: Fix PostgreSQL replication stream exception on multiple data sources Scaling: Fix migrating updated record exception on PostgreSQL incremental phase Scaling: Fix MySQL

check BINLOGROWIMAGE option failure Scaling: Fix PostgreSQL xml data type consistency check Fix database discovery failed to modify cron configuration Fix single read data source use weight loadbalance algorithm error Fix create redundant data source without memory mode Fix column value matching shadow algorithm data type conversion exception Support parsing SQL comment New DistSQL syntax: shadow rule management New DistSQL syntax: scaling job management New DistSQL syntax: disable proxy instance New DistSQL syntax: disable readwrite-splitting read data source New DistSQL syntax: `DROP SHARDING ALGORITHM` New DistSQL syntax: `ALTER RESOURCE` New DistSQL syntax: `CREATE SHARDING ALGORITHM` New DistSQL syntax: `CREATE DEFAULT SHARDING [TABLE | DATABASE] STRATEGY` New DistSQL syntax: `SHOW ALL VARIABLE` New DistSQL syntax`SHOW VARIABLE variableName;` Support `3` modes, including Memory, Standalone and Cluster mode Proxy supports for openGauss Scaling: Add basic support for openGauss Scaling: Add incremental task completion detect algorithm SPI interface Scaling: Add data consistency check algorithm SPI interface Scaling: Basic support of create table on target automatically for MySQL and openGauss Scaling: Support auto switch cluster configuration when job finished Scaling: Add more DistSQL support such as data consistency check, etc Add schema name configuration for ShardingSphere-JDBC Add default sharding column configuration Change the default authority provider from `NATIVE` to `ALLPRIVILEGESPERMITTED` SCTL syntax adjustment, merged with DistSQL RAL syntax `SHOW RESOURCES` DistSQL is adjusted to `SHOW SCHEMA RESOURCES` Remove `shadow` logical field, support shadow algorithm Support parsing MySQL union/union all statement Support PostgreSQL `ABORT` statement Refactor and improve metadata loading process Support PostgreSQL `CREATE INDEX` statement to generate index automatically when no index is specified Support SQL statement execution with logical schema Support binding tables configuration with different sharding columns Optimize kernel performance Proxy supports queries to part of information_schema tables to optimize client connection experience DistSQL supports using quotation marks to use keywords as parameter names The password in the `ADD RESOURCE` statement supports special characters `ADD RESOURCE` supports custom JDBC parameters and connection pool properties `DROP RESOURCE` supports optional parameter `ignore single tables`, used to ignore single table rule restrictions Support the use of DistSQL to create sharding table rule based on readwrite-splitting rules `SHOW DATABASES` statement supports like syntax `CREATE SHARDING TABLE RULE` supports the use of inline expressions to specify resources `CREATE SHARDING TABLE RULE` supports configuration using `dataNodes` `CREATE SHARDING TABLE RULE` supports reuse of existing algorithms `SET VARIABLE`, support to modify proxy configuration PostgreSQL's protocol enhancements (Such as supports Portal, unspecified type) Using Netty executor to optimize Proxy performance in specified scenarios Make memory strictly fetch size configurable in Proxy Scaling: Improve support for PostgreSQL Scaling: Support concurrent data consistency check of source and target side Refactor the SingleTable feature to support Encrypt multiple data sources Adjust the persistent data structure of the registry center state node Remove the SQL rewrite of DML for Shadow Support the SQL routing of DDL for Shadow Scaling: Refactor default implementation of incremental task completion detect algorithm Scaling: Refactor default implementation of data consistency check algorithm Scaling: Remove HTTP API and binary distribution Fix sharding interval algorithm Fix `SHOW INDEX FROM TABLE FROM TABLE` statement rewrite exception Fix Encrypt multi tables join query rewrite exception Fix subquery index out of range exception Fix wrong result of Oracle paging query Fix the rewrite exception when KeyGenerateStrategy is not configured in the Sharding feature Fix federation executor engine exception caused by Oracle dialect case Fix Sharding and Encrypt integration usage rewrite exception Fix Oracle metadata loading exception Fix the issue that `SHOW RESOURCES` statement cannot display custom attributes Fix the issue that SQL execution exception is not thrown Fix Etcd can not send node added event Fix PostgreSQL rows contains null value may be missing in query result Fix PostgreSQL metadata columns are out-of-order Fix client character set may be incorrect in Proxy New DistSQL to load and show all the ShardingSphere configuration rules Support join SQL from different database instances Support multiple backend database types for new feature of database gateway Support creating and updating the authentication online Add new automated agent module `QueryReplica` configuration item is replaced by `read-write-splitting` `Authentication` configuration item of ShardingProxy is replaced by `AUTHORITY` Optimize the datasource configuration for ShardingJDBC with `dataSourceClassName` New API for automated sharding table configuration to provide standard and automated sharding tables Remove configuration item `acceptor-size` from ShardingProxy Create a built-in sharding algorithm SPI which allows users to directly configure the class name as in 4.x Improve metadata loading process distinctly Greatly enhance the SQL parsing for Oracle, SQLServer and PostgreSQL Support loading privileges from MySQL/PostgreSQL/SQLServer/Oracle Support DDL statement for encryption feature Support rewrite owner table name of projection if using sharding and encrypt together When using `SELECT *` from encrypt SQL, add quote char for rewritten column to avoid conflict with keyword Support PostgreSQL JSON/JSONB/pattern matching operator parse Support MySQL/PostgreSQL `CREATE/ALTER/DROP TABLESPACE` statement Support PostgreSQL `PREPARE, EXECUTE, DEALLOCATE` statement Support PostgreSQL `EXPLAIN` statement Support PostgreSQL `START/END TRANSACTION` statement Support PostgreSQL `ALTER/DROP INDEX` statement Support CREATE `TABLESPACE` of PostgreSQL Support MySQL `CREATE LOADABLE FUNCTION` statement Support MySQL/PostgreSQL `ALTER TABLE RENAME` statement Support PostgreSQL Close command New schema structure in registry center Remove Nacos and Apollo config center support ShardingScaling leverages elasticJob as its job distribution Refactor the metadata content and its update process Bug fix for cannot use `SELECT * wildcard` when readwrite-splitting only Fix instance error when the custom sharding algorithm does not match the configuration type. Fix NoSuchTableException when execute drop table if exists statement Fix wrong table rewrite in `UPDATE ... SET ...` statement Fix wrong table rewrite in CREATE/ALTER TABLE statement foreign key reference table Fix projection owner check exception when exist subquery temporary table Fix Oracle/SQL92 `SELECT ... WHERE ... LIKE` statement class cast exception Fix MySQL `SELECT EXISTS ... FROM ...` statement parse error Fix wrong result of SHOW INDEX statement Fix SELECT `... GROUP BY ...` statement rewrite and merge result error Fix CREATE TABLE statement rewrite error for encrypt Fix exception occur in PostgreSQL Proxy when reading text format parameter values Enhance the support of array object for PostgreSQL Proxy Fix the bug of Datetype casting for ShardingProxy PostgreSQL Proxy supports using numeric type Fix PostgreSQL Proxy transaction command complete packet's tag incorrect Fix PostgreSQL Proxy may return packet which is not expected by client Upgrade the minimum supported version of JDK to Java8 Update Zookeeper to version 3.6.x and curator to version 5.1.0 Update Google Guava to version 29.0-jre The pluggable architecture is available and support function extension through the SPI Independent SQL parsing engine is available to get SQL parsed AST for the different database dialects New RDL(Rule Definition Language) feature for ShardingSphere Proxy supports creating sharding rules and sharding tables ShardingSphere-Scaling supports resuming data migration from break-point ShardingSphere-Scaling supports using ShardingSphere JDBC to migrate data to new cluster ShardingSphere shadow database is available New sharding/encryption/shadow/queryReplica API New sharding algorithm and strategy API New API for ShardingSphere Scaling to create task Remove DefaultDataSourceName setting item The separator of the parameter configuration item is changed from the dot . to minus sign - Change parameter

from global parameter to sharding algorithm parameter Refactor the architecture of SQL parsing module base on the database dialects Use SPI mechanism to reconstruct online metadata change processing Rename Orchestration module to Governance module Rename MasterSlave module to QueryReplica module Refactor the metadata structure in the governance registration center Refactor GovernmentShardingSphereDataSource ShardingSphere UI merges configuration center and registration center display layout The enhancement for MySQL and PostgreSQL SQL syntax definition and parsing process The enhancement for sub-queries in different database dialects Support MySQL view operations for non-sharding tables Support MySQL stored function and procedure operations for non-sharding tables Support SQLServer Top syntax Optimize the metadata loading to improve the startup speed Optimize batch insert performance Supports the use of Oracle RAC JDBC URL XA transaction manager adds support for Oracle database ShardingSphere Proxy supports the use of p6sy driver Add help information to the ShardingSphere Proxy startup script Fix alias rewriting error when processing OrderBy condition Fix SQL rewriting error when MYSQL Insert statement contains expression Fix parameter calculation error in update on duplicate SQL Fix generatedKeys gets wrong when batch inserting Fix the abnormal issue of multi-table verification in DML statement update operation Fix the NPE problem caused by executing SQL when the table does not exist Fix the exception when using the Show table command for an unconfigured table Fix metadata loading error when Oracle database has multiple qualified users Fix the issue that replica node cannot be enabled online Fix the problem that ShardingSphere-JDBC does not support PostgreSQL array type Fix the problem that ShardingSphere-Proxy does not respond when querying long blob data Add Sharding-Scaling & Sharding-UI dockerfile update MySQL & PostgreSQL version for proxy Fix parser syntax rule of SUBSTRING and CONVERT Fix parser ColumnSegment ClassCastException Fix TableMetaData load error when use Sharding-JDBC with oracle Fix getSchema NPE when use Sharding-JDBC with oracle Fix Sharding-JDBC parse sql NPE in PostgreSQL Fix Sharding-Proxy receive error response for PostgreSQL JDBC client Fix Sharding-Proxy response number of update is 0 for PostgreSQL JDBC client Fix Sharding-Proxy receive null for PostgreSQL column meta data Fix Sharding-Scaling NPE in MySQL incremental task Support scaling for ShardingSphere (alpha version) Move etcd registry center from experiment repo to apache repo Upgrade to Java 8 Optimization for Sharing Parser with ANTLR Visitor improving the parsing performance of long SQL by 100%~1000% Use multiple threads to load metadata for different data sources Support `allow.range.query.with.inline.sharding` option The docker of ShardingSphere-Proxy supports loading external lib packages Support integration with Spring using @ShardingSphereTransactionType Enhance ShardingDataSource to compatible with Seata in micro-service distribution transaction Remove leaf key generator Fix an exception caused by using a CHAR/VARCHAR type column as an order by item Refine `DataTypeName` syntax rules of all database dialects Fix an exception caused by executing `BEGIN` using prepared statement of MySQL C API Fix the problem that `ALTER TABLE` fails to execute when the field type of the table contains Integer/Double/BigDecimal Fix the problem of the stop index dislocation of segment with alias Fix the problem that overwriting SQL `SELECT * FROM tbl WHERE encryptcol = ? AND (shardingkey = ? OR sharding_key = ?)` when using sharding + encrypt would throw StringIndexOutOfBoundsException Fix the problem of incorrect decoding after AES encoding when using ShardingSphere-Proxy in Spring Boot Fix a long-time problem of adding schema dynamically in ShardingSphere-UI Using guava cache to fix parsing deadlock. Oracle insert SQL could not work in encrypt mode. Proxy for PostgreSQL decode parameters error in all types except String. COMSTMEXECUTE of proxy for MySQL could not support sysbench. None sharding strategy could not config in spring-boot. WasNull field was wrong in GroupByStreamMergeResult. Metadata.getColumns could not work in JDBC. IN operator contains space and `\n` `\t` `\r` could not supported by parser. Optimize antlr performance using two-stage parsing strategy. Add class filter constructor to restrict the illegal class from YAML. Change package and maven groupId form `io.shardingsphere` to `org.apache.shardingsphere`. Adjust ShardingSphere-JDBC configuration API. Adjust persist structure for registry center. SQL92 Syntax available. ShardingSphere-Proxy for PostgreSQL protocol available. SQL 100% compatible if route to single data node. Less-than(<), greater-than(>) and Less-than-equal(<=), greater-than-equal(>=) for sharding key operator available. DISTINCT SQL syntax available. Broadcast table available. LEAF key generator available. XA Transaction available, Atomikos, Narayana and Bitronix integrated. BASE Transaction available, Seata integrated. Data encrypt available. Skywalking plugin available. ShardingSphere-UI available, an orchestration management platform. MariaDB supported. Improve the compatibility of SQL parsing. `SELECT FOR UPDATE` route to primary data source only. Hint in ShardingSphere-Proxy

Make configuration of orchestration consistent between ShardingSphere-JDBC and ShardingSphere-Proxy. Renew modified data sources only, not renew all the data sources. Vibrate configurable for Snowflake key generator. Improve the compatibility of JDBC Driver URL. Delete statement with alias available. Check and disable updating sharding column. Fix wrong type of TINYINT and SMALLINT as INTEGER. ShardingSphere-UI, an orchestration management platform for ShardingSphere comes online. Not only SQLs from MySQL, PostgreSQL, SQLServer, Oracle, but any SQL92 Syntax can be parsed correctly and used in ShardingSphere. Support using less-than character(<) and greater-than character(>) for sharding data. When primary and replica dataSources exist, support executing `SELECT FOR UPDATE` on primary data source. Support hint in ShardingSphere-Proxy. Finish parsing DAL syntax for MySQL. Make configuration of orchestration compatible between ShardingSphere-JDBC and ShardingSphere-Proxy. Through Bug fix, the feature of encryption becomes much stable and applicable. Support delete statement with alias. Check and disable updating sharding column. Fix wrong type of TINYINT and SMALLINT as INTEGER. Rename optimized module to preprocessor module. Decouple rewrite core module and sharding/encrypt features. Optimize and delete API and configuration item of sharding logic index. Update the API of encryption to support the encrypted and plain data coexistence. Integration of Seata for distributed transaction. User can do data encryption by using ShardingProxy. User can use Leaf-segment generator to get distributed ID. Support Skywalking plugin for application performance management. Renew modified dataSources, not all the datasources to improve performance for configuration orchestration. Improve the compatibility of SQL parsing. Remove DatabaseType enum, use dynamic SPI to load data source type. The parse engine upgrade from the 2nd generation to 3rd. The Refactoring of SQL rewriting module. Merge all change logs of version 3.1.0.M1, 3.1.0, 3.1.0.1 and 4.0.0.M1. First apache release. Adjust persist structure for orchestration's registry center. Adjust ShardingSphere-JDBC configuration API. Change package and maven groupId form `io.shardingsphere` to `org.apache.shardingsphere`. Adjust spring-boot-starter. XA Transaction available. Data encrypt available. Use PostgreSQL protocol access ShardingSphere-Proxy available. DISTINCT SQL syntax available. Broadcast table. All SQL 100% compatible if route to single data node (MySQL Only). ShardingSphere-Proxy launch. Support the use of ShardingSphere in the form of database to support for MySQL CLI and GUI client Support batch INSERT Support OR Support DCL Support MySQL DAL Support XA transaction Support authorization Support registry center Support multiple logic databases Support `order by ?` Route unicast for DQL without table Caching parsed results to improve performance Support sharding and autoincrement key of INSERT without column names Use `YAML` instead of `JSON` to store configurations in registry center Properties can configure for sharding and replica query independent Execute engine enhancement Support `Spring Boot Starter` 2.X Support

for inline expression Support inject key generator objects by spring namespace Support inject sharding algorithm objects by spring namespace Opentracing enhancement Adjust the maven artifactId for orchestration module Adjust Spring namespace xsd for sharding and replica query Adjust hint API Refine package structure Deprecated and remove sharding-jdbc-transaction-parent module Remove type configuration in orchestration module Failed to parse SQL for Oracle when ROWNUM is not at end Support data type jsonb for PostgreSQL When aliases in `SELECT ITEMS` correspond to the real column names of `GROUP BY` or `ORDER BY`, there is no need to generate derived columns `NOT IN` parse exception Endless loop for bad SQL like `SELECT * FROM table WHERE id IN ()` Inline expression with groovy may cause memory leak Fail to parsing PostgreSQL due to the quotation Support SQL like `SELECT id, COUNT(*) FROM table GROUP BY 1,2` Derived columns of `GROUP BY / ORDER BY` appear in query result Dead lock may occur on MEMORY_STRICTLY mode when get connection on concurrency environment RoundRobinReplicaLoadBalanceAlgorithm throw an ArrayIndexOutOfBoundsException when AtomicInteger overflow Reuse PreparedStatement cause cache of route result do not clean Support transaction isolation on JDBC Unexpected replica datasource routing result when using `Round-robin` load-balance algorithm in Mybatis Can't resolve placeholder in `Spring Boot YAML` configuration Support TCL Support SQL that alias is the keyword Support new line for `YAML` configuration Replica database does not need to execute the DDL for replica query Support `CREATE INDEX` Support `DROP INDEX` `ShardingProperties` is invalid in `YAML` configuration Table name capitalization cannot be queried `IS NOT NULL` parse error When `GROUP BY` and `ORDER BY` aliases are inconsistent, stream merging should be used Support parsing numbers beginning with minus and decimal (e.g. `-.12`) Add escape char for derived columns or alias when using MySQL Exception is no longer `DuplicateKeyException` when the unique key conflict Using `rownum` greater than or equal to or less than or equal to the result of paging is incorrect in Oracle Logical table names in sharding configuration can be case sensitive Close registry center gracefully Uses `RuntimeBeanReference` to prevent the creation of `InnerBean` on spring namespace Can't close connection by `ResultSet.getStatement().getConnection().close()` API adjust. Brand new groupId and artifactId for `Maven`, package name and spring namespace name. Simplify and enhance API configuration, inline expression fully configuration support Support `spring-boot-starter` of `ShardingSphere-JDBC` Dynamic configuration. `ZooKeeper` and `etcd` can be used as registry to dynamically modify data sources and sharding configurations Database orchestration. Fusing database access procedures to access databases and disable access to replica databases ConfigMap support. Predefined metadata can be obtained in the sharding and replica query strategy Tracking system support. You can view the invocation chain of `ShardingSphere-JDBC` through `sky-walking` and other `Opentracing` based APM systems Support SQL that does not contain table names, such as `SELECT 1` Support Hyphen properties for `sharding-jdbc-spring-boot-starter` Providing SQL overall execution events Prevent errors from keywords process when '`' exists in function + column name When SQL is rewritten, it does not determine whether alias is a keyword without the escape character, which results in SQL exception SQL if the varchar type is not closed due to the absence of matching single quotes, and the next varchar in SQL is the wrong SQL of Chinese characters, it will lead to higher use of CPU Can't only close statement Use Hint routing to shield case sensitivity Sharding-jdbc's spring-boot-starter does not support HikariDataSource Replica query, when the RoundRobin algorithm is configured from the database and MyBatis is used, it can only be routed to the same replica database Sharding of DDL statements to more than one table causes a connection leak Before Connection executes createStatement, it calls getMetaData first and then setAutoCommit can not take effective connection to the database that was created later The query cannot be completed without sharding rule In the Where condition of SQL, the REGEXP operator is compatible with non sharding columns Replica query using PreparedStatement does not invoke the setParameter method to cause errors Error in calling getGeneratedKeys using native self increment primary key Data can not be obtained after paging second pages route to a single node When Mybatis is used to call Connection.getMetaData (), the connection is not close correct Replica query load balancing strategy support configuration Replica query and sharding configuration independence Incorrect function of

causes null numeric type in DB to zero Tables that are included in the default data source but not in TableRule configuration are not properly executed In the Where condition of SQL, it is compatible with non sharding columns !=, !> and !< operator In the Where condition of SQL, NOT operators are compatible with non-sharding columns The test engine of quality assurance, each SQL can run 60 test cases of different dimensions Support the GROUP BY + custom function SQL Support ORDER BY xxx NULLS FIRST | LAST statement of Oracle Parsing ORDER BY with functions will resolve the following ASC and DESC to the name attribute of OrderItem JOIN parsing is incorrect using the full name association of the table Parsing table name error of DDL statement DROP TABLE IF EXISTS USER Support DDL type SQL Close sql.show configuration by default Invalid return of database native GeneratedKey ORDER BY and GROUP BY in sub-queries are not included in the analytic context Support <> operator Parameter of LIMIT can not be type of Long SQL rewriting error of GROUP BY + LIMIT Parsing ORDER BY + Aggregation Expression error The new SQL parsing module removes the dependence on Druid. We only need to parse the sharding context, and adopt a "semi understanding" concept for SQL to further improve performance and compatibility, and reduce code complexity The new SQL rewrite module adds an optimized rewrite module The new SQL merge module is rebuilt into 3 merging engines: streaming, memory and decorator Support Oracle, SQLServer and PostgreSQL Non functional sub-query support Configurable display sharding execute to SQL log Processing SQL use stream mode that contains only GroupBy Simplify the distributed self increasing sequence. Each table is supported by simplifying a multiple self increasing sequence to a single table supporting only a single distributed self increasing sequence, and no longer supporting workerID settings through environment variables Remove support for OR LIMIT routes to multiple query result sets. If there is only one result set that is not empty, the result of paging is incorrect Sharding and logical table configuration can be case insensitive When the memory mode handles GROUP BY statement, if there is paging information, it needs to be rewritten LIMIT 0 does not filter the result set according to paging restrictions Thread performance optimization Aggregated result set of stream sort StreamingOrderByReducerResultSet performance optimization When the result sets are merged, heap sort can be used to improve performance More meaningful hints for missing data source rules

in (?,?) in WHERE can't parser expression Batch execution of Update return inaccuracy The last character of automatic generation of Id is not 0 Generating KeyGenerator of workerId based on IP of host Get workerId's KeyGenerator based on HOSTNAME's digital suffix Routing to single database and single table to remove supplementary SQL statement fragments Some component exceptions in the close method of Connection, Statement, ResultSet and other interfaces cause the close method of another component to be not invoked Sharding and reuse PreparedStatement object cause route error Event transmission missing before batch operation execution Merge events sent by the batch operation Parallel execution of multiple limit queries leads to IndexOutOfBoundsException Automatic generation key implementation, including Implementation of distributed primary key algorithm Acquisition of a self increasing sequence of JDBC interfaces Sharding-jdbc-core coordination automatic generation sequence transformation The configuration of YAML and Spring supports the self increasing sequence The wasNull flag of AbstractMemoryResultSet is not reset in time PreparedStatement can call the correct underlying set method according to the parameter type when setting parameters When INSERT IGNORE INTO, if the data is duplicated, the value returned to -1 when ignored, and it should be returned to 0 In the same thread, DQL is executed first, then DML is executed, and DML operation is executed from the replica database In cases where connections are not available (such as network interruption), transactions should be interrupted rather than retry PreparedStatement's cache causes an array out of bound With the latest SQLServer jdbc driver compatibility problem, Product Name should be changed from SQLServer to Microsoft SQL Server Druid data source stat filter multi-thread error reporting should be added to database connection level synchronization Optimizes limit for only one target table, does not modify limit offset ShardingPreparedStatement cannot set parameters repeatedly When ShardingPreparedStatement performs batch tasks, it repeatedly analyzes SQL and leads to OOM According to the MySQL document, queries similar to limit 100 and -1 format are not supported The return value of com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractStatementAdapter.getUpdateCount does not conform to the JDBC specification Multi-thread executor parameter setting failure Open support for Statement.getGeneratedKeys can return the original database self increase primary key Query DQL statement event sending Use replica query with sharding hint leads to conflict Write operations in the same thread read from the primary database changed to the same thread and within the same connection New feature for replica query TableRule can import the dataSourceName attribute to specify the data source corresponding to the TableRule Release restrictions on other databases, support standard SQL, do not support personalized paging statements Associative table query uses OR query condition to resolve the result exceptions API adjust, remove ShardingDataSource, use factory instead ShardingRule and TableRule change to Builder pattern ShardingRule and TableRule change to Builder pattern Add the logical table name to the ShardingValue class Statement on the JDBC tier supports get/set MaxFieldSize, MaxRows and QueryTimeout Batch inserts supporting select union all Simplifying sharding only configuration, without configuring logical table and real table correspondence Simplifying the configuration that does not sharding, specifying the default data source, do not need configure TableRule No table name or table alias is added to the ORDER BY and GROUP BY derivation columns Performance enhancement for parsing condition context The soft transaction log cannot be deleted when routed to multiple tables Routing single sharding key by OFFSET of LIMIT error MemoryTransactionLogStorage retry times update concurrency problem The relationship between the real table and the logical table is not configured, and the real table is dynamically calculated by the sharding algorithm Soft transaction: the initial version of the best effort type Adjust the property configuration Refactor