temptable not using utf8mb4 if server default already set
authordemeritcowboy <demeritcowboy@hotmail.com>
Fri, 31 Jul 2020 14:34:54 +0000 (10:34 -0400)
committerdemeritcowboy <demeritcowboy@hotmail.com>
Fri, 31 Jul 2020 14:48:15 +0000 (10:48 -0400)
CRM/Utils/SQL/TempTable.php

index 9d886dced3e6530c7ee8e5f25b16b7f47f22b155..f0024d7ef79a5a15728fa8b35687061d04ca5c3b 100644 (file)
@@ -148,8 +148,7 @@ class CRM_Utils_SQL_TempTable {
       return '';
     }
     $dbUTF = CRM_Core_BAO_SchemaHandler::getDBCollation();
-    if (in_array($dbUTF, ['utf8_unicode_ci', 'utf8mb4_unicode_ci'])
-      && in_array($dbUTF, ['utf8', 'utf8mb4'])) {
+    if (strpos($dbUTF, 'utf8') !== FALSE) {
       return '';
     }
     return self::UTF8;
@@ -168,7 +167,7 @@ class CRM_Utils_SQL_TempTable {
       $this->toSQL('CREATE'),
       $columns,
       $this->memory ? self::MEMORY : self::INNODB,
-      $this->utf8 ? self::UTF8 : ''
+      $this->getUtf8String()
     );
     CRM_Core_DAO::executeQuery($sql, [], TRUE, NULL, TRUE, FALSE);
     $this->createSql = $sql;