•Regular expression patterns are supported; invalid patterns are silently ignored. 

See Section 12.18.7, “JSON Schema Validation Functions” , for more information and examples. 

• Multi-valued indexes.  Beginning with MySQL 8.0.17, InnoDB  supports the creation of a multi-valued index, which is a secondary index defined on a JSON  column that stores an array of values and which can have multiple index records for a single data record. Such an index uses a key part definition such as CAST(data->’$.zipcode’ AS UNSIGNED ARRAY) . A multi-valued index is used automatically by the MySQL optimizer for suitable queries, as can be viewed in the output of EXPLAIN . 

As part of this work, MySQL adds a new function JSON_OVERLAPS()  and a new MEMBER OF() operator for working with JSON  documents, additionally extending the CAST()  function with a new ARRAY  keyword, as described in the following list: 

• JSON_OVERLAPS()  compares two JSON  documents. If they contain any key-value pairs or array elements in common, the function returns TRUE (1); otherwise it returns FALSE (0). If both values are scalars, the function performs a simple test for equality. If one argument is a JSON array and the other is a scalar, the scalar is treated as an array element. Thus, JSON_OVERLAPS()  acts as a complement to JSON_CONTAINS() . 

• MEMBER OF()  tests whether the first operand (a scalar or JSON document) is a member of the JSON array passed as the second operand, returning TRUE (1) if it is, and FALSE (0) if it is not. No type conversion of the operand is performed. 

• CAST(expression AS type ARRAY)  permits creation of a functional index by casting the JSON array found in a JSON document at json_path  to an SQL array. Type specifiers are limited to those already supported by CAST() , with the exception of BINARY  (not supported). This usage of CAST() (and the ARRAY  keyword) is supported only by InnoDB , and only for the creation of a multi-valued index. 

For detailed information about multi-valued indexes, including examples, see Multi-Valued Indexes. Section 12.18.3, “Functions That Search JSON Values” , provides information about JSON_OVERLAPS() and MEMBER OF() , along with examples of use. 

• Hintable time_zone.  As of MySQL 8.0.17, the time_zone  session variable is hintable using SET_VAR . 

• Redo Log Archiving.  As of MySQL 8.0.17, InnoDB  supports redo log archiving. Backup utilities that copy redo log records may sometimes fail to keep pace with redo log generation while a backup operation is in progress, resulting in lost redo log records due to those records being overwritten. The redo log archiving feature addresses this issue by sequentially writing redo log records to an archive file. Backup utilities can copy redo log records from the archive file as necessary, thereby avoiding the potential loss of data. For more information, see Redo Log Archiving. 

• The Clone Plugin.  As of MySQL 8.0.17, MySQL provides a clone plugin that permits cloning InnoDB data locally or from a remote MySQL server instance. A local cloning operation stores cloned data on the same server or node where the MySQL instance runs. A remote cloning operation transfers cloned data over the network from a donor MySQL server instance to the recipient server or node where the cloning operation was initiated. 

The clone plugin supports replication. In addition to cloning data, a cloning operation extracts and transfers replication coordinates from the donor and applies them on the recipient, which enables using the clone plugin for provisioning Group Replication members and replicas. Using the clone plugin for provisioning is considerably faster and more efficient than replicating a large number of transactions. Group Replication members can also be configured to use the clone plugin as an alternative method of 

