only in patch2: unchanged: --- a/core/lib/Drupal/Core/Database/Driver/mysql/Insert.php +++ b/core/lib/Drupal/Core/Database/Driver/mysql/Insert.php @@ -44,6 +44,12 @@ public function __toString() { // Default fields are always placed first for consistency. $insert_fields = array_merge($this->defaultFields, $this->insertFields); + // Some queries use reserved words like 'function' and these need to be + // escaped. + $insert_fields = array_map(function ($f) { + return '`' . $f . '`'; + }, $insert_fields); + // If we're selecting from a SelectQuery, finish building the query and // pass it back, as any remaining options are irrelevant. if (!empty($this->fromQuery)) { only in patch2: unchanged: --- a/core/modules/system/tests/src/Functional/Entity/Update/LangcodeToAsciiUpdateTest.php +++ b/core/modules/system/tests/src/Functional/Entity/Update/LangcodeToAsciiUpdateTest.php @@ -40,7 +40,8 @@ public function testLangcodeColumnCollation() { ]; foreach ($tables as $table => $columns) { foreach ($columns as $column) { - $this->assertEqual('utf8mb4_general_ci', $this->getColumnCollation($table, $column), 'Found correct starting collation for ' . $table . '.' . $column); + // Depending on MYSQL versions you get different collations. + $this->assertContains($this->getColumnCollation($table, $column), ['utf8mb4_0900_ai_ci', 'utf8mb4_general_ci'], 'Found correct starting collation for ' . $table . '.' . $column); } } only in patch2: unchanged: --- a/core/tests/Drupal/KernelTests/Core/Database/SchemaTest.php +++ b/core/tests/Drupal/KernelTests/Core/Database/SchemaTest.php @@ -72,7 +72,7 @@ public function testSchema() { $columns = db_query('SHOW FULL COLUMNS FROM {test_table}'); foreach ($columns as $column) { if ($column->Field == 'test_field_string') { - $string_check = ($column->Collation == 'utf8mb4_general_ci'); + $string_check = ($column->Collation == 'utf8mb4_general_ci' || $column->Collation == 'utf8mb4_0900_ai_ci'); } if ($column->Field == 'test_field_string_ascii') { $string_ascii_check = ($column->Collation == 'ascii_general_ci');