All Products
Search
Document Center

PolarDB:PolarDB for MySQL 8.0.2 release notes

Last Updated:Mar 24, 2026

These are the release notes for PolarDB for MySQL 8.0.2.

2026

8.0.2.2.33.1 (February 2, 2026)

Bug fixes

Description

8.0.2.2.33 (January 28, 2026)

New features

Description

  • Added support for the native BSON data type. This type supports operations such as projection, updates, queries, and aggregations.

  • Added the ability to access large language models (LLMs). You can call LLMs directly by using standard SQL statements.

  • Added parallel insertion to the materialized view refresh process, significantly improving data refresh speed.

  • Added automatic data synchronization from PolarDB for MySQL to PolarSearch. This feature automates extract, transform, and load (ETL) to improve data synchronization and consolidation efficiency.

  • Added a configurable execution time window for SQL-layer TTL. This allows you to set a specific time window for TTL jobs to automatically purge expired data.

  • Added support for the columnar storage format to the high-compression engine (X-Engine), enabling low-cost storage and high-performance analytics.

  • Added support for COPY-mode DDL on hybrid partitioned tables that contain OSS partitions.

  • The high-compression engine (X-Engine) now supports the utf8_unicode_ci and utf8mb4_unicode_ci character sets and collations on index columns.

  • Added a node offloading capability for full materialized view refreshes. This allows you to distribute refresh tasks to specific nodes based on cost to isolate resource impact.

  • Added IMCI support for hybrid partitioned tables. You can use the ALTER TABLE COMMENT statement to manage columnar indexes on hybrid partitioned tables that combine InnoDB+X-Engine, InnoDB+ORC, or InnoDB+CSV to accelerate analytical queries on these tables.

  • Added support for the DATETIME data type to the TTL feature. In addition to TIMESTAMP, you can use columns of the DATETIME type to define automatic data expiration policies to accommodate a wider range of business scenarios.

  • Added support for Lua scripts in Orca (Redis protocol compatible) mode. The EVAL, EVALRO, SCRIPTS, and other related commands are now supported.

  • Introduced incremental building for vector indexes. This feature allows indexes to be updated in real time during data ingestion, significantly improving the ingestion and update efficiency for large volumes of vector data.

  • Added the Redundant GROUP BY/ORDER BY Elimination feature, which simplifies and eliminates GROUP BY and ORDER BY clauses, reduces redundant computations, and improves the execution efficiency of specific SQL queries.

Performance optimizations

Description

  • Improved physical replication efficiency by enabling parallel redo log parsing on read-only nodes to reduce primary-standby latency.

  • Optimized the restart time for IMCI. The Non-Clustered Index (NCI) module was re-engineered to support a checkpoint mechanism, which eliminates the full NCI build step during the loading process.

  • Optimized the metadata management mechanism of the high-compression engine (X-Engine). The system periodically releases the manifest log and old versions of the manifest checkpoint to prevent unbounded growth of metadata files and extra storage consumption.

  • Improved the performance of partitioned vector search in IMCI by reusing distances calculated during the vector index lookup phase in multi-way merging, which avoids redundant computations. Fixed an issue where predicate pushdown for IMCI could return incorrect results in ORDER BY LIMIT scenarios.

  • Optimized the performance of IMCI queries that use an IN-list with very long strings.

  • Optimized the query plan search process to accelerate join order selection for multiple tables and reduce the optimization time for complex SQL queries.

  • Introduced a vectorized hash table probing operation to the HashGroupby operator, improving group aggregation performance while slightly reducing memory consumption during computation.

  • Removed the limit on the number of partitioned tables.

  • Enabled adaptive group aggregation by default in IMCI, which automatically selects the most efficient aggregation algorithm based on data distribution and query characteristics, improving the performance of analytical queries that contain GROUP BY clauses.

  • Improved the performance of the Hash Join operator in IMCI, enhancing performance for all applicable queries and providing significant improvements for Semi-Join scenarios.

  • Improved the performance of the distributed memory pool by adding new configuration parameters and monitoring metrics.

Bug fixes

Description

  • Fixed an issue that could cause a cluster to crash when a filter condition containing a trigger field was pushed down to a derived table in certain scenarios.

  • Fixed an issue where a variable assignment function in a query prevented predicate pushdown optimization.

  • Fixed an issue that could cause a cluster to crash when using a GSI in specific LIMIT OFFSET pushdown optimization scenarios.

  • Fixed a stability issue that could be triggered by improper internal metadata handling during the upgrade of certain partitioned tables.

  • Fixed an issue where executing DML operations on a hybrid partitioned table that contains OSS partitions could block concurrent reads and writes.

  • Fixed an issue where the high-performance Hash Join operator in IMCI could result in missing rows in the result set when processing a RIGHT JOIN with data spilled to disk.

  • Fixed a rare issue where replication could stall in IMCI when DDL operations were frequently executed, leading to data latency on nodes.

  • Fixed an issue where statistics might not be collected as expected for string columns with wide character sets, such as utf8, even if a short length was defined.

  • Fixed an issue in a multi-master cluster (Limitless) where executing DDL operations related to a GSI could cause the cluster to crash due to conflicts with background threads.

  • Fixed an issue where table metadata might not be updated promptly in Orca (Redis protocol compatible) mode.

  • Fixed an issue where an SQL parsing error could occur when using dbms_outln.add_optimizer_outline_sharding to create a statement outline for a sharded table.

  • Fixed an issue where the PolarDB Compute Units (PCUs) of a low-specification, no-load IMCI serverless node could repeatedly scale up and down.

  • Fixed an out-of-memory (OOM) issue with the IMCI serverless feature, which occurred because the cache quota was not promptly released after a rapid scale-up and scale-down cycle.

  • Fixed an issue where incorrect cost estimation for a large number of constant tables in Elastic Parallel Query could cause a cluster to crash.

  • Fixed an issue that could cause a cluster to crash when a time data type was used to define the partition range of an interval-partitioned table.

  • Fixed an issue where IMCI could not execute SQL statements with query conditions that contained system variables.

  • Fixed an issue where statistics collection could fail on tables with frequent updates and deletions. This fix also slightly improves sampling efficiency.

  • Fixed an issue where executing DDL operations during incremental log application could cause continuous memory growth.

  • Fixed an issue where an Index Merge plan could not open a table when a query did not need to access the OSS partitions of a hybrid partitioned table.

  • Fixed a stability issue that could cause a cluster to crash when the buffer pool was much smaller than the intermediate result set required by a query.

2025

8.0.2.2.32.1 (December 25, 2025)

Bug fixes

Description

Fixed an issue in Orca (Redis protocol compatible) where the restore command would lose the TTL when restoring expired hash fields.

8.0.2.2.32 (December 22, 2025)

New features

Description

Performance optimizations

Description

  • Optimized the Page Apply efficiency in physical replication. This change reduces latency fluctuations by minimizing I/O overhead when read-only nodes access cold data, thereby enhancing cluster stability.

  • Optimized the predicate deduction logic in the query optimizer to better identify static conditions on partition keys. This enables more aggressive partition pruning, filtering out more irrelevant partitions and improving query performance.

Bug fixes

Description

  • Fixed an issue where a Duplicate entry error could occur when performing a DDL operation, such as RENAME TABLE, on a table with a view after a high-availability (HA) switchover.

  • Fixed an issue where table-level recovery failed to restore a table if the backup contained columns dropped with instant drop column.

  • Fixed an issue in a multi-master cluster where the task to delete a read-write (RW) node was interrupted after an endpoint switchover.

  • Fixed an issue where adding or dropping a partition on an X-Engine partitioned table required a table-level MDL lock.

  • Fixed an issue in Orca (Redis protocol compatible) where the dbsize statistic could become inaccurate if a key was written immediately after being deleted.

  • Fixed an issue where dynamically disabling the loose_thread_pool_enabled parameter could cause connections to hang after a DDL operation completed.

  • Fixed an issue where the ETL feature in columnar index (IMCI) did not support JSON TABLE. Also improved the error message for insufficient memory during IMCI queries.

  • Fixed an issue that could prevent a query from running on a columnar index (IMCI) if the SELECT statement contained both an IN-List and an aggregate function with DISTINCT.

  • Fixed an issue in columnar index (IMCI) where multiplication of DECIMAL data with more than 16 decimal places could produce inaccurate results.

  • Fixed an issue where an abnormal index status caused the serverless feature of columnar index (IMCI) to continuously trigger scale-up operations.

  • Fixed an issue where a standby node could hang during the recovery phase in point-in-time recovery (PITR) and table-level recovery scenarios.

  • Fixed an issue where existing binlog dump connections could hang and affect binlog cleanup after a read-only node was promoted to a primary node.

  • Fixed an issue where the delay_second value for a standby node was inaccurate when running the SHOW POLAR STANDBYS command on a read-write (RW) node.

  • Fixed an issue that could cause a process to crash when the column pruning feature in the query optimizer incorrectly removed a subquery that was referenced by multiple projected columns.

  • Fixed an issue where the query optimizer failed to generate an optimal execution plan due to inaccurate statistics for integer columns that are not of the BIGINT type.

  • Fixed an issue where querying JSON data of a specific length could return a The JSON binary value contains invalid data error on a read-only node when the innodb_blob_slave_read_consistent parameter was enabled.

  • Fixed an issue that could prevent queries containing a recursive common table expression (CTE) from running on a columnar index (IMCI).

  • Fixed an issue where a DDL operation could report an SDI modification failure after a newly registered read-only node was promoted to a primary node.

8.0.2.2.31.2 (November 19, 2025)

New features

Description

Introduced a dynamic switch to enable cursor position adjustment on read-only (RO) nodes.

Bug fixes

Description

Fixed a potential cluster crash caused by uninitialized extents during a failover with high-concurrency writes.

8.0.2.2.31.1 (October 15, 2025)

Bug fixes

Description

Fixed an issue where queries using In-Memory Column Index (IMCI) with the Hybrid Plan for accelerating wide table queries feature unexpectedly fell back to row store execution due to a query optimization that converted the AVG function to SUM/COUNT.

8.0.2.2.31 (September 24, 2025)

New features

Description

  • You can now configure whether to display the display width attribute for integer types, such as BIGINT, INT, MEDIUMINT, SMALLINT, and TINYINT, when the ZEROFILL attribute is not defined.

  • Added concurrency management and status query features for the background creation of vector indexes in IMCI. This enables effective resource control and real-time progress tracking for large-scale vector index creation.

  • Added the CXL memory extension feature, which lets you dynamically increase the buffer pool capacity for a cluster through a Compute Express Link (CXL) memory pool to improve large-scale data processing performance and system throughput.

  • Added two new vector index types to IMCI, HNSW and HNSWPQ, based on the FAISS library. These index types support higher-performance, lower-memory approximate nearest neighbor (ANN) search for high-dimensional vectors.

  • Added an inline filter mode to vector retrieval in IMCI. This mode combines scalar filtering and vector retrieval into a single operator.

  • Added an Oracle-compatible SYNONYM feature, which lets you create synonyms for tables or views and then use the synonyms to access them directly.

  • Expanded the subpartitioning feature. It now supports RANGE COLUMNS, LIST COLUMNS, and LIST COLUMNS+DEFAULT partition types, along with various subpartition key fields such as DATE, DATETIME, and CHAR. As a result, partitioned tables now support any combination of all primary and secondary partition types, and related queries benefit from partition pruning.

  • Added support for full materialized views that are refreshed with IMCI acceleration. This provides pre-computed result sets for complex queries, significantly reducing response times for frequent aggregation or join queries.

  • Added the embedding expression, which converts input text into vectors in real time. You can also use materialized virtual columns to automatically convert text to vectors and store them upon data write.

  • Added alias support for the INSERT ... VALUES/SET ... ON DUPLICATE KEY UPDATE syntax. This lets you use an alias in the UPDATE clause to reference new data from the INSERT part, making the SQL logic clearer and more concise.

  • Expanded the automatic cold data archiving feature. It now supports archiving cold data partitions from a partitioned table to the X-Engine storage engine. After archiving, the table becomes a hybrid partitioned table of InnoDB and X-Engine, supporting unified queries across partitions of different storage engines.

  • Added a forced forwarding feature for sessions with an isolation level other than RU (Read Uncommitted) on non-IMCI nodes. By enabling the imci_ignore_unsupported_isolation_level parameter, requests from these sessions can be forwarded to column store nodes for execution to leverage column store acceleration.

  • Added the json_arrayagg expression. This expression aggregates multi-row results into a JSON array in IMCI queries, enhancing JSON data processing.

  • Enabled Resource Control for the Orca (Redis-compatible) feature. This lets you manage the overall CPU resource utilization of the Orca system through a parameter, which defaults to 100%.

  • Added support for PUBSUB commands to the Orca (Redis-compatible) feature, including PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBSUB CHANNELS, PUBSUB NUMPAT, and PUBSUB NUMSUB. This expands the message publishing and subscription capabilities.

  • The SQL Trace feature now supports sampling and recording actual SQL statements into shared SQL. This helps database administrators accurately troubleshoot and optimize long-running or high-frequency slow queries.

  • Added the rds_max_tmp_disk_space parameter to control the total local disk space usage of temporary tables generated by large queries, to prevent the disk from filling up.

  • Added support for dbms_oss.delete_table_file to clean up files corresponding to a partitioned table on OSS after the table schema is deleted.

  • The Data Cleanup (TTL) feature does not support COPY DDL syntax. Currently, only INPLACE DDL is supported.

Performance optimizations

Description

  • Optimized the cost estimation model for the HTAP automatic request distribution. It can now perform calculations based on sequential execution overhead instead of relying on the cost after parallel optimization. This enables better execution plan choices in specific scenarios.

  • Added a feature to measure the execution time of internal operations of row store and column store execution operators. This provides accurate data for coefficient fitting and automatic optimization of the row-column cost model.

  • Added a feature to Statement Outline to record the original SQL statement. This supports regenerating an Outline based on the original SQL in the current environment, improving the flexibility of execution plan management and pinning.

  • Refactored the command processing structure and optimized the lock path of Orca (Redis-compatible), improving its overall read and write performance by about 10%.

  • Optimized the query performance of partitioned tables. Fixed an issue where new partitioned table key constant conditions generated during the query optimization phase (such as MEP) could not trigger secondary partition pruning. Also enabled partition pruning for the inner tables of nested outer join.

  • Optimized the processing logic for union queries with many query blocks. This resolves the issue of the find_cloned_select_lex function consuming excessive time and causing a single CPU core to reach 100% utilization.

  • Optimized the metadata loading process when a column store node restarts in massive data scenarios. This prevents out-of-memory (OOM) issues caused by an overly long metadata list.

  • Unified the naming convention for local files related to IMCI. The naming is no longer dependent on the node role, which simplifies file management during high-availability switchovers.

  • Optimized the task status retrieval logic for the background elastic thread pool of a read-only column store node, reducing its CPU resource consumption.

Bug fixes

Description

  • Fixed a potential cluster crash in parallel queries under specific condition pushdown scenarios.

  • Fixed a potential data inconsistency issue on read-only nodes when reading large JSON fields or frequently partially updated JSON fields in some scenarios.

  • Fixed an issue where the Native Columnar Index (NCI) of IMCI failed to automatically trigger expansion when an insertion into the lru cache failed.

  • Fixed abnormal storage space growth caused by the failure to promptly clean up vector index data files.

  • Fixed a memory error during the row store execution phase of aggregate function queries, caused by an abnormal initialization of the dec_buffs member in the Item_sum_sum::resolve_type function.

  • Fixed issues in IMCI where vector retrieval queries could incorrectly fall back to row store execution, and where the query optimizer made poor cost-based choices for scalar filter queries.

  • Fixed an issue where the dbms_oss.list_table_file command could fail to display the OSS file list in some cases.

  • Fixed an out-of-memory (OOM) issue on read/write (RW) nodes when performing an ONLINE DDL on a table with an IMCI, caused by the default batch writing.

  • Fixed a potential cluster crash when performing a DDL operation on an ORC hybrid partitioned table with an IMCI if the table name contained special characters.

  • Fixed an issue where a read-only node might fail to query some records during B-tree index rebalancing under heavy write load.

  • Fixed a potential cluster anomaly when adding an IMCI to a table that has no primary key but has a UNIQUE KEY.

  • Fixed a permission verification issue when archiving partitioned table data to an OSS external table using dbms_dlm.archive_partition2table. The required permissions have been reduced. You now need only INSERT, CREATE, DROP, and ALTER permissions.

  • Fixed a cluster crash in Orca (Redis-compatible) caused by the LPOS command when the MAXLEN option value exceeded the list length.

  • Fixed a potential memory leak when reading data from a cold-archived table in ORC format.

  • Fixed an issue where some queries failed with an OOM Error due to inaccurate memory usage calculation.

  • Fixed a performance regression issue where query performance could degrade under heavy load in the Multi-master Cluster (Limitless) Edition.

  • Fixed an issue where constant condition propagation in query optimization failed due to inconsistent character set lengths.

  • Fixed an issue where gaps could appear in gtid_executed after you executed a CREATE ... IF NOT EXISTS statement on an aggregation node in a Multi-master Cluster (Limitless) Edition.

  • Fixed a potential cluster crash during a high-availability switchover between primary and secondary nodes in a Multi-master Cluster (Limitless) Edition.

  • Fixed an issue where an IMCI query could return incorrect results if it contained both DISTINCT and AVG aggregate functions.

  • Fixed a cluster crash caused by the reuse of an uncleared result_field of Item_func_conv_charset after a SQL statement ended.

  • Fixed a potential RW node crash in a Multi-master Cluster (Limitless) Edition when performing a DML operation on an IMCI table after a local read-only (RO) node was hot-switched to a read/write (RW) node.

  • Fixed an issue caused by a dangling pointer access when releasing an index during an INSTANT DDL execution on an IMCI.

  • Fixed a potential cluster crash in parallel queries with multi-level nested derived tables.

  • Fixed an issue where Data Cleanup (TTL) information was lost during CREATE PARTITION TABLE because the main Data Dictionary (DD) information was not updated.

  • Fixed an issue where the adaptive execution plan switching feature (adaptive ordering) optimization could not correctly adapt to LIMIT OFFSET statements.

  • Fixed a potential sorting error when using ORDER BY DISTANCE for vector similarity sorting with distance values close to 0.

  • Fixed an issue in Elastic Parallel Query where multi-node MPP execution could cause incorrect results or a cluster crash when there were multi-level nested shared subqueries.

  • Fixed a potential cluster crash caused by column pruning optimization when a query contained a recursive Common Table Expression (CTE).

  • Fixed a potential illegal memory access issue in the Query Cache under multi-threaded concurrent access.

  • Fixed a potential cluster crash in Orca (Redis-compatible) when setting an expiration time for hash (Hash) fields that contained duplicates.

  • Fixed an issue in Multi-master Cluster (Limitless) Edition where a cluster might fail to start or data could not be persisted after a high-availability switchover.

  • Fixed an issue where duplicate data could be retrieved when accessing a spatial index on a read-only node.

  • Fixed a potential inconsistency between row store and column store execution results for the IMCI json_valid function when the first parameter is a varchar.

  • Fixed an issue where duplicate data appeared in the result set after an EXISTS subquery was converted to a SEMI JOIN (with the duplicate weedout policy) when parallel query was enabled.

  • Fixed an issue where the column index of a cold-archived table on a read-only column store node could be missing in an IMCI shared storage architecture.

  • Fixed an occasional cluster crash that could occur after enabling adaptive aggregation in queries from older versions.

  • Removed unnecessary checks for compressed row status in the code to avoid triggering unexpected errors in special cases.

  • Fixed an issue where replication lag could occur on read-only column store nodes in scenarios with frequent DDL operations.

8.0.2.2.30.2 (August 20, 2025)

Bug fixes

Description

  • Fixed an issue in the In-Memory Column Index (IMCI) feature where a node could crash when deltastore executes a swap task, due to the pax page length overflowing uint32 or a null pointer being encountered.

  • Fixed an issue where an improper initialization order of global variables unexpectedly disabled one-write, multiple-read Follower file operations for In-Memory Column Index (IMCI).

  • Fixed a rare issue where the background purge process could corrupt a secondary index during a transaction rollback.

8.0.2.2.30.1 (July 3, 2025)

Performance optimizations

Description

Bug fixes

Description

8.0.2.2.30 (July 1, 2025)

New features

Description

  • Introduced column encryption, which works with TDE to encrypt and store specified columns. When you access the data, you can use a decryption function to retrieve the raw data.

  • Queries with multi-value conditions (IN-LIST) or logical disjunctions (OR) are now rewritten into a UNION ALL operation of multiple independent subqueries. This allows for more efficient generation of index access plans.

  • The DELETE statement now supports Index Hints, which allow you to specify a particular index by using the USE INDEX or IGNORE INDEX syntax. You can enable this feature by using the delete_enable_index_hint parameter.

  • lateral derived tables now support parallel execution. In parallel query scenarios, these tables can be pushed down to workers for execution.

  • In-Memory Column Index (IMCI) now supports subqueries that use Rollup and include aggregate functions in the projection columns.

  • IMCI now includes vector index support for approximate nearest neighbor (ANN) search.

Performance optimizations

Description

  • Optimized the asynchronous operation and throttling for garbage file cleanup after a read-only IMCI node is deleted.

  • Removed the restriction that at least one InnoDB partition must be retained when you use ALTER TABLE for cold data archiving. This allows all partitions to be archived. You can now use REORGANIZE PARTITION to restore OSS partitions of a fully archived partitioned table back to InnoDB partitions.

  • Optimized hash table creation for HASH JOIN in IMCI. This significantly improves HASH JOIN performance in IMCI.

Bug fixes

Description

  • Fixed an issue where parallel execution could cause a crash if a constant table was an outer table in a LEFT JOIN with multiple inner tables.

  • Fixed an issue where the SCAN command of Orca might not return a result and could remain in the searching state.

  • Fixed an issue where Sharding Outline did not correctly support table aliases, ORDER BY, and LIMIT BY.

  • Fixed a crash that occurred when a default value referenced a table because the base table and dependent table were not pushed down to the same shard for execution.

  • Fixed an issue where adding an index to a table with a SET type required a table lock.

  • Fixed a cluster crash that occurred when updating a NULL value to an empty string in a table that used the REDUNDANT row format and contained an instant add column with a DATETIME precision of seconds.

  • Fixed an issue in IMCI where the DISTANCE expression returned an incorrect value when calculating DOT similarity.

  • Fixed an error that occurred when a cold-archived ORC format table contained BIT, ENUM, or SET types.

  • Fixed an issue where statistics for adaptive execution were biased in plans with INDEX MERGE and Index Condition Pushdown (ICP).

  • Fixed an issue where reading JSON data on a read-only (RO) node could return an INVALID JSON error in some scenarios.

  • Fixed a potential crash that could occur when an ORDER BY clause in a materialized table was merged into an outer query block.

  • Fixed an issue where disabling function pushdown caused incorrect results for Elastic Parallel Query.

  • Fixed an issue in Data Lifecycle Management (DLM) where an archiving exception could leave behind temporary tables. This fix also adds error logs for the scenario. Also fixed an ASSERT crash caused by an X-lock conflict during the second lock upgrade in the DLM partition metadata lock (MDL) archiving process.

  • Fixed an issue where the table_name cache in the INFORMATION_SCHEMA table was not updated for an IMCI after a partitioned table was renamed by using a RENAME DDL statement.

  • Fixed an issue where string types in the prepare execute implementation might be affected by the collation information of character_set_client.

  • Fixed an assertion issue triggered by an update task based on old columnstore index information after an INSTANT DDL was committed.

  • Fixed a potential cluster crash in high-concurrency scenarios when both ePQ and performance_schema were enabled.

  • Fixed an issue where query cost estimation in MySQL Community Edition did not account for the LIMIT keyword.

  • Fixed an occasional inaccurate timing issue when using imci_analyze_query to profile In-Memory Column Index (IMCI) queries.

  • Fixed an issue where unsupported user-defined functions were adaptively routed to IMCI, which caused query errors.

  • Fixed a crash in the background statistics scraping thread for IMCI in the hybrid optimizer. This issue could occur when the query involved a virtual column.

  • Fixed a potential issue that occurred when restoring a partitioned table with INSTANT ADD COLUMN and 10 or more partitions using the database and table restoration feature.

  • Fixed an out-of-memory error that could occur in IMCI when performing a GROUP BY operation on variable-length strings over large datasets.

  • Fixed an issue where executing show binlog events on a read-only node caused a "file does not exist" error.

  • Fixed an issue in IMCI where queries occasionally could not use a Hybrid Plan after global consistency (high-performance mode) was enabled.

  • Fixed a memory leak caused by the elastic scale-in of the internal thread pool in IMCI. This prevents memory leaks when the PolarDB Capacity Unit (PCU) of a serverless cluster is adjusted.

  • Fixed an issue where a DROP INDEX operation could block the loading of an In-Memory Column Index (IMCI) while it was loading a Non-Clustered Index (NCI).

  • Fixed an issue where a crash occurred before the DDL log for a partition swap was written. As a result, the crash recovery process skipped applying the DDL log, and the cluster became inconsistent.

  • Fixed an issue in parallel scenarios for partitioned tables where the degree of parallelism for a parallel plan involving PartitionWise Repartition exceeded max_parallel_degree.

8.0.2.2.29.2 (June 6, 2025)

Bug fixes

Description

  • Fixed a potential crash in the Index Join of an IMCI Hybrid Plan when executing an Anti Semi Join with a Post Filter.

  • Fixed a potential system crash caused by column data inconsistency when updating or deleting data with a dynamic mask during online DDL operations.

  • Fixed a potential crash in the Data Cleanup (TTL) feature caused by a transaction rollback due to a deadlock.

  • Fixed a potential crash in the Data Cleanup (TTL) feature caused by an unreleased transaction (trx) object during the shutdown of a TTL thread.

  • Fixed a potential OOM (Out of Memory) issue in IMCI during sort compaction.

8.0.2.2.29.1 (May 14, 2025)

Bug fixes

Description

Fixed a memory leak in the internal thread pool of IMCI, triggered by either elastic scale-in or dynamic adjustments to the PCU of a serverless cluster.

8.0.2.2.29 (May 8, 2025)

New features

Description

  • Added a memory reclamation feature for the parse buffer on read-only nodes in serverless clusters, reducing memory consumption by reclaiming unused memory allocated for parsing log blocks.

  • Now supports the frame clause in window functions. This release supports ROWS frames and the default RANGE frame.

  • You can now modify auto-increment column values in X-Engine by using online DDL.

  • Added IMCI pruner statistics. You can query the INFORMATION_SCHEMA.IMCI_SQL_PROFILING view to get the data block pruning status of the TableScan operator.

  • You can now use hints to influence the execution plan of statements within a view definition.

  • You can now query the INFORMATION_SCHEMA.POLAR_INDEX_STATISTICS view to retrieve index hit statistics for each table.

  • Added the FORCE STORAGE OSS option to synchronously delete data from OSS during the delete cold data operation.

  • The new Range-prefix Skip Scan mechanism expands the use cases for Skip Scan and improves the performance of complex queries.

  • The Hybrid Plan feature for IMCI now supports tables without an explicit primary key.

  • Added the adaptive_digest_length_multiplier parameter for dynamically adjusting the pre-allocated memory size for the Digest based on SQL text length.

  • Added the oss_orc_read_buffer_size parameter, which allows you to dynamically configure the read buffer size of the ORCReader.

  • Added the Innodb_ttl_finished_job_expired_days parameter to control the cleanup of expired data in the ttl_job_history table.

  • The Index Join of the Hybrid Plan in In-Memory Column Index (IMCI) adds support for Semi Join and Anti Semi Join modes.

Performance optimizations

Description

  • Improved query performance for IMCI when using IN lists.

  • Optimized database performance under high concurrency when using the max_execution_time feature.

  • Orca (Redis-compatible) now supports setting TTLs for HASH data types at the field level.

  • Changed the scope of high-performance global consistency variables from the system level to the connection level, making them configurable in the database proxy.

  • Optimized the Hash Groupby implementation in IMCI. The system can now adaptively select a partitioning strategy and algorithm based on data distribution to improve query performance.

Bug fixes

Description

  • Fixed a bug that could cause the ALTER TABLE command to fail and trigger a database restart.

  • Fixed long lock waits in the snapshot feature that caused occasional monitoring freezes on column store nodes.

  • Fixed a deadlock caused by concurrent threads during partition data archiving in a partitioned table.

  • Fixed a bug where a parallel query might return incorrect results if the query included an IS NULL condition.

  • Fixed a bug where the adaptive selection of ordered indexes feature could cause a cluster to crash in certain query scenarios.

  • Fixed occasional memory block buildup on an ImciFollower in a multi-node shared architecture for IMCI.

  • Fixed a crash that could occur when a DROP PARTITION statement was executed while another SQL statement held a table-level metadata lock (MDL) but not a partition-level MDL.

  • Fixed a bug in X-Engine where the Index_merge path failed to retrieve Instant_ddl metadata, causing query anomalies.

  • Fixed a bug where the Mixoutput of the hybrid materialization in IMCI did not perform time zone conversion when reading timestamp data.

  • Fixed a bug where a column store node occasionally accessed stale cached data after a DDL operation.

  • Fixed an out-of-bounds memory access bug when performing an instant modify column operation on a table with a large number of columns.

  • Fixed a bug where dynamically modifying the thread_pool_size parameter could cause the database to crash when the asynchronous execution feature was enabled.

  • Fixed an occasional out-of-bounds read/write bug with ROW LOG when performing an ONLINE DDL on a table with a virtual column.

  • Fixed a conversion bug between string and vector types, allowing the use of various whitespace characters.

  • Fixed a bug where an IMCI serverless cluster could not scale in when the primary node used a large specification.

  • Fixed a bug where IMCI could not control the sorting of query results by using the imci_implicit_orderby_rollup switch when processing queries with ROLLUP.

  • Fixed a crash that could occur if the optimizer flattened a derived table that was referenced by a GROUP BY column in a SQL query containing a GROUP BY + WITH ROLLUP clause.

  • Fixed a bug that prevented a new read/write node from starting when added to a multi-master cluster that contained a global read-only node.

  • Fixed a potential crash on a secondary node of a multi-master cluster when switching the database or object access point.

  • Fixed a bug where the innodb_log_buffer_size parameter could not be dynamically modified after the innodb_polar_log_rdma_transfer parameter was dynamically disabled.

  • Fixed a bug where a query could not be executed on IMCI if a correlated subquery in the SQL contained LIMIT 1.

  • Fixed an issue that could cause a secondary index on a virtual column to become corrupted.

8.0.2.2.28 (March 12, 2025)

New features

Description

  • Added an automatic collection feature for column statistics to keep statistics up to date.

  • Added a cost threshold parameter to dynamically control adaptive request distribution among row store and column store nodes, separate from the cost distribution threshold.

  • Added support for range expressions in RANGE partitioned tables. The new cast_for_range() function converts double data to the int type, enabling support for partition key fields of the double type.

  • PolarDB for MySQL now supports asynchronous execution, including asynchronous processing of lock waits and asynchronous log flushing waits.

  • Orca now provides comprehensive connection monitoring metrics, including total connections, current active connections, and current requests.

  • Added support for calling Outline from explain analyze statements, which aligns its functionality with the explain statement and improves query optimization capabilities.

  • Added support for the following GIS-related functions: ST_HAUSDORFFDISTANCE, ST_FRECHETDISTANCE, ST_LineInterpolatePoints, ST_LineInterpolatePoint, ST_PointAtDistance, ST_Union, ST_Difference, ST_Buffer, ST_Collect, ST_Symdifference, and ST_Intersection.

  • Added a query priority scheduling feature for IMCI that lets you assign priorities to column store queries to optimize their execution efficiency.

  • The data cleanup (TTL) feature is now compatible with other products such as TiDB, and supports the TTL = 'b' + INTERVAL 3 MONTH; syntax.

Performance optimizations

Description

  • Optimized the partition cost model. The model now incorporates a partition count factor into the cost estimation for equality and IN queries on indexes without a partition key, improving its accuracy.

  • Optimized the algorithm selection logic to use efficient HASH JOIN for executing some correlated subqueries.

  • Optimized the performance of IMCI when handling complex IN and EXISTS subqueries and improved the optimizer's logic for handling subqueries, thereby significantly improving execution performance.

  • Multi-master Cluster (Limitless) now supports Partition Redo and asynchronous Redo mechanisms, increasing system throughput in game scenarios to meet high concurrency demands.

  • Optimized the logic in Orca for processing the Redis SCAN command with the COUNT option to ensure the accuracy and consistency of the number of returned elements.

  • Enhanced support for SELECT DISTINCT ... statements in IMCI to handle non-full-groupby cases, improving compatibility and query flexibility.

  • Optimized the logic for multi-level nested IN subqueries, allowing the columnstore index to accelerate them.

Bug fixes

Description

  • Fixed a potential illegal memory access issue when executing an INSERT ON DUPLICATE KEY UPDATE statement on an interval range partition.

  • Fixed an incompatibility in the database and table restoration feature caused by the loose_innodb_initialize_in_space_extend parameter for file space extension, which could not be set to 0.

  • Fixed an issue in the Hybrid Plan for IMCI by adding support for Semi Join and Anti Semi Join modes to the Index Join mechanism. This expands query optimization and improves execution efficiency.

  • Fixed a potential system crash when using the TempTable engine with a common table expression (CTE) in multiple reference scenarios.

  • Fixed a potential query exception when all data in a stored data block was identical, improving system stability and query reliability.

  • Fixed an issue where read-only nodes failed to sync the gtid_purged variable, which caused queries to return empty values.

  • Fixed an issue where a database and table restoration task could be interrupted if the source table had a columnstore index.

  • Fixed a potential crash when disabling Hybrid Plan in IMCI while it is running.

  • Fixed a potential socket leak in the Orca network framework when a connection timed out or was actively closed.

  • Fixed a rare issue that prevented a statement from exiting normally when the cluster's non-blocking data definition language (DDL) feature was enabled and the corresponding DDL connection terminated.

  • Optimized the DLM partition archiving process by changing the requested table-level metadata lock (MDL) to a partition-level MDL in the final stage. This reduces lock granularity and improves system concurrency and partition archiving efficiency.

  • Fixed inaccurate memory preemption under mixed workloads.

  • Fixed an issue where an X-Engine partition required a table rebuild during an optimize operation. The process is now optimized, which significantly improves efficiency and system performance.

  • Fixed a parallel query cluster crash caused by a sort operation after a materialized view was merged.

  • Fixed a potential crash when the materialized view pruning feature was used with the WITH ROLLUP feature.

  • Fixed a cluster crash that occurred when creating a temporary table with a CREATE TABLE AS SELECT statement.

  • Fixed a potential cluster crash when accessing statistics tables in a Multi-master Cluster (Limitless).

  • Fixed an issue where an incorrect index was selected for constant range filtering (const between field1 and field2) in IMCI queries.

  • Fixed an issue in Multi-master Cluster (Limitless) scenarios where the online data definition language (DDL) process for the columnstore index was not adapted to the logical log sequence number (LLSN) logic. This caused columnstore redo logs to be skipped during replay.

  • Fixed a tablespace leak issue in X-Engine after a data definition language (DDL) change.

  • Fixed a crash that occurred when executing the explain for connection statement during a query on a partitioned table with an IMCI.

  • Fixed an issue where columnstore index data could not be recovered due to a metadata lock (MDL) acquisition failure during the metadata recovery phase.

  • Fixed an issue where queries on IMCI I_S (IMCI-related views in the Information_Schema database) with a name filter condition returned incomplete results because a case-sensitive string comparison function was not used.

  • Fixed an issue where a read-only node of X-Engine unexpectedly cleared data block metadata upon restart.

  • Fixed a potential anomaly in the metadata lock (MDL) system when the number of connections exceeded 65,536.

8.0.2.2.27.2 (January 23, 2025)

Bug fixes

Description

  • Fixed an issue where restarting a column store node cluster during a large transaction could cause data redundancy in the column index during crash recovery.

  • Fixed a syntax issue with the TTL feature by making TTL a non-reserved keyword, ensuring compatibility with the community version.

8.0.2.2.27.1 (January 14, 2025)

New features

Description

Bug fixes

Description

Resolved occasional data read failures when reading large JSON or GIS objects through IMCI.

2024

8.0.2.2.27 (December 28, 2024)

New features

Description

  • Added support for adding read-only column store nodes to a secondary cluster in a Global Database Network.

  • Added support for REORGANIZE PARTITION and LIST DEFAULT HASH to merge a LIST partition into a HASH partition, and split a VALUE into a new LIST partition.

    Added support for using the prefix of a HASH partition as the entire HASH partition name.

  • Added support for large wide tables by extending the maximum number of columns for tables in X-Engine to 10,000.

  • Added the DISTANCE expression for calculating cosine similarity, dot product similarity, and Euclidean distance.

  • Added support for using IMCI to accelerate vector retrieval queries.

  • Added support for the table value constructor syntax. You can now use the VALUES ROW syntax in DML statements.

  • Added support for using a stored procedure to add columnstore indexes to all tables in a database in batches.

  • Added support for sharded tables in Outline. A single Outline can now match statements with the same template across multiple sharded tables.

  • Added support for collecting and using statistics for non-indexed columns, including a unified management method for extended statistics.

  • Added support for dynamically adjusting Order Index selection results at runtime based on actual conditions.

Performance optimizations

Description

Bug fixes

Description

  • Fixed an issue where DDL operations on a table with a view could report an error or not take effect after a high-availability (HA) switchover.

  • Fixed an issue where the parallel query parameter pq_enable_xengine_mpp did not take effect when set to OFF.

  • Fixed an issue where the auto-increment value of a partitioned table occasionally rolled back, causing a duplicate key error on INSERT.

  • Fixed the session-level binlog_rows_query_log_events permission to support the execution of SQL backups and rollbacks in DMS.

  • Fixed an issue where an error was not reported for duplicate items when setting a flagset-type variable, such as optimizer_switch.

  • Fixed an issue where enabling the win magic switch caused a subquery rewrite overflow due to insufficient base_ref_items space, resulting in a process crash.

  • Fixed an expression evaluation error when converting an INLIST to a JOIN result set if the INLIST VALUES contains a null value.

  • Fixed an issue where a HASH JOIN in the plan could cause incorrect parallel query results.

  • Fixed an issue where queries that included Lateral Derived Tables (LDTs) could return incorrect results.

  • Fixed the implementation of the Redis protocol transaction model in Orca, including the WATCH, UNWATCH, MULTI, EXEC, and DISCARD commands.

  • Fixed an issue where the results returned by the BITOP, ZRANGEBYLEX, ZRANGEBYSCORE, ZREVRANGEBYSCORE, and ZREVRANGEBYLEX commands in Orca were inconsistent with native Redis behavior.

  • Fixed an issue that could cause a process to crash when the SUBSTRING_INDEX expression processes an empty string from GROUP_CONCAT and the separator's length is greater than 1.

  • Fixed an issue where the CAST(REGEXP_SUBSTR(...)) AS DECIMAL statement caused a process to crash.

  • Fixed an issue where data validation was not performed when changing the dimension of a VECTOR type with a DDL statement.

  • Fixed a data dictionary inconsistency that occurred during a minor version upgrade from a version that did not support vector retrieval to one that did.

  • Fixed a rare issue of duplicate data on the primary key index when partition MDL was used.

  • Fixed compatibility, scaling, and other issues between IMCI Serverless and internal memory elasticity.

  • Fixed an issue where using the ALTER TABLE DROP statement to simultaneously delete multiple full-text indexes (FTS) could cause residual metadata.

  • Fixed an issue where the uniqueness of a unique index was not used to accelerate query execution.

  • Fixed a cluster crash that occurred in extreme cases when performing DML operations on a table with an auto-increment column after online partition maintenance (MDL) was enabled.

  • Fixed a potential cluster crash when a multi-value index was selected in a Multi-Range Read (MRR) optimization.

  • Fixed an issue where Orca did not lock the database when executing certain management commands, such as the ORCA_OPTIMIZE, AUTH, and ACL commands.

  • Fixed an issue where using a parallel query could lead to incorrect results when querying data that includes BLOBs.

  • Fixed an issue where certain types of queries were not correctly routed in adaptive execution.

  • Fixed an issue in cold data scenarios where the metadata cache on a read-only node was not updated after archiving to CSV or ORC format.

  • Fixed a cluster crash due to a memory issue during DDL operations on a table containing a BLOB field.

  • Fixed an issue where IMCI did not support online rebuilds, causing columnstore indexes to become unavailable.

8.0.2.2.26.1 (November 21, 2024)

Bug fixes

Description

An INSERT ... ON DUPLICATE KEY UPDATE statement no longer causes a table's auto-increment to roll back after an RO node is switched to an RW node.

8.0.2.2.26 (October 21, 2024)

Performance optimizations

Description

  • Optimized the statistics sampling mechanism by increasing the sampling frequency for large tables and ensuring coverage of the value range for each column. This improves the accuracy of the optimizer's cost estimation.

  • Optimized the serverless process for column store nodes.

    New column store nodes now serve requests only after their indexes are built. This prevents slow queries caused by SQL statements being routed to the new node to run row store plans.

  • Reduced the performance overhead of saving partition information during SQL execution in IMCI, improving query performance for partitioned tables.

Bug fixes

Description

  • Fixed incorrect result sets that occurred when merging IN clauses in a nested subquery.

  • Fixed a crash that occurred when a correlated subquery used a nested window function.

  • Fixed a crash during migration caused by a concurrency issue between frequent INSTANT DDL operations and background compaction tasks.

  • Fixed B-tree corruption caused by adding an auto-increment column and creating a reverse-order primary key index on that column.

  • Fixed an issue where the Autoinc value rolled back to 0 after clearing all data from a table.

  • Fixed an issue that caused IMCI to fall back to the row store when processing an expression with multiple subqueries containing SUM.

  • Fixed incorrect results that could occur when using a JSON_ARRAY expression in a subquery with IMCI enabled.

  • Fixed a system crash that could occur during query transformation if the number of tables exceeded 61.

  • Fixed an error that occurred when re-importing data into a UNIQUE CHECK IGNORE partitioned table by using LOAD DATA with REPLACE.

  • Fixed an Autoinc rollback issue in a partitioned table after an HA switchover.

  • Fixed an issue that interrupted the database and table restoration process when the same table was restored multiple times.

  • Fixed an issue where an IMCI could not be rebuilt online, making it unavailable.

  • Fixed a rare query failure caused by IMCI accessing invalid string data.

  • Fixed an issue where using Index_merge optimization for UPDATE statements could cause performance degradation.

  • Fixed an issue triggered when an index join in IMCI used a constant as a join condition.

  • Fixed an issue with condition pushdown for table function to prevent failures during parallel execution.

  • Fixed an issue where specifying a non-existent index in an Outline caused an error after multi-node ePQ was enabled.

  • Fixed an issue that prevented the use of asynchronous DDL when adding an IMCI by modifying the COMMENT on a table with a full-text index.

  • Fixed a potential cluster crash during the undo initialization phase when Force Recovery was enabled.

  • Fixed an issue that could cause incorrect results when updating an InnoDB temporary table.

  • Fixed a result set conflict between advanced transaction splitting in the proxy and the Fast Query Cache.

  • Fixed an issue where parallel query results could be incorrect if the query contained a constant table.

  • Fixed an issue where JSON_Length returned incorrect results when a wildcard character was used.

  • Fixed an issue where an RO node became stuck during the HA phase, causing prolonged HA times.

8.0.2.2.25.2 (August 13, 2024)

Bug fixes

Description

Upgraded the file system version and optimized the process of restoring a cluster from a writable snapshot.

8.0.2.2.25.1 (August 10, 2024)

Bug fixes

Description

Fixed a compatibility issue between the file system version and the control system.

8.0.2.2.25 (August 8, 2024)

New features

Description

  • Added the JSON_VALUE() function, which simplifies creating an index on a JSON column.

  • Supports continuous application updates during Copy DDL execution.

  • Supports pushing down JOIN conditions to the corresponding views.

  • In-Memory Column Index (IMCI) now supports a Hybrid Plan-based index join, which uses InnoDB indexes for JOIN operations.

  • Supports direct access to data tables on AI nodes through federated external tables.

  • The OSS OUTFILE feature now supports parallel export to the OSS engine.

  • Introduced a high-priority DDL capability to improve the success rate of DDL execution.

  • Added support for locking archived tables.

  • Added a hybrid row-column optimizer and cost-based row-column routing.

  • The optimizer now supports inner join and semi-join elimination.

    Additionally, outer join elimination is optimized for more scenarios.

  • Optimized large transactions in binary logging to avoid blocking other transaction commits.

  • The Hybrid Plan in IMCI now supports partitioned tables, virtual columns, and the ENUM, SET, and GIS column types.

  • Added support for dynamically switching to the column store during the in-row execution process.

  • The OSS query acceleration feature now supports archiving partitioned tables to OSS external tables. Manual or automatic partition archiving now synchronously generates OSS_FILE_FILTER query acceleration data.

Performance optimizations

Description

  • PolarDB for MySQL 8.0.1 and later now displays outline call information in EXPLAIN.

  • Improved the ORDER BY LIMIT pushdown feature for PolarDB for MySQL to support pushdown to JOIN tables.

  • PolarDB IO threads can now be adjusted dynamically without a restart.

  • Reduced the time required for query optimization on single-table queries.

  • Improved the performance of DML transaction replay in IMCI.

  • Optimized the In-Memory Column Index (IMCI) bloom filter hash algorithm and reduced build overhead by using string prefixes to construct the bloom filter.

  • Optimized the performance of simulated AIO.

  • Improved the performance of 3AZ clusters under low concurrency.

  • Enhanced the nonblocking DDL feature to support more DDL statements.

  • Optimized the memory usage of metadata used in IMCI queries.

  • Adjusted the priority of PolarFS transaction processing threads to improve the DDL performance of PolarDB for MySQL.

  • Improved the performance stability of the file system during DDL processes that frequently create and delete table files.

Bug fixes

Description

  • Fixed a crash caused by a hash join between the same common table expression (CTE) in a parallel query.

  • Fixed an out-of-memory (OOM) error during IMCI execution when a query contained too many UNION ALL clauses.

  • Fixed an issue where user threads on an RO node experienced long waits for a free page when the buffer pool was full.

  • Fixed an issue where the statistics sampling mechanism sampled large tables too frequently.

  • Fixed an issue where removing an RO node with innodb_polar_log_rdma_transfer enabled could block monitoring connections for a period of time.

  • Fixed an issue where certain implicit conversions in IMCI were incompatible with the MySQL CASE statement.

  • Added support for global secondary indexes (GSIs) when archiving partitioned tables to OSS external tables.

  • Fixed an issue where connection errors in acknowledgment (ACK) packets from a secondary node were not recognized.

  • Fixed an out-of-memory (OOM) error that occurred during an analyze table operation on a large table.

  • Fixed an issue where unneeded subqueries were not removed during the view merging process.

  • Fixed an issue that caused inconsistent result sets when an inlist was converted to a JOIN and the inlist type was inconsistent.

  • Fixed an issue where data could not be read when a query rewrite used index_merge to access a single-row subquery.

  • Fixed an issue that caused a semi join crash during subquery conversion.

  • Fixed a crash in query rewrite when converting a scalar subquery with an anti join to a derived table.

  • Fixed a precision loss issue with floating-point numbers in JSON.

  • Fixed an incompatibility between the Log RDMA feature of global consistency high-performance mode (SCC) and GDN secondary clusters.

  • Fixed an overflow issue caused by converting a large double value to uint during the parallel computation planning process.

  • Fixed an issue where the REF or MULTI RANGE access cost was underestimated for secondary indexes that did not include the partition key in a UCI partitioned table.

  • Fixed an issue where double values in JSON would incorrectly lose precision during parsing.

  • Fixed a bug that caused the database to hang during a manually triggered checkpoint.

  • Fixed a crash caused by an interaction between query rewrite's derived merge and the scalar subquery unnesting rule.

  • Fixed a security vulnerability in the crash recovery process of MySQL external XA transactions.

  • Fixed an issue where statistics on an IMCI partitioned table became invalid during partition pruning.

  • Fixed an issue where InnoDB tables with a function index failed cold data archiving.

  • Fixed an issue where setting the values for optimizer_switch and parallel_query_switch with an incorrect separator caused an error instead of a warning.

  • Fixed an issue by disabling the index merge intersection access path for DML statements by default to improve performance and prevent deadlocks.

  • Fixed an issue where the optimizer failed to select the optimal JOIN ORDER due to cardinality estimation errors.

  • Fixed an error that occurred when a column-store column was included in a CREATE TEMPORARY TABLE SELECT statement.

  • Fixed a potential assertion failure during table optimization.

  • Fixed an issue where the query result cache could be inaccurate when time and datetime are compared during single- and multi-machine parallel operations.

  • Fixed an incorrect IP address in the audit log for connection reuse under the session-level connection pool.

  • Fixed an issue where the cost of point queries and range queries based on the primary key was underestimated for UCI partitioned tables.

8.0.2.24 (June 21, 2024)

Performance optimizations

Description

  • Optimized the memory usage of metadata used during queries in IMCI.

  • Optimized the memory footprint of the IMCI optimizer for high-concurrency queries.

Bug fixes

Description

  • Fixed an error when creating a GSI on an empty table using parallel DDL.

  • Fixed incorrect statistics estimation for large tables with BLOB fields.

  • Fixed an issue where the number of rows scanned by a derived table was not recorded in the audit log and slow query log.

  • Fixed a space leak caused by an exception during the Shrink process.

  • Fixed an error during a parallel query on a hybrid partition containing both InnoDB and ORC partitions.

  • Fixed incorrect result sets caused by incorrectly collapsing a subquery.

  • Fixed an issue that prevented an ADD COLUMN operation on a partitioned table with subpartitions after upgrading the kernel version from 8.0.1 to 8.0.2.

  • Fixed a potential cluster crash during a parallel query where the predicate condition contained a DEFAULT expression.

  • Fixed excessive permissions for DLM policy execution.

  • Fixed an issue where archiving failed for an archived table with a descending index.

  • Fixed an issue that prevented reclaiming BLOB space from an original record when its BLOB column was updated.

  • Fixed inaccurate cardinality estimation that prevented the use of IMCI for JOIN conditions on BIGINT columns with large values.

  • Fixed inaccurate statistics for IMCI partitioned tables caused by sampling only a subset of partitions during statistics updates.

  • Fixed an issue where useless subquerys were not deleted during view merging.

  • Fixed a potential parallel query crash caused by eliminating a CTE used as the right table of a LEFT JOIN.

  • Fixed an issue that caused the transaction ID for read-write transactions in SQL Explorer to be 0 when the thread pool was enabled.

8.0.2.2.23.1 (May 20, 2024)

New features

Description

The Fast Query Cache now logs the number of returned rows. This count is now available in the audit log for each cache hit.

Bug fixes

Description

  • The number of rows scanned by a derived table is now correctly recorded in the audit log and slow query log.

  • Queries that combine a Limit Offset pushdown, an equality condition on a secondary index, and an IN list on the primary key now return the correct results.

  • Comparisons between FLOAT and INT types now return the correct result.

8.0.2.2.23 (May 8, 2024)

New features

Description

  • The new limit_orderby_pushdown_mode parameter controls whether to push down LIMIT and ORDER BY clauses to derived tables or all branches of a UNION ALL statement. When the LIMIT value is less than the value of the limit_pushdown_to_union_threshold parameter, the LIMIT and ORDER BY clauses are pushed down to all branches of the UNION ALL statement.

  • Added support for LEFT JOIN operations based on Top-K pushdown in IMCI.

  • The optimizer can now convert a LEFT JOIN to an INNER JOIN based on HAVING conditions and the outer conditions of a VIEW.

  • The optimizer now eliminates redundant DISTINCT operators in queries to improve execution speed.

Performance optimizations

Description

  • Query acceleration is now supported for CSV-formatted data files on OSS.

  • You can now run the INSTANT DROP PARTITION operation on a partitioned table that has a global secondary index (GSI) without invalidating the GSI.

  • Improved the read performance of read-only nodes.

  • Added support for LEFT JOIN elimination in UPDATE statements.

  • Optimized the SQL Trace feature to correctly record SQL statements and their execution plans when a built-in stored procedure is called.

  • Added support for the instant ADD COLUMN feature on tables with a columnstore index.

  • Added support for non-equi predicate derivation to push down more predicates.

  • Simplified the configuration for automatic request distribution between row and column stores. You can now execute SET use_imci_engine=FORCED to determine why a query was not routed to the column store.

  • Optimized subquery execution to collapse and eliminate multiple subqueries whenever possible.

  • Added support for using temporary tables when using the Hybrid Plan to accelerate wide-table queries.

  • Improved the connection handling speed of the thread pool in low-concurrency scenarios.

  • Added support for using the rman.import command on columnstore indexes.

  • Improved X-Engine sampling statistics to provide more accurate compression ratio estimates.

  • Added support for creating Tair read-only nodes to provide cache read capabilities.

  • Access by system O&M engineers is now excluded from the slow_queries status metric during database performance monitoring.

  • Reduced the metadata overhead for memory allocation and memory statistics in IMCI to save memory.

  • Added support for parallel queries on single tables and partitioned tables in X-Engine.

  • IMCI now supports the BatchProbe optimization to improve the performance of JOIN operations.

  • Optimized the memory usage of metadata, file modules, and small in-memory objects in IMCI to reduce resident memory usage.

  • Added support for using the columnstore index and global consistency (high-performance mode) features at the same time.

  • Stats Manager can now automatically dispatch histogram collection tasks to read-only nodes or hot standby nodes for automatic histogram updates.

  • Improved the I/O performance of PolarFS read-only nodes to reduce query latency.

Bug fixes

Description

  • Fixed an issue where subsequent scale-out requests could not be executed because a large SQL query holding pages without releasing them blocked the automatic cancellation of a previous scale-in operation in the Buffer Pool.

  • Fixed an issue where cold data in CSV and ORC formats could not be deleted by using the dbms_oss.delete_table_file built-in stored procedure.

  • Fixed a potential node crash during the automatic cancellation of a scale-in operation in the Buffer Pool under high concurrency.

  • Fixed an issue where a query could not be dispatched to the columnstore index if it contained a subquery that returned an empty result set.

  • Fixed an internal thread pool counter error that could occur when an ACL lock wait was encountered during asynchronous authentication.

  • Fixed an issue that caused an assert message to be returned when multiplying Decimal data, if at least one multiplier was 0 and the result's scale exceeded 16.

  • Fixed an issue in the one-click upgrade from RDS for MySQL to PolarDB for MySQL where a PolarDB for MySQL cluster restart interrupted the migration connection.

  • Fixed a node crash when querying a hybrid partitioned table that contains both InnoDB and ORC partitions.

  • Fixed data loss that occurred when repeatedly archiving data to an OSS external table.

  • Fixed a node crash caused by accessing an invalid BLOB reference when pre-reading BLOB data.

  • Fixed an issue where enabling the pre-read feature while using the columnstore index could cause intermittent node crashes.

  • Fixed an issue where the HINT syntax was not supported by the join condition pushdown feature.

  • Fixed an issue where the HINT syntax was not supported by the predicate pushdown subquery feature.

  • Fixed incomplete HAVING condition pushdown.

  • Fixed a potential node crash in a parallel query when referencing a projection column in a HAVING clause and executing a non-correlated subquery.

  • Fixed excessive Autoinc init logging.

  • Fixed an issue where the subquery merging feature did not support Optimizer HINT.

  • Fixed a potential error with OSS external tables in ORDER BY DESC scenarios.

  • Fixed an out-of-bounds memory access issue that occurred when compressing oversized strpack values in IMCI.

  • Fixed a potential performance regression when pushing down conditions to a derived table.

  • Fixed an issue where BIT fields were displayed incorrectly after a GROUP BY operation.

  • Fixed a slow query performance degradation caused by strict concurrency control for background compaction tasks in X-Engine, which affected foreground operations.

  • Fixed an issue that could produce incorrect results in a parallel query if a plan segment had multiple tables performing a partition-wise parallel scan and a parallel hash join operation was also run in the segment.

  • Fixed an issue where the pull-up of some subqueries caused the column in group statement is ambiguous warning.

8.0.2.2.22.1 (April 17, 2024)

Performance optimization

Description

  • Improved the error message for importing cold data from OSS back to the InnoDB engine.

  • Added support for tracking slow query execution in SQL Trace.

Bug fix

Description

  • Fixed a memory leak during a Reload operation in features such as Statement Outline and Concurrency Control.

  • Fixed an issue where a LEFT JOIN on tables in the INFORMATION_SCHEMA database returned incorrect results.

  • Fixed an issue where a DLM policy remained active after the associated table structure was changed.

  • Fixed an issue where running the INSERT INTO ON DUPLICATE VALUE command on a partitioned table resulted in a Can't find record on <table> error.

  • Fixed a rare crash when executing the TRUNCATE PARTITION command on a partitioned table with an auto-increment column.

  • Fixed an issue that caused parallel queries on large tables with tall or skewed B-trees to generate an insufficient number of parallel shards or distribute data unevenly among concurrent workers.

8.0.2.2.22 (April 7, 2024)

Performance optimizations

Description

  • Added support for granting users global dynamic permissions to execute the SHOW_ROUTINE, FLUSH_USER_RESOURCES, FLUSH_TABLES, FLUSH_STATUS, and FLUSH_OPTIMIZER_COSTS commands.

  • Disabled the small partial update feature for BLOBs to prevent potential data read errors when reading BLOB fields.

  • When you use the SET_VAR hint to set the loose_optimizer_switch parameter, you no longer need to add a trailing comma.

Bug fixes

Description

  • Fixed an issue where an index was corrupted and table data became inaccessible due to differing index orders during an EXCHANGE PARTITION operation.

  • Fixed a deadlock in DDL read-ahead during parallel DDL operations.

  • Fixed an issue where an incorrect LSN offset during a checkpoint operation caused crash recovery to fail after an abnormal cluster restart.

  • Fixed an issue where a node restart was required to recover from an Autoinc rollback.

  • Fixed an issue where a table definition has changed error occurred when a Hybrid Plan was applied to an SQL statement containing an ORDER BY clause and returning NULL values.

  • Fixed an issue where some built-in stored procedures did not correctly report an error when provided with an incorrect number of input variables.

  • Fixed an issue where duplicate groups appeared in the result set when a parallel query pushed down GROUP BY to a worker for parallel execution on a partitioned table.

  • Fixed an issue where the "Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs" error was incorrectly reported when creating a table with a DECIMAL column.

  • Fixed a rare crash during the undo cleanup process that occurred when using a temporary table with the flashback query feature enabled on a backquery machine.

  • Fixed an issue where the optimizer selected an ordering index but failed to omit the sort operation during execution.

  • Fixed an issue where the JOIN elimination optimization feature did not update the column information for the remaining tables, which could prevent the selection of the optimal access method for those tables.

  • Fixed an issue where using the Materialization policy for a Semi-Join could produce an incorrect query result.

  • Fixed an issue where a binlog record failed to uniquely identify a record in a partitioned table whose primary key does not include the partition key when binlog_row_image=MINIMAL.

  • Fixed an issue where a UCI index might not be unique when the primary key does not include the partition key in the following scenarios:

    • Pulling up the inner table of a semi-join.

    • Eliminating GROUP BY or DISTINCT.

    • Adding a unique key dependency for JOIN elimination.

    • Decorrelating a correlated scalar subquery by converting it into a derived table through a window function.

    • Processing GroupJoin queries with the columnstore index.

8.0.2.2.21 (January 17, 2024)

New features

Description

  • Added support for using a hint to disable global consistency (high-performance mode) for individual SQL statements.

  • Added support for using correlated subqueries in the GROUP BY clause and for eliminating them when they are complex.

  • Added support for Concurrency Control and Statement Outline in a multi-master cluster (database/table). When Concurrency Control or Statement Outline rules are added or deleted on a primary node, the changes automatically synchronize to all other primary nodes in the cluster.

  • You can add Tair cache nodes to a PolarDB for MySQL cluster to read data from the PolarDB for MySQL database.

Performance optimizations

Description

  • Accelerated the thread pool's handling of connection requests in low-concurrency scenarios.

  • Optimized the IMCI startup process, reducing the preparation time for the columnstore index.

  • Improved data read performance on read-only (RO) nodes for primary key lookups that use a secondary index.

  • Optimized the transaction mask calculation process in IMCI.

Bug fixes

Description

  • Fixed an issue where CCL rules matched by a DIGEST value could become invalid after a cluster upgrade.

  • Fixed a node crash caused by adding backticks to the input parameters when calling some built-in stored procedures.

  • Fixed an issue where querying TopK data with IMCI returned incorrect results when sorting in descending order on tables with a large number of NULL values.

  • Fixed an issue where a read-only columnstore node could not recover columnstore data when started during a DDL execution on a table with a columnstore index.

  • Fixed an issue where elastic parallel query (ePQ) could not be used for queries that include a recursive CTE in certain scenarios.

  • Fixed an issue during the new database and table restoration process where adding a new read-only (RO) node failed due to a low registration offset.

  • Fixed an issue in the new database and table restoration workflow where threads could not exit if the disk became full.

  • Fixed an issue where concurrent data structure changes during physical replication in X-Engine caused anomalies on a read-only node.

  • Fixed an upgrade failure when upgrading an X-Engine from a read replica to a standby.

  • Fixed an issue where data was not repartitioned after changing the character set of a partition key in a partitioned table.

  • Fixed an issue where querying a view that contains BIT-type data with IMCI returned incorrect results.

  • Fixed high write latency for X-Engine tables in low-concurrency scenarios.

  • Fixed an issue where GROUP BY could not find the corresponding column after a single-row subquery was pulled up.

  • Fixed an issue where enabling the subquery_to_derived option in MySQL Community Edition returned an incorrect result set.

  • Fixed memory corruption that occurred when using the polar_abbrev_sort_key_size parameter to control sorting operations.

  • Fixed an issue where an index merge plan using a unique key (UK) returned data from only the first partition. This occurred during equality queries on a partitioned table whose primary key did not include the partition key.

2023

8.0.2.2.20 (December 20, 2023)

Performance optimizations

Description

  • For clusters without a Statement Outline, outline matching is no longer affected by the character set if the outline is added after a version upgrade.

  • Optimized the process of enabling global consistency (high-performance mode).

  • Added support for accessing the INFORMATION_SCHEMA views of the column store from any node. By default, the system aggregates and displays information from all column store nodes.

  • Optimized the database and table restoration feature, improving restoration speed and adding support for task failure rollbacks.

Bug fixes

Description

  • Fixed a potential node crash that could occur during a parallel scan on a derived table with a ROLLUP calculation.

  • Fixed a node crash caused by an incorrectly formatted user-defined CONNECTION when creating an OSS external table.

  • Fixed an issue where dirty page flushing on an RW node would be blocked because the node failed to interrupt its replication relationship after a physical machine failure on an RO node.

  • Fixed an issue where an excessive number of tables caused table cache eviction after an HA switchover, resulting in the rollback of Autoinc values.

  • Fixed a replica node crash caused by an extreme Redo log sequence. The sequence was generated by a concurrency issue between deleting a table or index in X-Engine and an occasional background SwitchMemtable operation.

  • Fixed an internal connection object leak caused by abnormal execution of elastic parallel query (ePQ) when a remote connection was forcibly closed.

  • Fixed an issue where executing a ROLLUP statement in parallel could return incorrect results because the GROUP BY clause contained multiple identical constant columns.

  • Fixed an assertion error triggered when accessing a global secondary index (GSI) on a partitioned table by using a RANGE INDEX, if all partitions were pruned during the partition pruning phase.

  • Fixed an issue where tables with a BLOB field failed to archive cold data to the ORC format.

  • Fixed a parallel query restriction on a global secondary index (GSI) in MRR and other scenarios.

8.0.2.2.19.1 (November 13, 2023)

Bug fixes

Description

Applied a patch from MySQL 8.0.16 to fix a deadlock caused by an oversized blob.

8.0.2.2.19 (October 30, 2023)

New features

Description

  • Added the opt_non_covering_key_cost parameter to control whether to include the initial seek cost of a secondary index.

  • Added the worst_seek_records_threshold parameter to control whether to cap the maximum I/O cost of equality lookups on a non-covering index during cost estimation.

Performance optimizations

Description

  • Optimized the logic for switching a read-only node to a primary node.

  • Optimized the thread pool logic for handling new connections.

  • The optimizer can now push down conditions to a materialized table when the subquery contains a UNION clause.

  • The optimizer can now push down more eligible conditions to a materialized table based on the transitivity of equality predicates.

  • The optimizer can now push down eligible predicates into a subquery.

  • Optimized the cost model for equality lookups on a non-covering index.

  • Optimized the table object cache and table definition cache to reduce memory consumption.

  • You can now use DLM to automatically archive cold data for all RANGE-partitioned tables.

  • The optimizer can now select a global secondary index on a partitioned table in queries that use partition pruning.

Bug fixes

Description

  • Fixed an issue where the cluster could fail to start when the AccessKey information for the OSS SERVER was corrupted.

  • Fixed an issue where the GroupJoin operator consumed excessive memory, causing query failures in some scenarios.

  • Fixed an issue that prevented queries with OR predicates from executing due to a query plan binding failure.

  • Fixed an issue where the optimizer could not accurately estimate the join selectivity when joining an unsigned column with a signed column.

  • Fixed an issue where terminating a query via the scheduler could cause a database restart.

  • Fixed an issue where a read-only node of the X-Engine failed to report version reference information, preventing space reclamation.

  • Fixed an issue where RowID rollback could fail when loading an ahead-of-time checkpoint.

  • Fixed an I/O performance regression for the columnstore index in late materialization scenarios.

  • Fixed a potential infinite loop during partition pruning when a partition could not be located.

8.0.2.2.18 (September 17, 2023)

Bug fixes

Description

Fixed a potential node crash that could occur when deleting the last CCL rule for a given SQL statement type, where the rule specified only a keyword but not a schema or table.

8.0.2.2.17 (August 23, 2023)

Enhancements

Description

Improved performance for archiving cold data to OSS in CSV format.

Bug fixes

Description

  • Fixed a Table definition has changed error that could be triggered when the global consistency (high-performance mode) and elastic parallel query (ePQ) features were enabled at the same time.

  • Fixed inaccurate scan row count statistics for SQL statements when using index condition pushdown.

  • Fixed a node crash when using the phrase search mode in a full-text index.

  • Fixed an issue that caused a newly connected RO node to crash after the RW node completed an undo truncate operation.

8.0.2.2.16.1 (July 25, 2023)

Bug fixes

Description

  • Fixed an issue where a background thread caused high CPU usage.

  • Fixed an issue where a corrupted OSS Server AccessKey could prevent a cluster from starting.

8.0.2.2.16 (July 23, 2023)

New features

Description

Added the innodb_polar_import_tablespace_strict_mode parameter. The default value is ON. When this parameter is enabled, the system returns an error when restoring a database or table if its structure contains a full-text index.

Performance optimizations

Description

  • You can now use a columnstore index to query data from specific partitions of a partitioned table.

  • You can now use the primary index in the InnoDB engine to accelerate columnstore index queries.

  • The system now converts an IN subquery to a Semi-Join subquery for UPDATE or DELETE operations on a single table.

  • The system now converts a scalar subquery to a materialized table in a join query.

  • The Fast Query Cache feature now supports partitioned tables in the InnoDB engine.

  • The system no longer automatically creates an implicit auto-increment primary key when you create an OSS external table.

  • You can now create a global secondary index on a partitioned table with UNIQUE CHECK IGNORE=1.

Bug fixes

Description

  • Fixed an issue where the JPPD optimization feature would crash when a CTE contained a nested CTE with multiple references.

  • Fixed an issue where database and table restoration would fail for hybrid partitioned tables.

  • Fixed an issue where a secondary node failed to trigger the reconnection mechanism when the primary node was shut down and restarted.

  • Fixed a rare issue where a process could be interrupted again during fault recovery.

  • Fixed an issue where data was inserted into the wrong partition of a UNIQUE CHECK IGNORE partitioned table.

8.0.2.2.15 (June 28, 2023)

New features

Description

Added the ALTER TABLE table_name CHANGE PARTITION partition_name ENGINE=CSV/ORC FORCE; syntax.

Performance optimizations

Description

  • Enabled log transmission between read-write (RW) and read-only (RO) nodes over an RDMA network.

  • You can now archive partitioned tables and standard tables with auto-increment columns to OSS.

  • The federated query engine can now push down the ORDER syntax to a remote database, which can be combined with LIMIT OFFSET to reduce network overhead.

  • You can now create a columnstore index on a hybrid partitioned table (InnoDB+ORC).

  • Optimized the thread pool for short-lived connections.

  • The DLM feature now supports archiving InnoDB partitions from partitioned tables to OSS.

  • You can now delete and add InnoDB partitions in a hybrid partitioned table.

Bug fixes

Description

  • Fixed an issue where queries using a columnstore index were not interrupted and temporary files were not cleaned up when the temporary files filled the disk.

  • Fixed an issue where parameters were ignored during repeated executions of a stored procedure.

  • Fixed an issue where a regular user could delete sys.

  • Fixed a faulty internal counter in the thread pool that could cause a backlog of SQL requests during concurrent recording of the slow query log.

  • Fixed an unexpected node restart that occurred during a database and table restoration on a partitioned table after an HA switchover.

  • Fixed an issue where the checkpoint LSN did not advance as expected.

  • Fixed an issue where queries on a read-only (RO) node could fail while an ALTER TABLE ... IMPORT TABLESPACE operation was running on the read-write (RW) node.

8.0.2.2.14 (May 24, 2023)

New features

Description

  • Added the ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = 'csv'; command to archive partitions.

  • Introduced the row-level compression feature.

  • Introduced the primary key data slicing function call dbms_dts.show_parallel_ranges (<schema_name>, <table_name>, [<suggestion_ranges>]).

Performance optimizations

Description

Bug fixes

Description

  • Fixed a replication delay that occurred when replaying redo logs of a wide table on an RO node.

  • Fixed a node crash that could occur when using order index optimization to query a hybrid partitioned table.

  • Fixed a node crash that could occur when truncating a hybrid partition.

  • Fixed an issue where the Limit Offset pushdown optimization returned incorrect results for queries that contain a window function.

  • Fixed an issue that prevented OSS from performing parallel execution.

  • Fixed an issue that prevented OSS from reading JSON files.

  • Fixed a spelling error in the engine.

  • Fixed an issue where only the first file was read when reading cold data in CSV format from OSS.

  • Fixed an issue where data containing \n was unreadable after being archived by DLM.

  • Fixed an issue where temporary files remained on OSS after cold data was archived.

8.0.2.2.13 (April 21, 2023)

New features

Description

  • Added the BNL, BKA, and MRR hint types to Hint Plan.

  • Added the by_expr_ignore_charset variable to SQL Sharing. Setting by_expr_ignore_charset to ON eliminates digest discrepancies for statements that contain ORDER BY or GROUP BY clauses across different character sets. However, when this parameter is set to ON, all newly generated digest values will differ from those created before setting the parameter to ON.

  • The Statement Outline feature now supports the dbms_outln.add_optimizer_outline('schema', 'hints', 'query') interface for adding Optimizer Hints.

  • Added the ALTER TABLE table_name CHANGE PARTITION partition_name ENGINE = 'csv'; command to archive all data from a specified partition of a partitioned table to OSS.

Enhancements

Description

  • Optimized memory consumption when scanning tables in the recycle bin.

  • Added support for querying GTID information on a read-only node.

  • The columnstore index now supports instant add column by rebuilding the index data.

  • The columnstore index now supports the REGEXPR function.

  • The columnstore index now supports pruning optimization based on IS NULL and IS NOT NULL conditions.

  • Added support for using parallel DDL to create a global secondary index.

  • Added support for using the instant add column feature on a partitioned table with a global secondary index.

  • Added support for converting a table with a global secondary index to an interval range partitioned table. You can also create a global secondary index on an interval range partitioned table.

  • The system no longer calculates digests for SQL statements if no Statement Outline is added.

  • Nonblocking DDL now supports OPTIMIZE TABLE and TRUNCATE TABLE statements.

Bug fixes

Description

  • Fixed database connection failures caused by a read timeout when establishing physical replication on a read-only node.

  • Fixed an issue where condition pushdown was incorrect for tables with NULL fields when the engine_condition_pushdown parameter was set to true.

  • Fixed an issue where the ALTER TABLE engine = csv storage oss, force; command failed to delete the source file on OSS.

  • Fixed a database node crash when performing a check operation on an empty OSS external table.

8.0.2.2.12 (March 20, 2023)

New features

Description

  • Added support for nonblocking DDL.

  • Added SQL Trace.

  • Added SQL detail.

  • Added Auto Plan Cache.

  • Added support for columnstore indexes.

  • Global consistency (high-performance mode) now includes the Innodb_scc_timeout_count parameter to track the number of query timeouts.

  • Global consistency (high-performance mode) now includes the Innodb_scc_timeout_degrade_count parameter to track the number of timed-out queries that are degraded to asynchronous requests.

Performance optimizations

Description

  • Statement Outline now reports a warning instead of an error if a specified index hint does not exist.

  • Execution plans are now included in the extended data of the slow query log.

  • Added support for adaptive digest length, which automatically adjusts the memory allocated for statement digest calculation based on query length.

  • Concurrency control (CCL) now includes the ccl_mode parameter. When database traffic reaches the concurrency control limit, subsequent requests to the cluster are rejected.

  • Built-in stored procedures now accept variables starting with the at sign (@) as input parameters.

  • Optimized the internal lock granularity of PolarFS, significantly improving performance in some high-load scenarios.

Bug fixes

Description

  • Fixed a bug that prevented an error from being reported when adding or deleting CCL rules or Statement Outlines on a hot standby or read-only node.

  • Fixed a bug that caused a cluster to crash when executing the SHOW SLAVE HOSTS statement on the primary node.

8.0.2.2.11.1 (February 21, 2023)

New features

Description

Added the loose_group_by_compatible_sorting parameter to enable or disable the Group By compatible sorting mode.

Performance optimizations

Description

A Statement Outline with an empty Schema_name now matches all SQL statements with the same Digest value.

Bug fixes

Description

Fixed a potential illegal memory access when using a DDL statement on a partitioned table.

8.0.2.2.11 (February 20, 2023)

Performance optimizations

Description

  • You can now specify a value for an AUTO INCREMENT column in a partition expression to enable partition pruning based on the specified value.

  • You can now use the without validation option in the add partition syntax to add a LIST partition to a LIST DEFAULT HASH partitioned table.

8.0.2.2.10 (January 9, 2023)

New features

Description

The syntax for converting a standard table to a partitioned table now supports the without validation option: Alter table t1 partition by range(a) (partition p0 values less than (100), partition p1 values less than (200)) without validation.

Performance optimizations

Description

  • Cost-based computation supports pushing the outer join condition of a materialized derived table down into the derived table.

  • Supports converting a predicate with an IN list to a temporary table, performing a semi-join with the query in the FROM clause, and avoiding overhead from repeated materialization by using a zero-copy approach.

  • Supports pushing down conditions from the HAVING clause to the WHERE clause.

  • Subpartitions now support executing DDL operations under a partition-level MDL, which reduces lock granularity. During a DDL execution, the operation affects only the modified partition and does not affect DML operations on other partitions.

Bug fixes

Description

  • Enabling TDE disables system table encryption.

  • Adjusted timeout parameters for physical replication connections to prevent interruptions during a physical machine failure.

2022

8.0.2.2.9 (December 23, 2022)

Performance optimizations

Description

  • The dbms_ccl.add_ccl_digest_rule, dbms_outln.add_index_outline, and dbms_outln.add_optimizer_outline built-in stored procedures now ignore the semicolon at the end of an SQL statement in the query parameter.

  • The MEMBER keyword is now a non-reserved keyword.

  • Added support for the Partial Result Cache feature.

  • The optimizer's join elimination feature now supports eliminating the inner table of a left join, including inner tables of multi-level nested joins and Semi-Joins.

  • The federated query engine now pushes down all compatible conditions to the remote server for execution and returns only the columns required by the query.

  • The federated query engine now pushes down the LIMIT OFFSET syntax to the remote database.

Bug fixes

Description

The CREATE SERVER syntax now supports IF NOT EXISTS.

8.0.2.2.8 (November 30, 2022)

New features

Description

  • Added the SELECT INTO OSSOUTFILE statement to export a local table (a table on PolarFS) to OSS.

  • Added support for failover with hot standby.

  • Added the dynamic_partition_prune_enabled parameter to control the dynamic partition pruning feature. When this feature is enabled for multi-table join queries that involve a partitioned table, it reduces unnecessary partition scans if the join condition meets the pruning criteria, which improves query performance.

Enhancements

Description

  • Added support for creating, deleting, and rebuilding an index on specific partitions of a partitioned table.

  • Added support for REBUILD PARTITION and REORGANIZE PARTITION operations with a partition-level MDL lock. This ensures that a DDL operation on one partition does not affect DML operations on other partitions.

  • Usernames and passwords in the mysql.servers table are no longer stored or displayed in plaintext.

    Note

    The usernames and passwords of existing servers are not encrypted after the upgrade. You must manually delete and recreate them.

  • Added support for partition-wise joins between a partitioned table and a standard table, significantly improving join efficiency for large datasets.

  • Statement Outline now supports all UNION clauses.

  • Added support for LIMIT OFFSET pushdown when accessing a specific partition of a partitioned table.

Bug fixes

Description

8.0.2.2.7 (October 25, 2022)

Performance optimizations

Description

  • Multi-node elastic parallel query (ePQ) now supports cross-node querying of external table data on OSS.

  • Adds support for using a global secondary index on a partitioned table.

  • Adds support for using multi-stage multi-node parallel query in queries that use SJM (Semi-join Materialization).

Bug fixes

Description

  • Fixed an issue where a LIMIT 1 operation could terminate early, causing an ERROR 1028 (HY000): Sort aborted: Query execution was interrupted.

  • Fixed an issue where writing an implicit primary key via a scheduled task could cause a node crash.

  • Fixed an issue where COUNT(DISTINCT ...) returned an incorrect result set in multi-node elastic parallel query (ePQ).

  • Fixed an issue where a parallel query could return an incorrect result set when the query conditions included DATE and DATETIME data types.

8.0.2.2.6.1 (September 17, 2022)

Bug fixes

Description

Fixed an RO node crash caused by a file name hash collision.

8.0.2.2.6 (August 19, 2022)

Performance optimizations

Description

  • Thread pool optimization: When a database transaction waits for a metadata lock or row lock, the thread pool now generates additional threads to process new requests.

  • Enhanced CCL to support DDL throttling.

  • Accelerated the DDL data rebuild process by asynchronously writing to a temporary file.

  • Improved thread pool performance under high concurrency.

  • Added the oss_sts_token parameter to the syntax for creating an OSS server to configure a temporary access credential.

Bug fixes

Description

Fixed an issue where queries that used both Limit offset pushdown and MRR optimization returned incorrect results.

8.0.2.2.5.1 (July 22, 2022)

Performance optimizations

Description

  • Added support for creating a hybrid partitioned table. For more information, see Create a hybrid partition.

  • Read-only nodes now support custom memory temporary tables. Currently, only the MEMORY and MyISAM engines are supported.

  • Introduced the ReadableProto feature. This feature allows you to directly read serialized information from a BLOB field by specifying the Protobuf protocol.

  • Optimized DDL sorting by replacing the two-way merge with a multi-way merge. This change reduces I/O operations and improves performance when adding an index via DDL.

  • The oss_prefix parameter is added to the syntax for creating an OSS server to configure the OSS file path.

Bug fixes

Description

  • Fixed an issue where concurrent execution results were unordered when group_by_implicit_sorting selected an index for a GROUP BY column.

  • Fixed an issue where using an EXPLAIN FORMAT=TREE statement to display Hash Join results produced incorrect cost and rows values.

  • Fixed excessive physical replication latency under low cluster load.

  • Fixed an issue that blocked LRU List cleanup and prevented it from releasing a page. This issue occurred when the Buffer Pool had too many dirty pages and flushing was slow.

  • Fixed a database crash caused by an excessively long record generated when rolling back an Update operation after an instant add column operation.

8.0.2.2.4 (May 31, 2022)

New features

Description

Added support for creating and using federated engine tables.

Bug fixes

Description

  • Fixed a bug that caused SKIP_SCAN to return an incorrect result set when an index prefix contained multiple data groups.

  • Fixed a bug that caused SKIP_SCAN to return an incorrect result set for data marked for deletion.

  • Fixed a bug that could cause the fast query cache to block redo log synchronization when a read-only node acquires a metadata lock (MDL).

8.0.2.2.3 (April 19, 2022)

Bug fixes

Description

Fixed an issue that caused incorrect results when using index for group by.

8.0.2.2.2 (March 31, 2022)

Performance enhancements

Description

  • The PolarDB parallel query feature now uses a multi-node execution engine, allowing you to schedule workers to remote nodes and use computing resources from multiple nodes in the cluster. Key benefits include:

    • The degree of parallelism can now exceed the limits of a single node, accelerating large analytical queries.

    • The system schedules queries to idle nodes based on global resource load to accelerate execution and improve resource utilization.

    • You can create multiple cluster groups to form a computing resource pool, providing greater elasticity.

  • The parallel query parameter parallel_query_switch now includes the restrict_on_limit_without_order switch, which controls parallel queries that have a LIMIT clause but no ORDER BY clause.

  • This release adds support for condition pushdown to materialized derived tables.

8.0.2.2.1 (March 15, 2022)

New features

Description

The SET INTERVAL syntax is added to modify the INTERVAL type and value of interval range partitions and to enable conversion between range-partitioned tables and interval range-partitioned tables. For more information, see Modify interval range partitions and Convert partitioned tables.

Performance optimizations

Description

Bug fixes

Description

  • Fixed an issue where the history list could not be deleted, which caused the undo log to bloat.

  • Fixed an issue where creating a partitioned table by using CREATE TABLE .. LIKE.. LIST DEFAULT HASH failed.

  • Fixed a display issue with UNIQUE CHECK IGNORE in the system table mysql.tables.

8.0.2.2.0 (January 12, 2022)

Performance optimizations

Description

  • Enhanced the Elastic Parallel Query feature by improving linear acceleration and introducing a multi-stage parallel computing capability.

  • Expanded support for partitioned tables. This update adds support for more table types and Interval partitioning. For more information, see Partitioned table.

  • Added support for subquery decorrelation.

  • In conjunction with PolarProxy, you can now use stored procedures to define sensitive fields and tag the metadata of their values.

  • A STATUS variable, Online_altered_partition, is added to count the number of online ALTER TABLE ADD PARTITION and ALTER TABLE DROP PARTITION operations.

  • The database kernel now supports transaction breakpoint resume and allows read-only nodes to read uncommitted transactions.

Bug fixes

Description

  • The SELECT FOR UPDATE WAIT N and SELECT FOR SHARE WAIT N syntax is supported. In this syntax, N specifies the timeout period in seconds for a single row lock. If a query needs to lock multiple rows, the time is not cumulative, and the timeout is checked for each row individually. If the wait time exceeds N seconds, a lock wait timeout error Lock wait timeout exceeded; try restarting transaction is returned.

  • Fixed an issue where the optimizer did not select a more optimal index range path for some GROUP BY statements.

  • Fixed an issue where large values for the group_concat_max_len parameter caused an arithmetic overflow, causing the GROUP_CONCAT function to return an incorrect result.

  • Enabled modification of the database cache size.

  • Improved query efficiency by avoiding unnecessary traversal of partitions in partitioned tables.

  • Fixed an issue that caused DDL operations to fail on encrypted tables.

  • Optimized master_key_id_mutex to enable DDL operations to run in parallel.

  • Fixed a replay log crash on a read-only node under high concurrency.

  • Fixed an issue where read-only nodes would crash at m_recv_bits.is_set(fold) during physical replication under high concurrency pressure.

2021

8.0.2.1.4.1 (October 26, 2021)

Performance optimizations

Description

The default value of the innodb_adaptive_hash_index parameter is changed from ON to OFF.

Bug fixes

Description

The database cache size can now be modified.

2020

8.0.2.1.4 (December 1, 2020)

New features

Description

Added support for MySQL 8.0.20 Index Hints.

Bug fixes

Note

  • Fixed a stability issue in parallel Hash Join.

  • Fixed an incorrect row count estimation for each index key in statistics.

  • Fixed an error that occurred when processing empty data during a parallel scan of a shared temporary table.

  • Fixed a data processing error in the REGEXP_REPLACE function.

  • Fixed a crash that occurred in complex queries that contain subquery constants.

  • Fixed an issue where filesort returned incorrect data.

8.0.2.1.3 (October 26, 2020)

Performance optimizations

Description

  • Optimized the cost estimation model for Hash Join.

  • Added support for parallel Hash Join, including parallel Build and Probe phases.

Bug fixes

Description

  • Corrected the displayed number of parallel partitions in a parallel execution plan.

  • Fixed an issue where parallel subqueries would crash.

  • Fixed an issue where multiple worker threads failed to produce random results when using the RAND() function in a parallel query.

8.0.2.1.2 (September 27, 2020)

Performance optimizations

Description

PolarDB parallel processing now fully supports the latest volcano model iterative executor.

8.0.2.1.1 (August 26, 2020)

Performance optimizations

Description

Optimized cluster write performance.

Bug fixes

Description

Fixed a memory leak.

8.0.2.1.0 (July 22, 2020)

New features

Description

Adds the Warm Buffer Pool feature. Data in the Buffer Pool persists across crash restarts and upgrades, which significantly speeds up restarts and prevents subsequent performance degradation.

Performance optimizations

Description

  • EXPLAIN supports displaying parallel plans. Use FORMAT=TREE to view the parallel execution plan tree.

  • Parallel query supports hash join, enhancing JOIN performance for queries without indexes. For more information, see Parallel acceleration of Hash Join.

  • Adds Resource Manager, which lets you monitor CPU and memory resources. For more information, see Resource Manager.

  • Adds Performance Agent, which collects and aggregates performance data from nodes in a PolarDB for MySQL cluster. You can query the PERF_STATISTICS memory table to obtain specific performance metrics. For more information, see Performance Agent.