Skip to content
Extraits de code Groupes Projets
Valider ab779a5d rédigé par cerdic's avatar cerdic
Parcourir les fichiers

penser au cas des primary composées dans la construction du group by sur jointures

parent 7e2ee455
Branches
Étiquettes
Aucune requête de fusion associée trouvée
...@@ -711,7 +711,7 @@ function calculer_jointure(&$boucle, $depart, $arrivee, $col='', $cond=false) ...@@ -711,7 +711,7 @@ function calculer_jointure(&$boucle, $depart, $arrivee, $col='', $cond=false)
list($dnom,$ddesc) = $depart; list($dnom,$ddesc) = $depart;
$id_primary = $ddesc['key']['PRIMARY KEY']; $id_primary = $ddesc['key']['PRIMARY KEY'];
$id_field = $dnom . '.' . $id_primary; $keys = preg_split('/,\s*/', $id_primary);
$id_table = ""; $id_table = "";
$cpt = &$num[$boucle->descr['nom']][$boucle->id_boucle]; $cpt = &$num[$boucle->descr['nom']][$boucle->id_boucle];
foreach($res as $r) { foreach($res as $r) {
...@@ -734,12 +734,15 @@ function calculer_jointure(&$boucle, $depart, $arrivee, $col='', $cond=false) ...@@ -734,12 +734,15 @@ function calculer_jointure(&$boucle, $depart, $arrivee, $col='', $cond=false)
} }
// la clause Group by est en conflit avec ORDER BY, a completer // la clause Group by est en conflit avec ORDER BY, a completer
if (!$pk && !in_array($id_field, $boucle->group)) { foreach($keys as $id_prim){
$boucle->group[] = $id_field; $id_field = $dnom . '.' . $id_prim;
// postgres exige que le champ pour GROUP soit dans le SELECT if (!$pk && !in_array($id_field, $boucle->group)) {
if (!in_array($id_field, $boucle->select)) $boucle->group[] = $id_field;
$boucle->select[] = $id_field; // postgres exige que le champ pour GROUP soit dans le SELECT
} if (!in_array($id_field, $boucle->select))
$boucle->select[] = $id_field;
}
}
$boucle->lien = true; $boucle->lien = true;
return $n; return $n;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter