return $collation;
}
+ /**
+ * Tests if the Antelope file format is still supported or it has been removed.
+ * When removed, only Barracuda file format is supported, given the XtraDB/InnoDB engine.
+ *
+ * @return bool True if the Antelope file format has been removed; otherwise, false.
+ */
+ protected function is_antelope_file_format_no_more_supported() {
+ // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB.
+ // The following InnoDB file format configuration parameters were deprecated and then removed:
+ // - innodb_file_format
+ // - innodb_file_format_check
+ // - innodb_file_format_max
+ // - innodb_large_prefix
+ // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+.
+ $ismysqlge8d0d0 = ($this->get_dbtype() == 'mysqli') &&
+ version_compare($this->get_server_info()['version'], '8.0.0', '>=');
+ // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+.
+ $ismariadbge10d3d1 = ($this->get_dbtype() == 'mariadb') &&
+ version_compare($this->get_server_info()['version'], '10.3.1', '>=');
+
+ return $ismysqlge8d0d0 || $ismariadbge10d3d1;
+ }
+
/**
* Get the row format from the database schema.
*
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = DATABASE() AND table_name = '{$this->prefix}$table'";
} else {
- if (($this->get_dbtype() == 'mysqli') &&
- // Breaking change in MySQL 8.0.0+: antelope file format support has been removed.
- version_compare($this->get_server_info()['version'], '8.0.0', '>=')) {
+ if ($this->is_antelope_file_format_no_more_supported()) {
+ // Breaking change: Antelope file format support has been removed, only Barracuda.
$dbengine = $this->get_dbengine();
$supporteddbengines = array('InnoDB', 'XtraDB');
if (in_array($dbengine, $supporteddbengines)) {
* @return bool True if on otherwise false.
*/
public function is_large_prefix_enabled() {
- if (($this->get_dbtype() == 'mysqli') &&
- // Breaking change since 8.0.0: there is only one file format and 'innodb_large_prefix' has been removed.
- version_compare($this->get_server_info()['version'], '8.0.0', '>=')) {
+ if ($this->is_antelope_file_format_no_more_supported()) {
+ // Breaking change: Antelope file format support has been removed, only Barracuda.
return true;
}