All Products
Search
Document Center

PolarDB:PolarDB for MySQL 8.0.2 release notes

Last Updated:Jun 28, 2026

This topic describes the release notes for PolarDB for MySQL 8.0.2.

2026

8.0.2.2.35.1 (2026.06.28)

New features

Description

  • Added free in-database inference for built-in models. Models can run inference directly in the database, with no token consumption and no additional charges.

Bug fixes

Description

  • Fixed an issue where, for INTERVAL partitioned tables, specifying ROW_FORMAT=COMPRESSED without explicitly setting KEY_BLOCK_SIZE caused the ROW_FORMAT attribute to be lost.

8.0.2.2.35 (2026.06.03)

New features

Description

  • Added support for parallel refresh of materialized views.

  • Introduced incremental refresh for materialized view, which enhances refresh performance compared to the full refresh method.

  • The new database and table restore workflow enables fast full data queries that complete in minutes, regardless of the amount of data being restored.

  • Added support for asynchronously cleaning up expired global secondary index (GSI) data left behind by DROP/TRUNCATE PARTITION operations.

  • Introduced the GDN multi-write edition, providing global multi-point write capabilities at the table level.

  • Added support for columnar execution plans to the ask_polar expression.

  • Vector retrieval for columnar index (IMCI) now has a dedicated concurrency control module that decouples it from the concurrency control of columnar index queries.

  • Upgraded vsag to the official 0.16 branch, adding parallel build capabilities for the HNSW algorithm and support for creating hgraph-based indexes.

  • Vector retrieval for columnar index (IMCI) now supports IVF and IVF PQ vector index types.

Enhancements

Description

  • Improved Hash Join performance for columnar index (IMCI) by storing intermediate join results in row format to reduce the performance overhead of data materialization.

  • Optimized the X-Engine storage engine by removing unnecessary implicit primary keys (Implicit PKs) to simplify the data update logic and in-memory data structures in the storage layer.

  • Optimized the table cache invalidation strategy for partitioned tables in X-Engine (High-Compression Engine) during add or drop partition operations to reduce the impact on queries.

  • Optimized the concurrent computation logic for vector index builds, allowing more threads to be used to accelerate index creation.

  • Fixed inaccurate adaptive rate limiting for DDL bulk load and improved the adaptive rate-limiting algorithm.

Bug fixes

Description

  • Fixed a crash that could occur during an incremental refresh of a materialized view on a hybrid partitioned table when reading partition metadata.

  • Fixed an issue where an online DDL operation failed on a table that contained an index on a virtual column.

  • Fixed an issue in the community edition of MySQL where purging binary logs at startup could result in an incorrect Previous_gtid for the global transaction identifier (GTID).

  • Fixed an issue where INSERT ON DUPLICATE KEY UPDATE could update the wrong row during concurrent inserts from multiple sessions into a table with an auto-increment column.

  • Fixed an issue where a columnar query using Hybrid Index Search with a LIMIT clause could fall back to row-store execution if the LIMIT OFFSET value was too large.

  • Fixed various incompatibility issues on multi-primary nodes when Parallel Parse is enabled.

  • Fixed a potential memory leak in VSAG-based HNSW and DiskANN indexes within the vector index of a columnar index (IMCI).

  • Fixed a cluster crash that could occur when a Hybrid Plan for a columnar index (IMCI) reclaimed a Read View.

  • Fixed a memory leak of approximately 626 KB that was caused by the buffer pool not being released in the initialization abort path when an InnoDB HA failover failed to start.

  • Fixed a memory out-of-bounds access issue caused by concurrent access between rollback segment (Rsegs) lock objects and the Redo log replay thread during InnoDB HA failovers, and a memory leak in the error branch for large records (big_rec) in the clustered index insertion path.

  • Fixed a memory leak in the sql_sharing and sql_sharing_proc modules of SQL Plan Management (SPM) where internal buffers of string objects were not properly released.

  • Fixed a use-after-free issue in the X-Engine storage engine that could occur if a background space reclamation task ran concurrently with a database instance shutdown.

  • Fixed an invalid memory free operation and an indirect memory leak in InnoDB caused by the LatchCounter incorrectly releasing an embedded counter object upon destruction.

  • Fixed a minor memory leak that occurred with every request in the ask_polar module because the request header linked list was not properly released after an HTTP request completed.

  • Fixed a use-after-free issue where the performance monitoring module (performance_schema) could access a stale pointer to a session thread (THD) during a concurrent scan after the thread had already released its resources.

  • Fixed multiple memory leaks in the extended statistics (polar_extend_stats) module. The issues were caused by improperly destroyed sampled cache data, a value-tuple buffer detached from memory management, and missing ownership in a filter-effect clone container.

  • Fixed a memory out-of-bounds access issue during instance shutdown. The issue occurred when a redo log synchronization thread accessed a freed resource because a synchronization object was destroyed during binlog cleanup before the thread had completely exited.

  • Fixed a stack overflow in the X-Engine storage engine. The issue occurred when a DDL operation on a partitioned table generated a full table name that exceeded the system's maximum length and was written to a fixed-size buffer.

  • Fixed an instance crash that occurred during a parallel refresh of a full refresh for materialized view in specific semijoin query scenarios.

  • Fixed a memory out-of-bounds access issue that occurred when a Prepared Statement was recompiled, and a table name pointer in a query hint still pointed to a freed memory area.

  • Fixed an issue where a LOAD DATA statement failed after attempting to import a NULL value into a NOT NULL column, but the session's field validation state was not reset, causing subsequent valid INSERT statements in the same session to incorrectly fail with a Column cannot be null error. As a temporary workaround, re-establish the connection.

  • Fixed an instance crash caused by a buffer overflow. The overflow occurred due to an out-of-bounds write while generating a warning message after an invalid date-time value was passed during the execution of a Prepared Statement.

  • Fixed a system crash that could occur in a parallel query when an ORDER BY clause referenced a constant alias expression.

  • Fixed a crash caused by incomplete copying of an internal data structure when the query optimizer pulled up a subquery (merged it into the outer query). Also fixed an issue where the table cache pointer was null or invalid.

  • Fixed an issue where a columnar index became invalid and unusable after a DDL operation that simultaneously added both a columnar index and a regular secondary index to a partitioned table.

  • Fixed a compatibility issue between PolarDB-specific ALTER syntax (such as for quickly converting a single table to a partitioned table) and DMS comments, which resolves DTS transmission issues between PolarDB instances.

  • Fixed a dangling pointer access issue caused by the PlanHintsStatement not being reset when a Prepared Statement was recompiled.

  • Fixed an incorrect string escaping issue that could occur when PolarDB AutoETL created a search view containing an ETL_UDF.

  • Fixed a memory issue that could occur on a read-only node (RO) when flushing the cache if the extended statistics feature was enabled.

  • Fixed a data write failure during an instance version upgrade caused by incompatible data types for the scan_cost, purge_cost, and purge_rows fields in the mysql.ttl_job_history system table.

  • Fixed an issue where the table row lock wait time for the X-Engine storage engine was not included in the lock wait statistics of the slow query log.

  • Fixed a memory issue on a standby HA node running as a replica, which could be caused by the log_allocater not being released in a timely manner.

  • Fixed an incorrect threshold calculation in columnar index (IMCI) when converting a statement with a multi-column (Row Expr) IN list into a semijoin.

  • Fixed a replication latency timeout on a columnar index (IMCI) read-only node that was caused by the Query Cache prematurely triggering an InnoDB strong consistency read wait.

  • Fixed a data anomaly caused by a lost Header Page Apply when Transparent Data Encryption (TDE) was used on a read-only node (RO) or a standby node.

  • Fixed an issue where the Thread Pool and Connection Control plugins were started simultaneously on new nodes due to incorrect parameter configuration. A conflict check will now be automatically performed at startup.

  • Fixed a buffer overflow and instance crash that could occur when querying a partitioned table using a secondary index on an integer field, if the first InnoDB partition of the table was a Partition Partial Index.

  • Fixed a crash in the community edition of MySQL caused by an exception when updating a spatial index that is a secondary index.

  • Fixed an issue where the results of the Orca DUMP command were not recognized by Redis versions earlier than 7.4.0.

  • Fixed an issue where the background dump task for a vector index in a columnar index (IMCI) was not terminated in a timely manner after the corresponding table or index was deleted.

8.0.2.2.34.2 (2026.05.07)

Bug fixes

Description

  • Added the mm_enable_wait_binlog_flush parameter. This allows a Multi-primary Cluster (Limitless) to wait for the binlog flush to complete, addressing potential data consistency issues caused by asynchronous binlog flushing.

  • Fixed a crash that occurred when dropping a CSV table with DROP TABLE in a Multi-primary Cluster (Limitless) that used the cold data archiving feature.

8.0.2.2.34.1 (2026.04.03)

Bug fixes

Description

  • Fixed an issue where a minor version upgrade to 8.0.2.2.34 would get stuck during the upgrade task flow due to a problem in the upgrade process.

8.0.2.2.34 (2026.03.26)

New features

Description

  • Added multiple index statistics sampling strategies that can be enabled via parameters.

  • Added support for global secondary index (GSI) to perform REBUILD PARTITION operations on partitioned tables.

  • The columnar index (IMCI) Hybrid Plan (including Hybrid Index Search and Hybrid Index Join) now supports the MPP execution mode.

  • Vector retrieval for columnar index (IMCI) now supports the DiskANN index type.

  • Added the parallel Copy DDL feature, which significantly improves the execution efficiency of COPY DDL operations.

  • Added the PolarSearch search view feature to enable auto-ETL from PolarDB for MySQL to PolarSearch, simplifying data synchronization.

  • Added the WITHOUT VALIDATION option for REORGANIZE PARTITION to support quickly changing RANGE partition boundaries. This is useful for routing new data to a new partition by modifying its boundary when an existing partition is nearly full.

    Note

    Limitation: A single DDL statement can only modify the boundary value of one partition and does not support changing the partition name.

  • Added the xengine_default_storage_table_format parameter, which allows you to specify the default table format when creating X-Engine (High-Compression Engine) tables.

  • Added support for offloading queries to a specified node for execution during a full refresh for materialized view.

  • Traditional InnoDB compressed tables with a BLOCK_SIZE of less than 4 are at risk of data corruption. The new polar_compressed_table_policy system variable has been added to control the compression policy for newly created tables.

    • NATIVE: Executes as is.

    • ADJUST_KEY_BLOCK_SIZE (default): Allows table creation and automatically corrects the KEY_BLOCK_SIZE if it is less than 4.

    • AUTO_CONVERT_ROW_FORMAT: Silently converts the table to the default row format.

    • REJECTED: Rejects the operation and returns an error.

    Note
    • This policy applies only to newly created compressed tables and does not affect existing compressed tables.

    • For clusters that run a kernel version earlier than 8.0.2.2.34, we recommend that you no longer create InnoDB compressed tables with a BLOCK_SIZE less than 4.

  • Added support for hybrid partitioned tables with primary keys, allowing partitions from X-Engine (High-Compression Engine) to be archived as OSS partitions.

  • Added a DEMAND mode for SQL Plan Management (SPM) that can be used to inject, capture, and manage execution plans.

  • Added support for dynamically enabling and disabling the memory pool for PolarDB Three-Layer Decoupling (CXL). This currently supports toggling the entire CXL memory on or off but does not yet support dynamically resizing the CXL memory pool.

  • You can now connect directly to Alibaba Cloud's Model Studio service platform by using the ask_polar expression.

  • Added support for using the adaptive selection of ordered indexes feature multiple times in a statement, and fixed an issue where adaptive ordering crashes in specific scenarios.

  • Added support for the LNNVL expression in both row-store and column-store executors.

Performance improvements

Description

  • Optimized the process of archiving partitions to an OSS partitioned table (cold data archiving). UPDATE and DELETE statements now automatically prune partitions being archived and cold data partitions in OSS, which minimizes the blocking of DML statements.

  • Improved the speed at which X-Engine (High-Compression Engine) restores metadata structures during a restart to reduce restart time.

Bug fixes

Description

  • Fixed an issue where the latest results were not immediately readable after a full refresh for materialized view was complete when the Query Cache was enabled.

  • Fixed an issue where the declared order of an ORDER BY clause was ignored in some scenarios. Also optimized predicate handling for Loose Index Scan (LIS) in grouped queries.

  • Fixed incorrect memory statistics in performance_schema when the thread_pool_enabled parameter was enabled.

  • Fixed an issue where occasional transaction loss for In-Memory Column Index (IMCI) under the transaction persistence feature of Seamless Switch led to data inconsistency between row and column stores.

  • Fixed an issue with the timestamp type in ORC format where the min/max values were calculated incorrectly by misaligning units and ignoring the nanosecond part.

  • Fixed an issue where the default value became invalid due to a memory exception when an instant add column operation that adds a column with a long string default value was converted to an asynchronous operation.

  • Fixed an issue where the incomplete implementation of cloning for Item_ref objects in the JPPD feature caused a subsequent crash.

  • Fixed an issue in columnar index (IMCI) where a filter condition was incorrectly pushed down past a LIMIT clause, which could lead to incorrect results.

  • Fixed a crash in the mysqlredolog tool that occurred when parsing specific MLOG_METADATA_CHANGE records.

  • Fixed an intermittent crash when JSON_TABLE was executed in the execution path of a trigger.

  • Fixed an error that could prevent statistics from being updated when collecting statistics for a columnar index (IMCI) with the low-cardinality column sampling enhancement (imci_stats_scan_max_ndv) enabled.

  • Fixed an issue where CCL was ineffective for the DELETE xx FROM ... syntax (the DELETE FROM ... syntax was unaffected).

  • Fixed an incorrect memory state on a read-only (RO) node when no extensions were initialized.

  • Fixed an issue where a Bloom filter did not take effect during queries when using cold data archiving with the filter specified for a date type.

  • Fixed a potential crash in Orca (Redis-compatible) that could occur when using a cursor (pcur) to clean expired keys. The mechanism has been replaced with a key-storage approach.

  • Fixed an issue where an int integer overflow in the In-Memory Column Index (IMCI) NCI file system after long-running operations caused out-of-bounds memory access and resulted in IMCI transaction replay getting stuck.

8.0.2.2.33.1 (2026.02.02)

Bug fixes

Description

8.0.2.2.33 (2026.01.28)

New features

Description

  • Added a native BSON data type. This type supports projection, update, query, and aggregation operations.

  • Added the ability to call a large language model (LLM) directly by using standard SQL statements.

  • Added parallel insert capabilities during the refresh process of a full refresh for materialized view. This parallel processing significantly improves the data refresh speed for materialized views.

  • Added the search view and ETL stored procedure feature, which automates data extraction, transformation, and loading (ETL) to improve the efficiency of data synchronization and aggregation.

  • Added configurable execution time windows for SQL-layer TTL. You can now specify start and end times for TTL tasks to automatically clean up expired data within a preset time frame.

  • X-Engine (High-Compression Engine) now supports the columnar storage format for low-cost storage and high-performance analytics.

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

  • X-Engine (High-Compression Engine) now supports the utf8_unicode_ci and utf8mb4_unicode_ci character sets and collations for index columns.

  • Added a node offloading feature for the full refresh of a full refresh for materialized view. You can now distribute refresh tasks to specific nodes based on cost to isolate resource impact.

  • Hybrid partitioned tables now support the columnar index (IMCI) feature. You can now manage columnar indexes on hybrid partitioned tables with combinations like InnoDB+X-Engine, InnoDB+ORC, and InnoDB+CSV by using the ALTER TABLE COMMENT statement. This allows you to use IMCI to accelerate analytical queries on these tables.

  • The Overview feature now supports the DATETIME data type. In addition to TIMESTAMP, you can now use columns of the DATETIME type to define automatic data expiration policies to meet a wider range of business scenarios.

  • Added support for Lua scripts in Orca (Redis-compatible) mode. Commands such as EVAL, EVALRO, and SCRIPTS are now supported.

  • Added an incremental build feature for vector index. This feature allows indexes to be updated in real time as data is written, significantly improving the efficiency of ingesting and updating large volumes of vector data.

  • Added a feature to eliminate redundant GROUP BY and ORDER BY clauses. This improves the performance of specific SQL queries by simplifying or removing redundant calculations.

Performance improvements

Description

  • Optimized physical replication efficiency by enabling parallel Redo log parsing on read-only nodes to reduce primary-replica lag.

  • Optimized the restart time for columnar index (IMCI). The Non-Clustered Index (NCI) module was updated to support the Checkpoint mechanism, which eliminates the step of fully rebuilding NCIs during the NCI loading phase.

  • Optimized the metadata management mechanism of X-Engine (High-Compression Engine). Periodic release of the manifest log and old versions of the manifest checkpoint prevents extra storage consumption caused by the continuous growth of metadata files.

  • Optimized the performance of partitioned vector retrieval for columnar index (IMCI). This optimization reuses distances calculated during the vector index search phase in the multi-way merge to avoid redundant calculations. Also fixed an issue where a condition pushdown for a columnar index (IMCI) could return incorrect results in ORDER BY LIMIT scenarios.

  • Optimized the query performance of columnar index (IMCI) for queries where the condition contains an IN-list with very long string values.

  • Optimized the query plan search process to accelerate the search for the join order of multiple tables, which reduces the overall optimization time for complex SQL queries.

  • Optimized the execution efficiency of grouped aggregation (HashGroupby). A vectorized hash table probing operation was introduced to improve grouped aggregation performance while slightly reducing memory consumption during computation.

  • Removed the limit on the number of partitions for a table.

  • Optimized the query execution strategy for columnar index (IMCI) by enabling adaptive grouped aggregation by default. This feature automatically selects the most efficient aggregation algorithm based on data distribution and query characteristics, improving the performance of analytical queries that contain a GROUP BY clause.

  • Optimized the execution efficiency of the Hash Join operator in columnar index (IMCI). This optimization improves performance for all queries that use Hash Join, with significant improvements for Semi Join scenarios.

  • Optimized the performance of the distributed memory pool by adding relevant parameters and monitoring items.

Bug fixes

Description

  • Fixed a crash that could occur in specific scenarios when a filter condition containing a trigger field was pushed down to a derived table.

  • Fixed an issue where condition pushdown optimization was ineffective because a variable assignment function was present in the query.

  • Fixed a crash that could occur with a global secondary index (GSI) in specific LIMIT OFFSET pushdown optimization scenarios.

  • Fixed a stability issue that could be triggered by improper internal metadata handling during the upgrade process for 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 in columnar index (IMCI) where the high-performance Hash Join operator could cause a loss of rows in the result set when processing a RIGHT JOIN with data spilled to disk.

  • Fixed a rare issue where replication could get stuck in a columnar index (IMCI) in scenarios with frequent DDL operations, leading to data latency on the node.

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

  • Fixed a crash that could occur in a Multi-primary Cluster (Limitless) when executing DDL operations related to a global secondary index (GSI), due to conflicts with background threads.

  • Fixed an issue in the Orca (Redis-compatible) mode where data table metadata might not be updated in a timely manner.

  • Fixed a potential SQL parsing error that could occur when using dbms_outln.add_optimizer_outline_sharding to create a Statement Outline for sharded tables.

  • Fixed an issue where PCUs for a low-specification, no-load serverless node with columnar index (IMCI) would repeatedly scale up and down.

  • Fixed a potential out-of-memory (OOM) issue in the serverless feature for columnar index (IMCI) that could occur when resources were rapidly scaled up and then scaled back down, because the cache quota was not reclaimed in a timely manner.

  • Fixed a crash caused by incorrect cost estimation for a large number of constant tables in Elastic Parallel Query.

  • Fixed a crash that could occur when defining a partition range for an Interval partitioned table if a time type was specified.

  • Fixed an issue where a columnar index (IMCI) could not execute SQL statements that contained a system variable in the query condition.

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

  • Fixed an issue where memory usage could continuously increase if a DDL operation was performed during incremental log application.

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

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

2025

8.0.2.2.32.1 (2025-12-25)

Bug fixes

Description

The Orca (Redis protocol-compatible) restore command now preserves the TTL when restoring an expired hash field.

8.0.2.2.32 (2025-12-22)

New features

Description

  • Added support for condition pushdown to a derived table that contains a UNION clause.

  • Introduced a cost-based OR-expansion query rewrite that intelligently converts OR or IN expressions into UNION ALL, improving performance in specific scenarios through better index utilization.

  • Added online DDL support for vector indexes, enabling you to create, drop, modify, and rebuild them without changing the IMCI status.

  • Transparent Data Encryption (TDE) supports the SM4 algorithm for enhanced data encryption.

  • Global read-only column-store nodes support partitioned tables in a multi-primary cluster.

  • Added adaptive execution optimization for vector retrieval, which dynamically selects an execution mode (prefilter, postfilter, or inline filter).

  • Added the snapshot update feature, a PostgreSQL-compatible update mechanism that optimizes UPDATE performance in specific scenarios. This feature is controlled by the innodb_polar_use_snapshot_update parameter and can be enabled at the session or global level.

  • IMCI supports a full-text index to improve fuzzy text search and analytics performance.

  • DLM supports archiving partitioned tables with an IMCI to an OSS external table, ensuring compatibility between the two features.

  • Added monitoring metrics for Orca (Redis-compatible) to enhance its observability, including active connections, new connections, memory usage, and the number of pending tasks.

Performance optimizations

Description

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

  • Optimized the predicate deduction (deduce_predicates) logic in the query optimizer to more effectively identify static conditions on partition keys, enabling more aggressive partition pruning and improving query efficiency.

Bug fixes

Description

  • Fixed an issue where executing a DDL operation such as RENAME TABLE on a table with a view after a High Availability (HA) failover could result in a Duplicate entry error.

  • Fixed an issue where database and table recovery failed to restore a table if its backup contained a column dropped by using instant drop column.

  • Fixed an issue in a multi-primary cluster where deleting a read-write node was interrupted after an access point switchover.

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

  • Fixed an issue in Orca where writing immediately after deleting a key could cause inaccurate dbsize statistics.

  • Fixed an issue where connections could hang after a DDL operation completed if you dynamically disabled the thread pool by using the loose_thread_pool_enabled parameter.

  • Fixed an issue where IMCI did not support JSON TABLE when using the ETL feature, and clarified the error message for insufficient memory during IMCI queries.

  • Fixed an issue that could prevent a query from running on an IMCI if the SELECT statement contained both an IN list and an aggregate function with DISTINCT.

  • Fixed an issue in IMCI that could cause inaccurate multiplication results when processing DECIMAL data with more than 16 digits after the decimal point.

  • Fixed an issue with the IMCI Serverless feature where proactive scale-out was continuously triggered due to an abnormal index status.

  • Fixed an issue where a standby node could hang during the recovery phase in Point-in-Time Recovery (PITR) and database and table recovery scenarios.

  • Fixed an issue that could cause existing Binlog dump connections to hang and affect Binlog cleanup after a read-only node was promoted to the primary node.

  • Fixed an issue where the reported delay in seconds (delay_second) for a standby node was inaccurate when you ran the SHOW POLAR STANDBYS command on a read-write node.

  • Fixed an issue where the query optimizer's column pruning feature could cause the process to crash by incorrectly removing a subquery that was referenced by multiple projection columns.

  • Fixed an issue where inaccurate statistics for non-BIGINT integer columns prevented the query optimizer from generating an optimal execution plan.

  • Fixed an issue where querying JSON data of a specific length returned the 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 an IMCI.

  • Fixed an issue where a newly registered read-only node could report an SDI modification failure when executing DDL operations after being promoted to the primary node.

8.0.2.2.31.2 (2025-11-19)

New features

Description

Added a dynamic toggle to enable cursor position adjustment for read-only nodes at runtime.

Bug fixes

Description

Fixed a potential cluster crash during failover under high-concurrency write workloads when no initialization extensions were enabled.

8.0.2.2.31.1 (2025.10.15)

Bug fix

Description

Fixed an issue when using the Hybrid Plan to accelerate wide table queries with an In-Memory Column Index (IMCI), where a query optimization (converting the AVG function to SUM/COUNT) caused an unexpected fallback to row-store execution.

8.0.2.2.31 (2025-09-24)

New features

Description

  • Added an option to configure whether to display the display width attribute for integer fields (such as BIGINT, INT, MEDIUMINT, SMALLINT, and TINYINT) when the ZEROFILL attribute is not defined.

  • Introduced concurrency management and status queries for background vector index creation in IMCI. This enables effective resource control and real-time progress tracking when creating large-scale vector indexes.

  • Added the CXL memory extension feature, which uses a Compute Express Link (CXL) memory pool to dynamically increase a cluster's buffer pool capacity, improving large-scale data processing performance and system throughput.

  • Added two FAISS-based vector index types to IMCI: HNSW and HNSWPQ. These index types support high-performance, low-memory approximate nearest neighbor (ANN) searches for high-dimensional vectors.

  • Introduced an inline filter mode for vector retrieval in IMCI, which fuses scalar filtering and vector retrieval into a single computational operator.

  • Added support for Oracle-compatible synonyms (SYNONYM). You can now create synonyms for tables or views and operate on them directly.

  • Expanded the subpartitioning feature to support RANGE COLUMNS, LIST COLUMNS, and LIST COLUMNS+DEFAULT partition types, as well as various subpartition key columns such as DATE, DATETIME, and CHAR. A partitioned table now supports any combination of all first-level and second-level partition types, and applies partition pruning optimization to relevant queries.

  • Added support for full materialized views with IMCI-accelerated refreshes. This provides pre-computed result sets for complex queries, significantly improving the response time for frequent aggregation or join queries.

  • Added the embedding expression to convert input text into vectors in real time. You can also use materialized virtual columns to automatically convert text to vectors and store them when data is inserted.

  • Added alias support for the INSERT ... VALUES/SET ... ON DUPLICATE KEY UPDATE syntax. You can now reference the new data from the INSERT part by its alias in the UPDATE clause, which makes the SQL logic clearer and more concise.

  • Expanded the automatic cold data archiving feature to support 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 that use an isolation level other than Read Uncommitted (RU) on non-IMCI nodes. Enabling the imci_ignore_unsupported_isolation_level parameter forwards requests from these sessions to column store nodes, allowing them to use IMCI acceleration.

  • Added the json_arrayagg expression, which aggregates multi-row results into a JSON array in IMCI queries to enhance the processing capabilities for JSON-formatted data.

  • Integrated Resource Control with the Orca feature (Redis-compatible). This allows you to manage the overall CPU resource utilization of the Orca system by using a parameter, which defaults to 100%.

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

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

  • Added the rds_max_tmp_disk_space parameter to control the total local disk space used by temporary tables from large queries, preventing the disk from filling up.

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

  • The Data Cleanup (TTL) feature now supports COPY-like DDL syntax. Previously, only INPLACE-like DDL was supported.

Performance optimizations

Description

  • Optimized the cost estimation model for the HTAP automatic request distribution solution. The model can now perform calculations based on serial execution overhead instead of relying on the cost after parallel optimization, allowing for better execution plan choices in specific scenarios.

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

  • The Statement Outline feature can now record the original SQL statement. This allows you to regenerate an Outline based on the original SQL in the current environment, which improves 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 approximately 10%.

  • Optimized query performance for partitioned tables. Fixed an issue where secondary partition pruning was not triggered by new constant conditions for partition keys generated during the query optimization phase (such as MEP). This update also enables partition pruning for the inner tables of nested outer join operations.

  • Optimized the processing logic for union queries with a large number of query blocks, resolving an issue where the find_cloned_select_lex function consumed excessive time and fully loaded a single CPU core.

  • Optimized the metadata loading process when a column store node restarts in large-scale 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 no longer varies by node role, which simplifies file management during a high-availability switchover.

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

Bug fixes

Description

  • Fixed an issue where a parallel query could cause a cluster to crash in specific condition pushdown scenarios.

  • Fixed an issue where data inconsistency could occur on a read-only node in some scenarios when reading large JSON fields or frequently partially updated JSON fields.

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

  • Fixed abnormal storage space growth caused by vector index data files not being cleaned up promptly.

  • Fixed a memory error that occurred during the row-store execution phase of aggregate function queries. The error was caused by an incorrect 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 with listing OSS files using the dbms_oss.list_table_file command.

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

  • Fixed a cluster crash that could occur during 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 not find some records during B-tree index structure adjustments under high write pressure.

  • Fixed an issue where a cluster could become unstable when adding an IMCI to a table that has no primary key but has a UNIQUE KEY.

  • Lowered the permission requirements for archiving partitioned table data to an OSS external table by using dbms_dlm.archive_partition2table. Now, only INSERT, CREATE, DROP, and ALTER permissions are required.

  • Fixed a cluster crash in Orca (Redis-compatible) that occurred when the LPOS command was used and the value of the MAXLEN option exceeded the length of the list.

  • Fixed a memory leak that could occur when reading data from a cold storage table in ORC format.

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

  • Fixed an issue where query performance could degrade in Multi-master Cluster (Limitless) Edition under high pressure.

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

  • Fixed an issue where a gap appeared in gtid_executed after a CREATE ... IF NOT EXISTS statement was executed on an aggregation node in a Multi-master Cluster (Limitless) Edition.

  • Fixed an issue where a cluster could crash during a high-availability switchover between primary and replica nodes in a Multi-master Cluster (Limitless) Edition.

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

  • Fixed a cluster crash caused by the result_field of Item_func_conv_charset not being cleared after a SQL statement ended, which led to an error on reuse.

  • Fixed an issue in a Multi-master Cluster (Limitless) Edition where a read/write (RW) node could crash if a DML operation was performed on an IMCI table after a local read-only node was hot-swapped to an RW node.

  • Fixed an issue caused by dangling pointer access when an index was released during an INSTANT DDL operation on an IMCI.

  • Fixed an issue where a parallel query could cause a cluster to crash in scenarios with multi-level nested derived tables.

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

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

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

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

  • Fixed an issue where column pruning optimization could cause a cluster to crash when a query contained a recursive Common Table Expression (CTE).

  • Fixed an issue where the Query Cache could access invalid memory under multi-threaded concurrent access.

  • Fixed an issue in Orca (Redis-compatible) where a cluster could crash when setting an expiration time on a hash (Hash) that contained duplicate fields.

  • Fixed an issue in a Multi-master Cluster (Limitless) Edition where the 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 an issue where the execution results of the IMCI json_valid function could be inconsistent between the row store and column store when the first parameter is of the varchar type.

  • 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 strategy) when parallel query was enabled.

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

  • Fixed an issue where a cluster could occasionally crash after adaptive aggregation was enabled 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 a read-only column store node could experience replication latency 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 the deltastore executes a swap task, due to the pax page length overflowing uint32 or encountering a null pointer.

  • 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 bug that could cause the background purge process to corrupt a secondary index during a transaction rollback.

8.0.2.2.30.1 (July 3, 2025)

Performance optimizations

Description

  • Optimized memory and storage usage of vector indexes in IMCI.

  • Optimized window function execution in IMCI by merging window functions that share the same PARTITION BY definition.

Bug fixes

Description

  • Fixed a potential crash during cost-based query rewrite for SQL statements that contain both an inline view and a scalar subquery.

  • Fixed an occasional index join error in Hybrid Plan mode that occurred when IMCI queried partitioned tables.

  • Fixed an issue that prevented some statements in prepare statement mode from being correctly routed to column store nodes.

  • Fixed a cluster crash caused by a null pointer access, which occurred when the IMCI Delta module missed a check for rolled-back rows during serialization.

  • Fixed an issue that prevented some queries from being pushed down to the columnstore index when the imci_implicit_orderby_rollup parameter was enabled.

  • Fixed an issue that prevented queries with overly long IN-LISTs from using the columnstore index.

8.0.2.2.30 (July 1, 2025)

New features

Description

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

  • Added a feature that deconstructs query expressions with multi-value conditions (IN-LIST) or logical disjunctions (OR) into a UNION ALL operation of multiple independent subqueries to generate index access plans more efficiently.

  • The DELETE statement now supports index hints, enabling you to use the USE INDEX and IGNORE INDEX syntax to specify a particular index. You can enable this feature by using the delete_enable_index_hint parameter.

  • Lateral derived tables now support parallel execution and can be pushed down to workers in parallel query scenarios.

  • IMCI now supports subqueries that use ROLLUP and include aggregate functions in the projection columns.

  • IMCI now includes the vector index feature, which supports approximate nearest neighbor (ANN) search.

Performance optimizations

Description

  • Improved the asynchronous operation and flow control 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 the process of building hash tables and their implementation for IMCI HASH JOIN, which significantly improves the performance of IMCI HASH JOIN.

Bug fixes

Description

  • Fixed a crash that occurred in a parallel query if a constant table was an outer table in a LEFT JOIN with multiple inner tables.

  • Fixed an issue where the SCAN command of the Orca feature could fail to return a result, remaining in a searching state.

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

  • Fixed a crash caused by the base table and the dependent table not being pushed down to the same shard for execution when a default value references a table.

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

  • Fixed a cluster crash triggered when you update a NULL value to an empty string in a table that uses the REDUNDANT row format and contains an instant-add column.

  • Fixed an issue with the return value of the DISTANCE expression when calculating DOT similarity in IMCI.

  • 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 that use 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 crash caused by an ORDER BY clause being merged into the outer query in a materialized view.

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

  • Fixed two issues in Data Lifecycle Management (DLM): an archiving exception that left residual temporary tables, for which error logging is now added; and 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 after a partitioned table was renamed by using a RENAME DDL statement, the table_name cache in the INFORMATION_SCHEMA table for IMCI was not updated.

  • Fixed an issue in the prepare execute implementation where the collation of string types was incorrectly affected by the character_set_client setting.

  • Fixed an assertion error that was triggered by an update task based on old IMCI information after an INSTANT DDL statement was committed.

  • Fixed a crash that occurred in high-concurrency scenarios when both Elastic Parallel Query and performance_schema were enabled.

  • Fixed an issue where the MySQL Community Edition did not include the LIMIT keyword in query performance cost calculations.

  • Fixed an occasional inaccurate timing issue when profiling IMCI queries by using imci_analyze_query.

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

  • Fixed a crash in the background thread that collects IMCI statistics for the hybrid optimizer. This bug had a higher probability of being triggered when a virtual column was present.

  • Fixed an issue that could occur when accessing a partitioned table after it was restored by using the database and table restoration feature, if the table included an INSTANT ADD COLUMN and had 10 or more partitions.

  • Fixed an out-of-memory error that could occur in IMCI when a GROUP BY operation was performed on variable-length strings with a large amount of data.

  • Fixed an issue where the show binlog events command failed on a read-only node with 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 in the IMCI internal thread pool caused by elastic scale-in, which occurred when the PCU of a serverless cluster was adjusted.

  • Fixed an issue in IMCI where a DROP INDEX operation during the loading of a Non-Clustered Index (NCI) could block the loading process.

  • Fixed an issue where a crash occurred before the DDL log for a partition swap was written. This issue caused the cluster's crash recovery process to skip the DDL log, resulting in a cluster anomaly.

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

8.0.2.2.29.2 (June 6, 2025)

Bug fixes

Description

  • Fixed a crash in IMCI Hybrid Plans that occurred when using an index join with an anti semi join and a post filter.

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

  • Fixed a crash during data cleanup (TTL) that was caused by a deadlock triggering a transaction rollback.

  • Fixed a potential crash during shutdown that occurred when a data cleanup (TTL) thread failed to release a transaction object.

  • Fixed an Out of Memory (OOM) error that occurred during IMCI sort compaction.

8.0.2.2.29.1 (May 14, 2025)

Bug fixes

Description

Fixed a memory leak in IMCI caused by the elastic scale-in of the internal thread pool during the dynamic adjustment of the PolarDB Capacity Unit (PCU) for a serverless cluster.

8.0.2.2.29 (May 8, 2025)

New features

Description

  • Added memory reclamation for the parse buffer (parse buf) on serverless read-only (RO) nodes to reduce memory usage.

  • Window functions now support the frame clause, including the Rows frame and the default Range frame.

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

  • Added pruner statistics. You can now query the INFORMATION_SCHEMA.IMCI_SQL_PROFILING view to check the data block pruning status for 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 a delete cold data operation.

  • Introduced the Range-prefix Skip Scan mechanism to expand the applicability of Skip Scan and improve the performance of complex queries.

  • The Hybrid Plan feature in IMCI now supports tables that do not have an explicitly defined primary key.

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

  • Added the oss_orc_read_buffer_size parameter to dynamically configure the read buffer size for ORCReader.

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

  • In IMCI, the Index Join in a Hybrid Plan now supports Semi Join and Anti Semi Join modes.

Performance optimizations

Description

  • Improved the performance of IN-list queries on IMCI.

  • Resolved performance degradation when using the max_execution_time parameter under high-concurrency workloads.

  • Orca (Redis-compatible) now supports setting a TTL for individual fields within a HASH data type.

  • Adjusted the scope of high-performance global consistency variables from the system level to the connection level, allowing them to be configured in the database proxy.

  • Optimized the Hash Groupby mechanism in IMCI to adaptively select partitioning strategies and algorithms based on data distribution, improving query performance.

Bug fixes

Description

  • Fixed an issue where the ALTER TABLE command could fail and cause a database restart.

  • Fixed an issue with the snapshot feature on column store nodes that could cause monitoring to freeze due to long lock waits.

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

  • Fixed an issue where a parallel query with an IS NULL condition could return incorrect results.

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

  • Fixed a rare issue where memory blocks accumulated on an ImciFollower in a multi-node shared architecture of IMCI.

  • Fixed an issue where executing a DROP PARTITION statement could cause a crash if an SQL statement held a table-level metadata lock (MDL) but not a partition-level one.

  • Fixed an issue in X-Engine (High-Compression Engine) where the Index_merge path failed to correctly obtain Instant_ddl metadata, which caused data query exceptions.

  • Fixed an issue where the Mixoutput of hybrid materialization in IMCI failed to perform time zone conversion when reading timestamp data.

  • Fixed an issue where a column store node occasionally accessed pre-DDL cached data after a DDL operation.

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

  • Fixed a crash that could occur when the thread_pool_size parameter was dynamically modified while the asynchronous execution feature was enabled.

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

  • Fixed string-to-vector type conversion issues by allowing the use of multiple whitespace characters.

  • Fixed an issue that prevented an IMCI serverless cluster from scaling in when its primary node was large.

  • Fixed an issue in IMCI where the imci_implicit_orderby_rollup switch failed to control result sorting for queries using ROLLUP.

  • Fixed an issue that could cause the database to crash if a SQL query included a GROUP BY WITH ROLLUP clause, the GROUP BY column referenced a column in a derived table, and the optimizer flattened that derived table.

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

  • Fixed a potential crash on a secondary node in a multi-master cluster when switching the database or object endpoint.

  • Fixed an issue that prevented dynamic modification of the innodb_log_buffer_size parameter after the innodb_polar_log_rdma_transfer parameter was dynamically disabled.

  • Fixed an issue that prevented queries containing a correlated subquery with LIMIT 1 from executing on IMCI.

  • Fixed a potential corruption issue with a secondary index created on a virtual column.

8.0.2.2.28 (March 12, 2025)

New features

Description

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

  • Added a cost threshold parameter to dynamically control adaptive request distribution between row and column stores. This parameter is distinct from the general 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 supports asynchronous execution, including asynchronous handling of lock waits and log flushes.

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

  • Added support for calling Outline with the explain analyze statement, aligning its functionality with the explain statement and improving query optimization.

  • 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 the In-Memory Column Index (IMCI) query priority scheduling feature, which allows you to assign priorities to IMCI queries to optimize query execution efficiency.

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

Performance optimizations

Description

  • Optimized the partition cost model. For equality and IN condition queries on indexes that do not contain a partition key, a partition count factor is included in the cost estimation to improve its accuracy.

  • Optimized the algorithm selection logic to allow some correlated subqueries to use an efficient hash join.

  • Improved how the IMCI optimizer handles complex IN and EXISTS subqueries, significantly enhancing query efficiency and execution performance.

  • Multi-master Cluster (Limitless) Edition supports Partition Redo and asynchronous Redo mechanisms, increasing system throughput in gaming scenarios to better handle high-concurrency demands.

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

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

  • Optimized the logic for multi-level nested IN subqueries, so that they can now be accelerated by the columnstore index.

Bug fixes

Description

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

  • Fixed an incompatibility with the database and table restoration feature that occurred because the loose_innodb_initialize_in_space_extend parameter for file space extension could not be set to 0.

  • Fixed a limitation where the Hybrid Plan in IMCI did not support Semi Join and Anti Semi Join modes in its Index Join mechanism.

  • Fixed a system crash that could occur when using the TempTable engine with a common table expression (CTE) that is referenced multiple times.

  • Fixed a query exception that could be triggered when all data in a stored data block was identical.

  • Fixed an issue where a read-only node did not 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 crash that could occur when disabling Hybrid Plan in IMCI while it was running.

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

  • Fixed a rare issue where, with the non-blocking DDL feature enabled, a statement failed to exit normally if its corresponding DDL connection was terminated.

  • Fixed an inefficiency in the data lifecycle management (DLM) partition archiving process by using a partition-level metadata lock (MDL) instead of a table-level one, which reduces lock granularity and improves system concurrency and 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.

  • Fixed a parallel query cluster crash that was caused by a sort operation after a materialized table merge.

  • Fixed a potential crash that occurred when the materialized table 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 that could be triggered when accessing statistics tables in a Multi-master Cluster (Limitless) Edition.

  • 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) Edition scenarios where the online DDL process for the columnstore index was incompatible with the Logical Log Sequence Number (LLSN) logic, causing some columnstore redo log replays to be missed.

  • Fixed a tablespace leak in X-Engine that occurred when recycling old tablespaces after a DDL change.

  • Fixed a crash that was caused by executing an explain for connection statement during a query on an IMCI partitioned table.

  • Fixed an issue where IMCI 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 the query did not use a case-sensitive string comparison function.

  • Fixed an issue where a X-Engine read-only node unexpectedly cleared data block metadata on 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 a potential data redundancy issue in the column index that could occur during crash recovery if a column store node cluster restarted during a large transaction.

  • Fixed a TTL syntax issue by changing TTL to a non-reserved keyword to ensure compatibility with the community version.

8.0.2.2.27.1 (January 14, 2025)

New features

Description

Bug fixes

Description

Fixed an issue where reading large JSON or GIS objects through IMCI would occasionally fail.

2024

8.0.2.2.27 (December 28, 2024)

New features

Description

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

  • Added support for REORGANIZE PARTITION on LIST DEFAULT HASH partitions. You can now 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 wide tables by extending the maximum number of columns to 10,000 for tables that use X-Engine.

  • 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 batch-add a columnstore index to all tables in a database.

  • Enhanced Outline to support partitioned tables. A single Outline can now match all statements that share the same template across different partitioned tables.

  • Introduced statistics collection on non-indexed columns and a unified management method for extended statistics.

  • Added the ability to dynamically adjust Order Index selection during execution based on runtime conditions.

Performance optimizations

Description

  • Optimized the startup speed of read-only column store nodes. The column store engine can now start independently from a columnstore snapshot offset.

  • Optimized the startup time of column store nodes in scenarios with a large number of tables.

  • Enhanced Orca to support specifying a username and password in the Redis AUTH and HELLO commands by using the username:password syntax.

  • Optimized DDL operations for the X-Engine storage engine. The system now automatically enables the pre-commit feature for X-Engine.

  • Optimized the lock granularity for the sorted set data type in Orca. Lock checks on a secondary index now use only flags.

  • Optimized the code for thread creation and destruction in logical readahead, and simplified the memory check logic.

Bug fixes

Description

  • Fixed an issue where DDL statements on tables with views might report an error or not take effect after an 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 for a partitioned table could occasionally roll back, causing duplicate key errors on INSERT operations.

  • Fixed the session-level binlog_rows_query_log_events permission to support SQL backup and rollback by using 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 a subquery rewrite overflow, caused by insufficient base_ref_items space after the win magic switch was enabled, led to a process crash.

  • Fixed an expression evaluation error that occurred when an IN-list that contained null values was converted to a JOIN result set.

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

  • Fixed an issue that could cause incorrect results when a query contained lateral derived tables (LDTs).

  • Fixed issues in Orca related to the Redis transaction model, improving support for 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 the official Redis implementation.

  • Fixed a process crash that could occur when the SUBSTRING_INDEX expression processed an empty string from GROUP_CONCAT if the separator length was greater than 1.

  • Fixed a process crash caused by the CAST(REGEXP_SUBSTR(...)) AS DECIMAL statement.

  • Fixed an issue where data was not validated when a DDL statement was used to change the dimension of a VECTOR type.

  • 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 where duplicate data appeared in a primary key index when online partition maintenance (MDL) was used.

  • Fixed issues related to IMCI Serverless, including compatibility problems with internal memory elasticity and abnormal scaling behavior.

  • Fixed an issue where residual metadata could remain if the ALTER TABLE DROP statement was used to delete multiple full-text indexes (FTS) at the same time.

  • Fixed an issue where the uniqueness of index values was not leveraged to improve query performance.

  • Fixed a cluster crash that could occur in extreme scenarios when DML operations were performed on a table with an AUTO_INCREMENT column after online partition maintenance (MDL) was enabled.

  • Fixed a potential cluster crash that could occur when a multi-value index was selected for a multi-range read (MRR) operation.

  • Fixed an issue where the database was not locked when Orca executes administrative commands, such as ORCA_OPTIMIZE, AUTH, and ACL.

  • Fixed an issue where using a parallel query could lead to incorrect results when the query involved BLOB data.

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

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

  • Fixed a cluster crash that was caused by a memory issue during DDL operations on a table that contained BLOB fields.

  • Fixed an issue that prevented the online rebuilding of a columnstore index (IMCI), thereby improving its availability.

8.0.2.2.26.1 (November 21, 2024)

Bug fixes

Description

Fixed a bug where an INSERT ... ON DUPLICATE KEY UPDATE statement would cause a table's auto-increment value to roll back after an RO node 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 it covers the value range of each column. This improves the accuracy of the optimizer's cost estimation.

  • Optimized the serverless process for column store nodes.

    A new column store node now serves requests only after its indexes are ready. This prevents slow queries caused by SQL statements being routed to the new node and running row store plans before the indexes are fully loaded.

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

Bug fixes

Description

  • Fixed an issue that caused incorrect result sets when merging IN keywords in a nested subquery.

  • Fixed a crash caused by a correlated subquery that used a nested window function.

  • Fixed a crash during migration that was caused by a concurrency issue between high-frequency 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 all data in a table was cleared.

  • Fixed an IMCI fallback to the row store when processing an expression that contained multiple subqueries with SUM.

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

  • Fixed a system crash during query transformation that occurred when the number of tables exceeded 61.

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

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

  • Fixed an issue that caused the new database and table recovery workflow to be interrupted after multiple recovery rounds on the same table.

  • Fixed an issue that prevented online IMCI rebuilds, which made the columnstore index unavailable.

  • Fixed a rare issue where a query failed because the column store executor accessed invalid data when processing string values.

  • Fixed performance degradation caused by using the Index_merge optimization for UPDATE statements.

  • Fixed an issue triggered when an Index JOIN in IMCI used a constant as a JOIN condition.

  • Fixed an issue where table function condition pushdown caused execution 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 caused incorrect results in an InnoDB temporary table update scenario.

  • Fixed an issue where a conflict between advanced transaction splitting in Proxy and Fast Query Cache affected the result set.

  • Fixed incorrect parallel query results that occurred when the query contained a constant table.

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

  • Fixed an issue that caused an RO node to get stuck during the HA phase, resulting in prolonged HA switchover times.

8.0.2.2.25.2 (August 13, 2024)

Bug fixes

Description

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

8.0.2.2.25.1 (August 10, 2024)

Bug fix

Description

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

8.0.2.2.25 (August 8, 2024)

New features

Description

  • Added support for the JSON_VALUE() function to simplify creating indexes on JSON columns.

  • Added support for continuous data modification during Copy DDL execution.

  • Added support for pushing down JOIN conditions to their corresponding views.

  • IMCI now supports an index join based on the Hybrid Plan, enabling the use of InnoDB indexes for JOIN operations.

  • Added support for directly accessing data tables on AI nodes through federated external tables.

  • The OSS OUTFILE feature now supports parallel exports to OSS.

  • Added support for high-priority DDLs to ensure successful execution.

  • Added support for locking archived tables.

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

  • Added inner join and semi-join elimination.

    Enhanced the outer join elimination feature and expanded its support to more scenarios.

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

  • The Hybrid Plan in IMCI now supports partitioned tables, virtual columns, and columns with ENUM, SET, and GIS data 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 can now synchronously generate OSS_FILE_FILTER query acceleration data.

Performance optimizations

Description

  • Enhanced PolarDB for MySQL 8.0.1 and later to display outline call information in EXPLAIN output.

  • Enhanced the ORDER BY LIMIT pushdown feature for PolarDB for MySQL to support joined tables.

  • Enabled dynamic adjustment of PolarDB IO Threads without requiring a restart.

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

  • Improved the DML transaction replay performance in IMCI.

  • Optimized the IMCI bloom filter hash algorithm and reduced the build overhead by using string prefixes to create the bloom filter.

  • Improved the performance of simulated AIO.

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

  • Enhanced the non-blocking DDL feature to support more DDL statements.

  • Optimized the memory usage of query metadata in IMCI.

  • Optimized the Polarfs transaction processing thread priority to improve PolarDB for MySQL DDL performance.

  • Optimized file system performance and stability during DDL operations that frequently create and delete table files.

Bug fixes

Description

  • Fixed a crash caused by a hash self-join on a Common Table Expression (CTE) within a parallel query.

  • Fixed an out-of-memory (OOM) error that occurred during IMCI execution when a query contained an excessive number of UNION ALL clauses.

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

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

  • Fixed an issue where removing an RO node could block the monitoring connection for a period of time when innodb_polar_log_rdma_transfer is enabled.

  • Fixed an incompatibility issue between certain implicit conversions in IMCI and the CASE statement in MySQL.

  • Fixed an issue where archiving partitioned tables to OSS external tables did not support a global secondary index (GSI).

  • Fixed incorrect identification of connection errors in acknowledgment (ACK) packets from a secondary node.

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

  • Fixed an issue where the view merging process failed to remove unnecessary subqueries.

  • Fixed an issue in the conversion of inlist to JOIN where an inconsistent inlist type caused an inconsistent result set.

  • Fixed an issue where a query rewrite could not read data from a single-row subquery when using index_merge.

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

  • Fixed an issue where query rewrite would crash 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 issue between the global consistency high-performance mode (SCC) Log RDMA feature 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 underestimation of the REF or MULTI_RANGE access cost for secondary indexes that did not include the partition key in a UCI partitioned table.

  • Fixed an issue that caused an unexpected loss of precision for double value in JSON during the parsing phase.

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

  • Fixed a crash caused by the interaction between thederived merge query rewrite and the scalar subquery unnesting rule.

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

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

  • Fixed an issue that prevented cold data archiving for InnoDB tables with a function index.

  • Fixed an issue where an incorrect delimiter for the optimizer_switch and parallel_query_switch values triggered an error instead of a warning.

  • Disabled the index merge intersection access path for DML statements by default to improve performance and prevent deadlocks.

  • Fixed an issue where cardinality estimation errors prevented the optimizer from selecting the optimal JOIN ORDER.

  • Fixed an error that occurred when a CREATE TEMPORARY TABLE ... SELECT statement created a column with the column-store attribute.

  • Fixed a potential assertion failure during table optimization.

  • Fixed an issue with inaccurate query cache results caused by comparing time and datetime during single-node and multi-node parallel execution.

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

  • Fixed an underestimation of the cost for primary key-based point and range queries on UCI partitioned tables.

8.0.2.2.24 (June 21, 2024)

Performance optimizations

Description

  • Optimized the metadata memory used for queries on the In-Memory Column Index (IMCI).

  • Reduced the memory footprint of the IMCI optimizer in high-concurrency query scenarios.

Bug fixes

Description

  • Fixed an error that occurred when creating a GSI on an empty table with parallel DDL.

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

  • Fixed an issue where the number of scanned rows for derived tables was not recorded during audit and slow query log scans.

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

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

  • Fixed incorrect result sets caused by improperly collapsed subqueries.

  • Fixed an issue where the ADD COLUMN operation could not be performed on a partitioned table with subpartitions after the kernel version was upgraded from 8.0.1 to 8.0.2.

  • Fixed a parallel query bug that could cause a cluster crash when the predicate contained a DEFAULT expression.

  • Fixed excessive permissions used during DLM policy execution.

  • Fixed a bug that caused archiving operations to fail on an archived table with a descending index.

  • Fixed a bug that prevented the reclamation of Blob space from the original record when updating a Blob column.

  • Fixed a bug that prevented the use of IMCI due to inaccurate cardinality estimation when a BIGINT column with large values was used as a JOIN condition.

  • Fixed an inaccuracy in IMCI partitioned table statistics that occurred because only some partitions were sampled during updates.

  • Fixed a bug where useless subqueries were not deleted during the view merging process.

  • Fixed an issue where a parallel query could crash when a CTE used as the right table in a LEFT JOIN is eliminated.

  • Fixed a bug where the transaction ID for read-write transactions in SQL Explorer could 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 records the number of rows returned by a cache-hit query in the audit log.

Bug fixes

Description

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

  • Fixed a bug that caused queries to return no data when Limit Offset pushdown was used with an equality condition on a secondary index and an IN list condition on the primary key.

  • Comparisons between FLOAT and INT types now return correct results.

8.0.2.2.23 (May 8, 2024)

New features

Description

  • Added the limit_orderby_pushdown_mode parameter to control whether to push down LIMIT and ORDER BY to a derived table or to all branches of a UNION ALL. When the LIMIT value is less than that of the limit_pushdown_to_union_threshold parameter, LIMIT and ORDER BY are pushed down to all branches of the UNION ALL.

  • In-Memory Columnar Index (IMCI) now supports LEFT JOIN based on TopK pushdown.

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

  • The optimizer can now eliminate redundant DISTINCT operators from query statements to improve execution speed.

Performance optimizations

Description

  • You can now accelerate queries on CSV data files stored in Object Storage Service (OSS).

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

  • Improved the read performance of read-only (RO) nodes.

  • Added support for LEFT JOIN elimination in UPDATE statements.

  • The SQL Trace feature now correctly records SQL statements and their execution plans when you call a built-in stored procedure.

  • You can now use the instant add column feature on tables that have a columnstore index.

  • Non-equality predicate derivation is now supported, allowing more predicates to be pushed down.

  • Simplified the parameter usage process for automatic request distribution between row and column stores. When the column store is not used, you can run SET use_imci_engine=FORCED to receive a clear explanation.

  • Optimized the subquery execution process to collapse multiple subqueries for elimination where possible.

  • Hybrid Plan now supports temporary tables to accelerate wide table queries.

  • The thread pool now handles connection requests faster in low-concurrency scenarios.

  • The rman.import command is now supported for a columnstore index.

  • Optimized the statistics sampling feature for X-Engine to estimate the approximate compression ratio.

  • You can now create Tair RO nodes to provide cache read capabilities.

  • Optimized performance monitoring: access by system O&M personnel no longer affects the slow_queries status metric.

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

  • X-Engine now supports parallel query on single and partitioned tables.

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

  • Optimized the memory usage of IMCI metadata, file modules, and small resident objects, reducing resident memory consumption.

  • You can now use columnstore index and global consistency (high-performance mode) at the same time.

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

  • Optimized the I/O performance of PolarFS read-only nodes, improving their query response speed.

Bug fixes

Description

  • Fixed an issue where subsequent buffer pool scale-out requests could not be executed. This occurred because the automatic cancellation of a previous scale-in operation was blocked by a large user SQL query that did not release its occupied pages.

  • Fixed an issue where the dbms_oss.delete_table_file built-in stored procedure could not delete cold data in CSV or ORC format.

  • Fixed a potential node crash caused by the automatic cancellation of a previous buffer pool scale-in operation under high concurrency.

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

  • Fixed an internal counter error in the thread pool that occurred when an ACL lock wait was encountered during asynchronous authentication.

  • Fixed an issue where an assertion message was returned when performing a multiplication operation on Decimal data if at least one multiplier was 0 and the scale of the result exceeded 16.

  • Fixed an issue that occurred during one-click upgrades from RDS for MySQL to PolarDB for MySQL, where a restart of the PolarDB for MySQL cluster would interrupt the migration link.

  • Fixed a node crash that occurred when querying a hybrid partition containing both InnoDB and ORC partitions.

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

  • Fixed a node crash caused by accessing an invalid Blob reference when performing a read-ahead operation on Blob data.

  • Fixed an intermittent node crash that occurred when the read-ahead feature was enabled while using a columnstore index.

  • Fixed an issue where hint syntax was not supported in the join condition pushdown feature.

  • Fixed an issue where hint syntax was not supported in the predicate pushdown to subquery feature.

  • Fixed incomplete HAVING condition pushdown.

  • Fixed a potential node crash in a parallel query that occurred when a non-correlated subquery was executed while a projection column was referenced in the HAVING clause.

  • Fixed excessive Autoinc init log printing.

  • Fixed an issue where the subquery merging feature did not support optimizer hints.

  • Fixed an issue where an OSS external table returned an error in an ORDER BY DESC scenario.

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

  • Fixed a potential performance regression that occurred when conditions were pushed down to a derived table.

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

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

  • Fixed an issue in parallel query that caused incorrect results. This occurred when a plan shard contained multiple tables performing a partition-wise parallel scan and also executed a parallel hash join operation.

  • Fixed an issue where subquery unnesting caused a column in group statement is ambiguous warning.

8.0.2.2.22.1 (April 17, 2024)

Performance optimizations

Description

  • Improved the error messages for importing cold data from OSS into the InnoDB engine.

  • SQL Trace can now track the execution of slow queries.

Bug fixes

Description

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

  • Fixed incorrect results from a LEFT JOIN on tables in the INFORMATION_SCHEMA database.

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

  • Executing the INSERT INTO ON DUPLICATE VALUE command on a partitioned table no longer reports the 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 where running a parallel query on a large table with a tall or skewed B-tree resulted in too few parallel shards or unbalanced data distribution 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-type fields.

  • When using the SET_VAR HINT syntax to set the loose_optimizer_switch parameter, you no longer need a trailing comma.

Bug fixes

Description

  • Fixed an issue where executing an EXCHANGE PARTITION operation with different index orders corrupted an index and prevented access to table data.

  • Fixed a deadlock in DDL read-ahead in parallel DDL scenarios.

  • Fixed an issue where an unexpected checkpoint LSN caused crash recovery to fail after an abnormal cluster restart.

  • Fixed an issue that required a node restart 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 that included an ORDER BY clause and the output contained NULL values.

  • Fixed an issue where some built-in stored procedures did not correctly report errors when given 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 when using a temporary table after the flashback query feature was enabled.

  • Fixed an issue where the optimizer failed to omit a sort operation after selecting an ordering index.

  • Fixed an issue where the JOIN elimination optimization failed to update the column information of remaining tables. This could prevent the optimizer from selecting the optimal access method for the table.

  • Fixed a potential error in query results when the optimizer chose the materialization policy for a semi join.

  • Fixed an issue that prevented Binlog records from uniquely identifying rows when binlog_row_image=MINIMAL on a partitioned table whose primary key does not include the partition key.

  • Fixed an issue where a UCI index could be non-unique when the primary key did not include the partition key in the following scenarios:

    • Pulling up an inner table of a semi join

    • GROUP BY or DISTINCT elimination

    • Adding a unique key dependency for JOIN elimination

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

    • Processing a GroupJoin query with a columnstore index

8.0.2.2.21 (2024.01.17)

New features

Description

  • When global consistency (high-performance mode) is enabled, you can use a hint in an SQL statement to disable the feature for statements that do not require it.

  • Supports using correlated subqueries in the GROUP BY clause and eliminating complex correlated subqueries.

  • Supports Concurrency Control and Statement Outline in a Multi-master Cluster (Database/Table). When you add or delete Concurrency Control or Statement Outline rules on one primary node, these 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

  • Optimized thread pool handling of connection requests in low-concurrency scenarios.

  • Optimized the columnstore index (IMCI) startup process.

  • Improved the data read performance on read-only (RO) nodes during secondary index lookups that fetch data using the primary key.

  • Optimized the transaction mask calculation process in the columnstore index (IMCI).

Bug fixes

Description

  • Fixed an issue where a cluster upgrade could invalidate Concurrency Control (CCL) rules that match a DIGEST value.

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

  • Fixed an issue where TopK queries using the columnstore index (IMCI) returned incorrect results when sorting in descending order on tables with a large number of NULL values.

  • Fixed an issue that prevented a read-only columnstore node from recovering columnstore data if started during a DDL operation on a table with a columnstore index.

  • Fixed an issue that, in some scenarios, prevented elastic parallel query (ePQ) from being used in queries that contained a recursive CTE.

  • Fixed an issue in the new database and table recovery 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 recovery process where a thread could not exit due to a full disk.

  • Fixed an issue where concurrent modifications to data structures during physical replication in X-Engine caused exceptions on read-only (RO) nodes.

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

  • Fixed an issue where modifying the character set of a partition key in a partitioned table did not re-partition the data.

  • Fixed an issue where querying views containing data of the BIT type with the columnstore index (IMCI) returned incorrect results.

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

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

  • Fixed an issue that caused incorrect results when the subquery_to_derived feature was enabled in MySQL Community Edition.

  • Fixed an issue where using the polar_abbrev_sort_key_size parameter to control sorting operations caused memory corruption.

  • Fixed an issue where an equality query on a partitioned table returned data only from the first partition if the table's primary key did not include the partition key and a unique key was selected for an index merge.

2023

8.0.2.2.20 (December 20, 2023)

Performance optimizations

Description

  • For a cluster that previously lacked a Statement Outline, adding one after a version upgrade ensures that outline matching is no longer affected by the character set.

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

  • You can access the INFORMATION_SCHEMA view of the column store from any node. By default, the view aggregates and displays information from all column store nodes.

  • Improved the database and table restoration feature, increasing restoration speed and adding support for task failure rollback.

Bug fixes

Description

  • Fixed a potential node crash during a parallel scan on a derived table with ROLLUP calculations.

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

  • Fixed an issue that blocked dirty page flushing on an RW node if it failed to terminate the replication connection to an RO node whose physical machine had failed.

  • Fixed an issue where an excessive number of tables after an HA switchover led to table cache eviction, which caused auto-increment values to roll back.

  • Fixed a replica node crash caused by an extreme redo log sequence. The sequence was generated by a race condition between deleting an X-Engine table or index and a background SwitchMemtable operation.

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

  • Fixed an issue where a parallel ROLLUP query returned incorrect results if the GROUP BY clause contained multiple identical constant columns.

  • Fixed an assertion error that occurred when accessing a partitioned table's global secondary index (GSI) with RANGE INDEX after partition pruning had removed all partitions.

  • Fixed an archiving failure caused by BLOB columns in the table when archiving cold data to the ORC format.

  • Enabled parallel queries to use 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 (2023.10.30)

New features

Description

  • Added the opt_non_covering_key_cost parameter to control whether to consider 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 non-covering indexes during cost estimation.

Performance optimizations

Description

  • Optimized the promotion of a read-only node to a primary node.

  • Optimized how the thread pool handles new connections.

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

  • The optimizer can now push down more conditions to a derived table by using the transitive property of equality conditions.

  • The optimizer now supports pushing down eligible predicates into a subquery.

  • Improved the cost model for equality lookups on non-covering indexes.

  • Reduced memory consumption for the table object cache and table definition cache.

  • Added automatic archiving of cold data for all RANGE partitioned tables using DLM.

  • The optimizer can now select a GSI for a partitioned table in queries that use partition pruning.

Bug fixes

Description

  • Fixed a bug that could prevent the cluster from starting if the AccessKey information for OSS SERVER was corrupted.

  • Fixed query failures in some scenarios caused by excessive memory consumption from the GroupJoin operator.

  • Fixed a bug that prevented the execution of some queries with OR predicates because the query plan failed to bind to the correct columns.

  • Fixed inaccurate join selectivity estimates from the optimizer when joining an unsigned column with a signed column.

  • Fixed a bug that could cause the database to restart when a query was terminated by the scheduler.

  • Fixed space reclamation failures caused by a read-only node of X-Engine not reporting version reference information.

  • Fixed a failure that occurred when rolling back an advanced RowID while loading a checkpoint.

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

  • Fixed a potential infinite loop during partition pruning that occurred when a partition was not found.

8.0.2.2.18 (September 17, 2023)

Bug fixes

Description

Fixed a potential node crash when deleting the last CCL rule for a SQL statement type that specified only a keyword and lacked a schema or table.

8.0.2.2.17 (August 23, 2023)

Performance optimizations

Description

Accelerated the archiving of cold data to OSS in CSV format.

Bug fixes

Description

  • Fixed a Table definition has changed error that occurred when global consistency (high-performance mode) and elastic parallel query (ePQ) were enabled simultaneously.

  • Corrected inaccurate scan row counts for SQL statements in index condition pushdown scenarios.

  • Resolved a node crash that could occur when using phrase search in a full-text index.

  • Fixed an issue where newly connected read-only nodes would crash after the read-write node performed an undo truncate.

8.0.2.2.16.1 (July 25, 2023)

Bug fixes

Description

  • Fixed high CPU usage caused by a background thread.

  • Fixed a potential cluster startup failure caused by a corrupted AccessKey for the OSS Server.

8.0.2.2.16 (July 23, 2023)

New features

Description

Added the innodb_polar_import_tablespace_strict_mode parameter. With the default setting of ON, database and table restoration fails with an error if the table structure contains a full-text index.

Performance optimizations

Description

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

  • Columnstore indexes can now use the primary index of the InnoDB engine to accelerate queries.

  • The system now converts IN subqueries to semi-join subqueries for UPDATE or DELETE operations on a single table.

  • The system now converts scalar subqueries to materialized tables in join queries.

  • You can now use the Fast Query Cache feature with partitioned tables in the InnoDB engine.

  • Creating an OSS external table no longer automatically creates an implicit auto-increment primary key.

  • 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 crashed when a common table expression (CTE) contained a nested CTE with multiple references.

  • Fixed an issue where database and table restoration failed when performed on hybrid partitioned tables.

  • Fixed an issue where a secondary node failed to reconnect after the primary node was shut down and restarted.

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

  • Fixed an issue where INSERT operations on a partitioned table with UNIQUE CHECK IGNORE=1 placed data in the wrong partition.

8.0.2.2.15 (2023.06.28)

New features

Description

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

Performance optimizations

Description

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

  • Supports archiving partitioned tables and standard tables with auto-increment columns to OSS.

  • The federated query engine now supports pushing down the ORDER BY syntax to a remote database, which reduces network overhead when used with LIMIT and OFFSET.

  • Supports creating a columnstore index on a hybrid partitioned table (InnoDB+ORC).

  • Optimized the thread pool for handling short-lived connections.

  • DLM now supports archiving InnoDB partitions in a partitioned table to OSS.

  • Supports adding and deleting InnoDB partitions in a hybrid partitioned table.

Bug fixes

Description

  • Fixed a bug that prevented the prompt interruption of queries using a columnstore index and the cleanup of their temporary files when the disk became full.

  • Fixed an issue where parameters had no effect in repeated executions of a stored procedure.

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

  • Fixed an issue with an internal counter in the thread pool that could cause a backlog of SQL requests during concurrent recording of slow query logs.

  • Fixed an issue that caused a node to restart unexpectedly 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 errors that could occur when querying a read-only (RO) node while an ALTER TABLE ... IMPORT TABLESPACE operation is being executed on the read-write (RW) node.

8.0.2.2.14 (2023.05.24)

New features

Description

  • Added a command for partition archiving: ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = 'csv'; .

  • Added the row-level compression feature.

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

Performance optimizations

Description

  • You can now create a columnstore index on a virtual column.

  • You can now use the recycle bin for tables with a columnstore index.

  • Optimized OSS query performance. Queries now run in parallel when elastic parallel query is enabled and the loose_csv_max_oss_threads parameter is set to a value greater than 1.

  • Improved the error messages for incorrect file formats in OSS external tables.

  • Added support for reading from and writing to OSS in ORC format.

  • Improved error messages for spelling errors.

Bug fixes

Description

  • Fixed replication delays that occurred when replaying the Redo log of a wide table on an RO node.

  • Fixed a node crash that occurred when querying a hybrid partitioned table with order index optimization.

  • Fixed a node crash that occurred when truncating a hybrid partition.

  • Fixed an issue where queries that use both Limit Offset pushdown optimization and a window function returned incorrect results.

  • Fixed an issue that prevented OSS from running queries in parallel.

  • Fixed an issue where OSS could not read JSON files.

  • Fixed a typo in the engine keyword.

  • Fixed an issue where reading CSV-formatted cold data from OSS might only read the first file.

  • Fixed an issue where data containing \n could not be read after DLM archived it.

  • Fixed an issue where cold data archiving could leave temporary files on OSS.

8.0.2.2.13 (April 21, 2023)

New features

Description

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

  • Added the by_expr_ignore_charset variable to SQL Sharing. When you set by_expr_ignore_charset to ON, it eliminates digest differences for statements that contain ORDER BY or GROUP BY across different character sets. However, setting this variable to ON causes all digests generated in this mode to differ from those created before this setting was enabled.

  • You can now use the dbms_outln.add_optimizer_outline('schema', 'hints', 'query') interface in Statement Outline to add Optimizer Hints.

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

Performance optimizations

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. This is achieved by rebuilding the index data.

  • The columnstore index now supports the REGEXPR function.

  • The columnstore index now supports pruning optimization for 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.

  • To improve performance, the system now skips calculating the digest for SQL statements without a Statement Outline.

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

Bug fixes

Description

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

  • Fixed an issue where condition pushdown was incorrect for tables containing 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 in OSS.

  • Fixed a database node crash that occurred when checking an empty OSS external table.

8.0.2.2.12 (March 20, 2023)

New features

Description

  • Added the nonblocking DDL feature.

  • Added the SQL Trace feature.

  • Added the SQL detail feature.

  • Added the Auto Plan Cache feature.

  • Added the columnstore index feature.

  • The global consistency (high-performance mode) now includes the Innodb_scc_timeout_count parameter, which counts query timeouts.

  • The global consistency (high-performance mode) now includes the Innodb_scc_timeout_degrade_count parameter, which counts the number of timed-out queries converted to asynchronous queries.

Performance optimizations

Description

  • Statement Outline now generates a warning instead of an error for non-existent index hints.

  • The slow query log now includes execution plans in its extended data.

  • Memory for statement digest calculation now scales dynamically with query length.

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

  • Built-in stored procedures now support input variables prefixed with an at sign (@).

  • The internal lock granularity of PolarFS has been optimized, significantly improving performance under high load.

Bug fixes

Description

  • Adding or deleting CCL rules or Statement Outlines on a hot standby node or a read-only node now correctly generates an error.

  • Executing the SHOW SLAVE HOSTS statement on the primary node no longer causes a cluster crash.

8.0.2.2.11.1 (February 21, 2023)

New features

Description

Added theloose_group_by_compatible_sorting parameter to control 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 potential illegal memory access when executing a DDL statement on a partitioned table.

8.0.2.2.11 (February 20, 2023)

Performance optimization

Description

  • When a partition expression contains an AUTO INCREMENT column, you can now specify a value for that column, allowing for partition pruning based on the specified value.

  • You can now use the without validation option with 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 includes the without validation option. The syntax is: Alter table t1 partition by range(a) (partition p0 values less than (100), partition p1 values less than (200)) without validation.

Performance optimizations

Description

  • The cost-based optimizer now pushes down the outer join conditions of a materialized derived table into the derived table.

  • The optimizer now converts a predicate condition with an IN-List to a temporary table, performs a semi-join with the query in the from clause, and avoids the overhead of repeated materialization by using a zero-copy method.

  • The optimizer now pushes down conditions from the HAVING clause to the WHERE clause.

  • DDL operations on subpartitions now use a partition-level MDL to reduce lock granularity. During DDL execution, only the modified partition is affected, and DML operations on other partitions are not blocked.

Bug fixes

Description

  • When TDE is enabled, encryption of system tables is disabled.

  • Timeout parameters for physical replication connections have been adjusted to prevent hangs during a physical machine failure.

2022

8.0.2.2.9 (December 23, 2022)

Performance optimization

Description

  • Thedbms_ccl.add_ccl_digest_rule, dbms_outln.add_index_outline, anddbms_outln.add_optimizer_outline built-in stored procedures now ignore a semicolon at the end of the SQL statement in the query parameter.

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

  • The Partial Result Cache feature is now supported.

  • The optimizer's join elimination feature now supports eliminating the inner table of a left join (including inner tables in multi-level nested joins and semi-joins).

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

  • The federated query engine now pushes down the Limit Offset syntax to the remote database.

Bug fixes

Description

The IF NOT EXISTS clause is now supported when creating a server.

8.0.2.2.8 (2022.11.30)

New features

Description

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

  • Added support for failover with hot standby.

  • Added thedynamic_partition_prune_enabled parameter to control dynamic partition pruning. When enabled, this feature reduces unnecessary partition scans in multi-table joins on partitioned tables if join conditions meet the requirements for partition pruning, improving query performance.

Performance optimizations

Description

  • Supports creating, deleting, and rebuilding indexes on specific partitions of a partitioned table.

  • REBUILD PARTITION and REORGANIZE PARTITION operations now use a partition-level MDL lock, ensuring DML operations on other partitions are not affected.

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

    Note

    The username and password for an existing Server will not be encrypted after an upgrade. You must manually delete and recreate the Server.

  • The partition-wise join technique now works between partitioned tables and regular tables, significantly improving join performance on large datasets.

  • Statement Outline now supports all UNION clauses.

  • Limit offset pushdown now applies when accessing a specific partition in a partitioned table.

Bug fixes

Description

  • Fixed an issue in the parallel optimizer that caused an inaccurate estimation of the number of unique values for a GROUP BY field.

  • Fixed an issue where SQL statements would be recorded in the Binlog during a hot upgrade.

8.0.2.2.7 (October 25, 2022)

Performance optimizations

Description

  • You can now use multi-node elastic parallel query (ePQ) for cross-node queries of external table data on Object Storage Service (OSS).

  • You can now use a global secondary index (GSI) on partitioned tables.

  • You can now use multi-stage multi-node parallel query in queries that contain SJM (Semi-join Materialization).

Bug fixes

Description

  • The early termination of limit1 no longer causes anERROR 1028 (HY000): Sort aborted: Query execution was interrupted error.

  • A node no longer crashes when a scheduled task writes to an implicit primary key.

  • count(distinct ...) no longer returns an incorrect result set when using multi-node elastic parallel query (ePQ).

  • A parallel query no longer returns an incorrect result set when the query condition contains DATE and DATETIME types.

8.0.2.2.6.1 (September 17, 2022)

Bug fixes

Description

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

8.0.2.2.6 (August 19, 2022)

Performance optimizations

Description

  • Thread pool optimization: The thread pool now generates additional threads to process new requests while a transaction waits for a metadata lock or row lock.

  • Enhanced CCL to support DDL throttling.

  • Accelerated the DDL data rebuild process with an asynchronous write to a temporary file.

  • Improved thread pool performance under high concurrency.

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

Bug fixes

Description

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

8.0.2.2.5.1 (2022.07.22)

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. This feature supports only the MEMORY and MyISAM engines.

  • Added support for the ReadableProto feature. It allows you to directly read data serialized and stored in a BLOB field by specifying the Protobuf protocol.

  • Optimized the DDL sorting algorithm by replacing a two-way merge with a multi-way merge to reduce I/O operations and improve the performance of DDL index creation.

  • Added the oss_prefix parameter to the syntax for creating an OSS server to configure the OSS file path.

Bug fixes

Description

  • Fixed an issue with unordered results during concurrent execution when group_by_implicit_sorting was used to select an index for a group by column.

  • Corrected the cost and rows values in the Hash Join result from the EXPLAIN FORMAT=TREE statement.

  • Fixed excessive physical replication latency under low cluster load.

  • Fixed an issue where the LRU List cleanup was blocked, preventing it from releasing a page. This occurred when there were too many dirty pages in the Buffer Pool and flushing was slow.

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

8.0.2.2.4 (May 31, 2022)

New features

Description

You can now create and use federated engine tables.

Bug fixes

Description

  • Fixed an issue where SKIP_SCAN could return an incorrect result set when multiple sets of data exist in an index prefix.

  • Fixed an issue where SKIP_SCAN returned an incorrect result set for data marked for deletion.

  • Fixed an issue where the fast query cache blocked redo log synchronization when the read-only node acquired a metadata lock (MDL).

8.0.2.2.3 (April 19, 2022)

Bug fixes

Description

Fixed incorrect results from Using index for group by.

8.0.2.2.2 (March 31, 2022)

Performance optimizations

Description

  • The PolarDB parallel query feature includes a multi-node parallel execution engine. For a single query, this engine can schedule some or all Workers to run on remote nodes, leveraging the computing resources of multiple nodes in the cluster. This provides the following benefits:

    • The degree of parallelism can overcome single-node limitations to accelerate analytical queries, including large-scale queries.

    • Based on the global resource load, the engine can schedule queries to idle nodes to accelerate execution and improve resource utilization.

    • You can create multiple cluster groups to form a computing resource pool that offers more flexibility and elasticity.

  • The parallel_query_switch parameter now includes the restrict_on_limit_without_order switch. This switch controls parallel queries that use a LIMIT clause without an ORDER BY clause.

  • PolarDB now supports condition pushdown to a materialized derived table.

8.0.2.2.1 (March 15, 2022)

New features

Description

Added the SET INTERVAL syntax to modify the interval type and value of an interval range partition. You can also use this syntax to transform a range-partitioned table into an interval range partitioned table and vice versa. For more information, see Modify interval range partitioning and Transform a partitioned table.

Performance optimizations

Description

Bug fixes

Description

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

  • Fixed an error that occurred when creating a partitioned table with CREATE TABLE .. LIKE.. LIST DEFAULT HASH.

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

8.0.2.2.0 (2022.01.12)

Performance optimizations

Description

  • Enhanced the Elastic Parallel Query feature by introducing a multi-stage parallel computing capability, which significantly improves linear acceleration performance.

  • Expanded support for partitioned tables to include more types, such as interval partitioning. For more information, see Partitioned table.

  • Added support for subquery decorrelation.

  • Using PolarProxy, you can now use a stored procedure to define a sensitive field and tag its value metadata.

  • Added the STATUS variable Online_altered_partition to count online ALTER TABLE ADD PARTITION and ALTER TABLE DROP PARTITION operations.

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

Bug fixes

Description

  • Added support for the SELECT FOR UPDATE WAIT N and SELECT FOR SHARE WAIT N syntax. In this syntax, N represents the timeout in seconds for a single row lock. This timeout is not cumulative for queries that lock multiple rows. 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 failed to select a better index range path for some GROUP BY statements.

  • Fixed an issue where the GROUP_CONCAT function returned an incorrect result due to an arithmetic overflow when the group_concat_max_len parameter was set to a large value.

  • Added support for modifying the database cache size.

  • Optimized query performance by preventing unnecessary partition scans.

  • Fixed an issue where a DDL operation failed on an encrypted table.

  • Optimized master_key_id_mutex to allow DDL operations to be executed in parallel.

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

  • Fixed a crash at m_recv_bits.is_set(fold) on a read-only node during physical replication under high-concurrency workloads.

2021

8.0.2.1.4.1 (2021.10.26)

Performance optimization

Description

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

Bug fixes

Description

You can now modify the database cache size.

2020

8.0.2.1.4 (December 1, 2020)

New features

Description

Adds support for MySQL 8.0.20 Index Hints.

Bug fixes

Description

  • Resolved a stability issue with parallel Hash Join.

  • Fixed a bug in statistics that caused incorrect row count estimates for index keys.

  • Fixed an error in the parallel scan of shared temporary tables with empty data.

  • Fixed a data processing error in the REGEXP_REPLACE function.

  • Fixed a crash in complex queries containing subquery constants.

  • Fixed a bug causing filesort to return incorrect data.

8.0.2.1.3 (October 26, 2020)

Performance optimizations

Description

  • Improved the cost estimation model for Hash Join.

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

Bug fixes

Description

  • Fixed an issue that caused the number of parallel partitions to be displayed incorrectly in a parallel execution plan.

  • Fixed a crash caused by parallel subqueries.

  • Fixed RAND() to produce random results across all worker threads 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 optimization

Description

Optimized cluster write performance.

Bug fix

Description

Fixed a memory leak.

8.0.2.1.0 (July 22, 2020)

New features

Description

The Warm Buffer Pool ensures that data in the buffer pool persists through crash restarts and upgrades. This feature significantly speeds up restarts and prevents performance degradation afterward.

Performance optimizations

Description

  • EXPLAIN can now display a parallel plan. You can use FORMAT=TREE to view the parallel execution plan tree.

  • Parallel query now supports hash join, which improves JOIN performance for queries without an index. For more information, see Parallel acceleration of hash join.

  • You can now use Resource Manager to monitor CPU and memory resources. For more information, see Resource Manager.

  • This release introduces the Performance Agent. This agent collects and aggregates internal 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.