Skip to content
Extraits de code Groupes Projets
Valider 0ef9f584 rédigé par esj's avatar esj
Parcourir les fichiers

Corrige (mais pourrait être amélioré) #256 ainsi que le pb de Pif...

Corrige (mais pourrait être amélioré) #256 ainsi que le pb de  Pif http://article.gmane.org/gmane.comp.web.spip.devel/34423
parent 37450485
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -687,11 +687,15 @@ function calculer_chaine_jointures(&$boucle, $depart, $arrivee, $vu=array()) ...@@ -687,11 +687,15 @@ function calculer_chaine_jointures(&$boucle, $depart, $arrivee, $vu=array())
list($anom,$adesc) = $arrivee; list($anom,$adesc) = $arrivee;
$keys = $ddesc['key']; $keys = $ddesc['key'];
if ($v = $adesc['key']['PRIMARY KEY']) {
unset($adesc['key']['PRIMARY KEY']);
$akeys = array_merge(preg_split('/,\s*/', $v), $adesc['key']);
}
else $akeys = $adesc['key'];
// priorite a la primaire, qui peut etre multiple // priorite a la primaire, qui peut etre multiple
if ($v = (split(', *', $keys['PRIMARY KEY']))) if ($v = (preg_split('/,\s*/', $keys['PRIMARY KEY'])))
$keys = $v; $keys = $v;
$v = array_intersect($keys, $adesc['key']); $v = array_intersect($keys, $akeys);
if ($v) if ($v)
return array(array($dnom, $arrivee, array_shift($v))); return array(array($dnom, $arrivee, array_shift($v)));
else { else {
......
...@@ -101,7 +101,7 @@ function description_type_requete($type, $serveur='') { ...@@ -101,7 +101,7 @@ function description_type_requete($type, $serveur='') {
} }
function index_tables_en_pile($idb, $nom_champ, &$boucles) { function index_tables_en_pile($idb, $nom_champ, &$boucles) {
global $exceptions_des_tables, $tables_des_serveurs_sql; global $exceptions_des_tables;
$r = $boucles[$idb]->type_requete; $r = $boucles[$idb]->type_requete;
$s = $boucles[$idb]->sql_serveur; $s = $boucles[$idb]->sql_serveur;
...@@ -128,8 +128,11 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles) { ...@@ -128,8 +128,11 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles) {
$t = trouver_champ_exterieur($nom_champ, $t = trouver_champ_exterieur($nom_champ,
$boucles[$idb]->jointures, $boucles[$idb]->jointures,
$boucles[$idb]); $boucles[$idb]);
if ($t) $t = array_search($t[0], $boucles[$idb]->from); if ($t)
if ($t) return array($t .'.' . $nom_champ, $nom_champ); return index_exception($boucles[$idb],
$desc,
$nom_champ,
array($t[0], $nom_champ));
} }
return array('',''); return array('','');
} }
......
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