Skip to content
Extraits de code Groupes Projets
Valider b35b8959 rédigé par b_b's avatar b_b Validation de marcimat
Parcourir les fichiers

fix #4277 Permettre de spécifier l'engine mysql à utiliser + adaptation de...

fix #4277 Permettre de spécifier l'engine mysql à utiliser + adaptation de spip_mysql_repair() à innodb
parent 11508c08
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -40,6 +40,8 @@
### Fixed
- #4277 Adaptation de `spip_mysql_repair()` à innodb
- #4277 Permettre de spécifier l'engine mysql à utiliser
- #5095 Ne pas casser une meta sérialisée quand un utilisateur saisit un emoji dans un formulaire de configuration
- #5152 Éviter des warning si `spip_log()` est appelé avant l’initialisation (dans mes_options)
- #5162 Erreur d’exécution sur `vider_date()` qui doit renvoyer une chaine
......
......@@ -63,7 +63,7 @@ function base_repair_dist($titre = '', $reprise = '') {
**/
function admin_repair_tables() {
$repair = sql_repair('repair', null, 'continue');
$repair = sql_serveur('repair', '', true);
// recreer les tables manquantes eventuelles
include_spip('base/create');
......
......@@ -27,6 +27,10 @@ if (!defined('_MYSQL_NOPLANES')) {
define('_MYSQL_NOPLANES', true);
}
if (!defined('_MYSQL_ENGINE')) {
define('_MYSQL_ENGINE', 'MyISAM');
}
/**
* Crée la première connexion à un serveur MySQL via MySQLi
*
......@@ -728,7 +732,7 @@ function spip_mysql_create(
}
$temporary = $temporary ? 'TEMPORARY' : '';
$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
. ' ENGINE=MyISAM'
. ' ENGINE=' . _MYSQL_ENGINE
. ($character_set ? " DEFAULT $character_set" : '')
. "\n";
......@@ -881,7 +885,17 @@ function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
* - true si la requête a réussie, false sinon
*/
function spip_mysql_repair($table, $serveur = '', $requeter = true) {
return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
$engine = $table_status['Engine'];
if ($engine == 'InnoDB') {
if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
return [' OK '];
}
} elseif ($engine == 'MyISAM') {
return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
} else {
spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
}
}
/**
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter