'ON']; if (!$this->isMariaDBWithLargePrefix($connection)) { $variables['innodb_file_format'] = 'Barracuda'; $variables['innodb_large_prefix'] = 'ON'; } foreach ($variables as $var => $val) { $result = $connection->executeQuery("SHOW VARIABLES LIKE '$var'"); $row = $result->fetch(); $result->closeCursor(); if ($row === false) { return false; } if (strcasecmp($row['Value'], $val) !== 0) { return false; } } return true; } protected function isMariaDBWithLargePrefix(IDBConnection $connection) { $result = $connection->executeQuery('SELECT VERSION()'); $row = strtolower($result->fetchColumn()); $result->closeCursor(); if ($row === false) { return false; } return str_contains($row, 'maria') && version_compare($row, '10.3', '>=') || !str_contains($row, 'maria') && version_compare($row, '8.0', '>='); } }