Supports Global Secondary Indexes for Multidimensional Sharding
Oct 25 2019
Target customers: database and distributed database users, sharding users, developers, Internet companies, and the finance, insurance, and new retail sectors. Features released: * Added the CREATE * GLOBAL INDEX, CREATE UNIQUE GLOBAL INDEX, and SHOW GLOBAL INDEX statements. * Added the dynamic adjustment of the time zone used for DRDS connection. * Added the logical RENAME TABLE statement for higher performance. * Added the CREATE SHADOW TABLE statement to create and associate with end-to-end stress testing shadow tables. * Added DERIVED subqueries to the UPDATE and DELETE statements. * Added the CBO optimizer and the join and aggregate pushdown/exchanging capabilities. * Added the SHOW METADATA LOCK statement to check metadata lock information. * Added the PLAN MANAGEMENT instructions. * Added rollback for the CREATE TABLE WITH GLOBAL INDEX and CREATE GLOBAL INDEX statements. * Added the check for global secondary indexes when the CREATE TABLE and DROP TABLE statements are executed. * Added the SHOW DDL statements for a specified job. * Added the non-equivalent condition derivation. * Added parallel queries for more operators. Features optimized: * Optimized auto vacuum of rules. * Optimized the information_schema query performance. * Optimized the BKA join algorithm for cost estimation. * Optimized DDL statements to update statistics and baseline model. * Optimized the logic of two-phase aggregate functions that are combined with GROUP BY column statements. * Optimized the vacuum policy for DRDS transaction logs to ease the pressure on backend storage. * Optimized calculation accurate to the millisecond in the ADDTIME, SUBTIME, DATEADD, DATESUB, and INTERVAL functions. * Optimized SQL audit logs to reduce network jitter. * Supported the creation of double literals in the optimizer. * Optimized pushed-down GROUP BY queries to prevent subqueries. * Optimized the internal implementation of aggregate functions for less memory usage and better performance. * Optimized the selection rate estimation for constant expressions in the CBO. * Optimized DDL parsing to enhance troubleshooting. * Optimized the MySQL-compatible method for processing abnormal time in time expressions. Errors fixed: * Fixed RENAME TABLE errors caused by special characters in table names after blocked instances are enabled. * Fixed ABORT errors from the plan management thread pool. * Fixed hash code errors related to HashAggCursor for different types. * Fixed errors related to BETWEEN and NOT BETWEEN. * Fixed memory statistic errors related to HashAggExec. * Fixed function compute errors caused when you write data into broadcast tables. * Fixed errors caused when you connect to management ports by using JDBC drivers of higher versions. * Fixed errors caused by database names in the UPDATE or DELETE statements. * Fixed errors caused by the same column names in the SET clauses of UPDATE or DELETE statements. * Fixed sharding errors caused by LEFT JOIN and IS NULL. * Fixed errors caused by nonsupport for the INSERT SELECT statement. * Fixed errors caused by special characters in global secondary index table names, shard keys, and DDL rollback table names. * Fixed parsing errors caused by nested hints or comments in SQL. * Fixed parsing errors caused by COLLATE following DEFAULT in table creation statements. * Fixed parsing errors caused by invalid date and time formats. * Fixed code errors caused when you use the CONVERT function to convert hexadecimal values to characters. * Fixed errors caused when you use the SUBSTRING, SUBSTRINGINDEX, and JSONEXTRACT functions to pass NULL parameters. * Fixed inconsistencies between CONNECTION_ID() and SHOW PROCESSLIST. * Fixed errors caused by the same subquery table name as an external table name. * Fixed type errors of the CASE WHEN function during subquery conversions. * Fixed conversion errors caused by pushdown of multiple subqueries in a project. * Fixed errors caused by the same column names in the JOIN-included statements. * Fixed errors of prompting that a table is not found when a column is not found. * Fixed stack overflow errors caused by using nonexistent columns in ORDER BY statements. * Fixed pushdown errors caused when CASE WHEN is included in the WHERE clause and AND is included in the WHEN expression. * Fixed errors caused by JOIN_PROJECT_TRANSPOSE when a project that cannot be pushed down exists in the left or right join table. * Fixed shard routing errors caused by the time zone when TIMESTAMP is used as the shard key.