<h2 dir="auto">Release 5.4.0</h2>
<p dir="auto">Hi community,</p>
<p dir="auto">After last release, we have received a lot of feedback from users and developers. Now we plan to release the ShardingSphere 5.4.0 version these days, which has made a lot of optimization and improvement for these feedback.</p>
<p dir="auto">Please refer to this release notes to confirm whether it contains the features you expect. If I missed anything, please remind me ASAP. If there are any suggestions, please feel free to tell us.</p>
<h2 dir="auto">Release Notes</h2>
<h3 dir="auto">API Change</h3>
<ol dir="auto">
<li>Change sharding broadcast tables to global broadcast tables</li>
<li>JDBC: Remove exclamation mark (!) for global rules</li>
<li>DistSQL: Simplify keywords ASSISTED_QUERY, LIKE_QUERY in Encrypt DistSQL</li>
<li>DistSQL: Optimize SQL_PARSER rule syntax</li>
<li>Adjust encryption yaml API to distinguish between encrypt, like, and assisted query configurations</li>
<li>Refactor read/write splitting api</li>
<li>Remove the global props proxy-instance-type configuration item</li>
<li>Remove plain column and queryWithCipherColumn configuration in encrypt feature</li>
<li>Proxy: Remove property proxy-backend-executor-suitable</li>
<li>Proxy: Remove property proxy-mysql-default-version</li>
<li>Sharding: Merge ShardingCacheRule into ShardingRule</li>
</ol>
<h3 dir="auto">Bug Fix</h3>
<ol dir="auto">
<li>Scaling: Fix pipeline job failure status persistence and usage</li>
<li>Scaling: Fix CDC DELETE event Record.beforeList is null</li>
<li>Scaling: Fix openGauss mppdb decoding plugin single quote issue</li>
<li>Support union statement single route SQL execution in Sharding scenario</li>
<li>Table data duplication when broadcast table left join sharding table</li>
<li>Fix case sensitive issue when loading schema meta data with H2 database</li>
<li>Fix "object not found" exception when config PostgreSQL/openGauss schema name as database name</li>
<li>Fix SQL rewrite exception when use PostgreSQL/openGauss encrypt like feature</li>
<li>Support null sharding condition pass to sharding algorithm to allow user control null value route</li>
<li>Fix wrong result of check_table_metadata_enabled when execute SHOW DIST VARIABLE</li>
<li>Support BETWEEN AND expression parsing in MySQL Projection</li>
<li>Fix wrong mask result when config same value of from-x and to-y with KEEP_FROM_X_TO_Y</li>
<li>Infra: Fix ClassNotFoundException may occur when missing pgjdbc</li>
<li>Proxy: Fix MySQL packet out of order when client sending pipelining requests</li>
</ol>
<h3 dir="auto">Enhancement</h3>
<ol dir="auto">
<li>Scaling: CDC supports exporting data by transaction</li>
<li>Scaling: CDC supports all openGauss data types</li>
<li>Scaling: CDC supports replication reconnection</li>
<li>Scaling: Remove DataConsistencyCalculateAlgorithmChooser</li>
<li>Scaling: Improve performance of integer unique key table inventory data splitting</li>
<li>Scaling: Optimize pipeline process configuration default value</li>
<li>Scaling: Optimize memory usage of table metadata</li>
<li>Scaling: Auto refresh table metadata for migration</li>
<li>Scaling: Compatible with openGauss existing replication slot reuse when database not existing</li>
<li>Scaling: Show data consistency check status result should be empty when it's not completed</li>
<li>Scaling: Enable concurrent CRC32 match on source and target</li>
<li>DistSQL: New syntax REGISTER STORAGE NODE, support for DB instance (MySQL)</li>
<li>DistSQL: Enhanced algorithm properties check</li>
<li>Metadata: Refactor metadata persistence structure</li>
<li>Metadata: Optimize the process of loading single table metadata</li>
<li>Support non-comparable sharding keys such as varbinary to support migration</li>
<li>DistSQL: Add support for transactionalReadQueryStrategy for read/write splitting rule</li>
<li>Support MySQL/PostgreSQL/openGauss system tables empty query</li>
<li>Sharding SQL enhancements</li>
<li>Refactor ShardingSphere Metdata structure</li>
<li>Add transaction privilege check</li>
<li>Support MySQL LOAD DATA and LOAD XML statement with single table or broadcast table</li>
<li>Improve the parsing support of high-priority SQL statements in the test results of the MySQL test program</li>
<li>Remove the TransactionTypeHolder and only create the current transaction manager</li>
<li>Adds table existence metadata check for INSERT, DELETE, UPDATE and SELECT statements</li>
<li>Oracle dialect parser now supports Chinese comma</li>
<li>Support query of encrypt column in projection subquery when use encrypt feature</li>
<li>Proxy: Frontend supports SSL/TLS</li>
<li>Driver: Implement batch execution for ShardingSphereStatement</li>
<li>Proxy: Support Flush message for PostgreSQL/openGauss Proxy</li>
<li>Proxy: Support data type bit, bool for PostgreSQL Proxy</li>
</ol>
<h3 dir="auto">New Feature</h3>
<ol dir="auto">
<li>Scaling: CDC supports MySQL and PostgreSQL</li>
<li>Scaling: CDC supports pure incremental mode</li>
<li>Proxy: Support for registering global data sources</li>
<li>DistSQL: New syntax to manage SQL_FEDERATION rule</li>
<li>Proxy: Support Unix Domain Socket</li>
</ol>
<h2 dir="auto">Bug Report</h2>
<p dir="auto"><strong>For English only</strong>, other languages will not accept.</p>
<p dir="auto">Before report a bug, make sure you have:</p>
<ul dir="auto">
<li>Searched open and closed <a href="https://github.com/sharding-sphere/sharding-sphere/issues">GitHub issues</a>.</li>
<li>Read documentation: <a href="http://shardingsphere.io/document/current/en/overview/" rel="nofollow">ShardingSphere Doc</a>.</li>
</ul>
<p dir="auto">Please pay attention on issues you submitted, because we maybe need more details.<br>
If no response <strong>more than 7 days</strong> and we cannot reproduce it on current information, we will <strong>close it</strong>.</p>
<p dir="auto">Please answer these questions before submitting your issue. Thanks!</p>
<h3 dir="auto">Which version of ShardingSphere did you use?</h3>
<p dir="auto">4.0.0-RC2-SNAPSHOT</p>
<h3 dir="auto">Which project did you use? Sharding-JDBC or Sharding-Proxy?</h3>
<p dir="auto">Sharding-JDBC</p>
<h3 dir="auto">Expected behavior</h3>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto">i have clone sourcecode,but in the module of <code class="notranslate">sharding-core-parse-mysql</code>, <code class="notranslate">MySQLParser</code> has import class of <code class="notranslate">org.apache.shardingsphere.core.parse.antlr.autogen.MySQLStatementParser</code> .Then i have search whole project, but i still can't find it. It's anything i do wrong? pls help me</p>
<h3 dir="auto">Reason analyze (If you can)</h3>
<h3 dir="auto">Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.</h3>
<h3 dir="auto">Example codes for reproduce this issue (such as a github link).</h3>