Valider 76cc219c rédigé par Eric Lupinacci's avatar Eric Lupinacci
Parcourir les fichiers

Résoud l'empilement des index dans le cas suivant :

- Une table est créée avec un index non nommé du type "KEY" => "champ"
- Si un plugin vient rajouter un champ dans cette même table sans redéfinir d'index et qu'il appelle maj_tables() pour l'upgrade, un deuxième index est créé et nommé "KEY champ_2" => "champ".
En effet, le showtable renvoie toujours un index "KEY champ" qu'il ait été nommé ou pas dans la déclaration: il faut donc exclure aussi ce cas pour ne pas créer un index inutile.
parent cdd0a613
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -72,7 +72,9 @@ function creer_ou_upgrader_table($table,$desc,$autoinc,$upgrade=false,$serveur='
			$last = $field;
		}
		foreach($desc['key'] as $key=>$type){
			if (!isset($sql_desc['key'][$key]))
			// Ne pas oublier les cas des cles non nommees dans la declaration et qui sont retournees
			// par le showtable sous la forme d'un index de tableau "KEY $type" et non "KEY"
			if (!isset($sql_desc['key'][$key]) AND !isset($sql_desc['key']["$key $type"]))
				sql_alter("TABLE $table ADD $key ($type)",$serveur);
			$last = $field;
		}