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

Elimination de la table principale de la boucle de [11091]: traitement...

Elimination de la table principale de la boucle de [11091]: traitement particulier de la boucle Document dont la "table principale" a une jointure d'office.
Toujours le même fichier à contrôler pour SQLite.

Scorie de [11089] qui empêchait contenu_document de fonctionner dans un cas.
parent d31e44b9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -312,10 +312,11 @@ function fichier_copie_locale($source) {
}
// Ping pour voir si son extension est connue et autorisee
$path_parts = recuperer_infos_distantes($source,0,false) ;
$ext = $path_part ? $path_parts['extension'] : '';
$ext = $path_parts ? $path_parts['extension'] : '';
if ($ext AND sql_getfetsel("extension", "spip_types_documents", "extension=".sql_quote($ext))) {
return nom_fichier_copie_locale($source, $ext);
}
spip_log("pas de copie locale pour $source");
}
......
......@@ -178,10 +178,9 @@ function boucle_DOCUMENTS_dist($id_boucle, &$boucles) {
AND !$boucle->modificateur['criteres']['id_rubrique']
AND !$boucle->modificateur['criteres']['id_document']
) {
# pallier un defaut du compilo sur le AS qui se met a la fin
unset($boucle->from[$id_table]);
$boucle->from[] = "spip_documents AS `${id_table}`
LEFT JOIN spip_documents_articles AS a
# Espace avant LEFT JOIN indispensable pour insertion de AS
# a refaire plus proprement
$boucle->from[$id_table] = "spip_documents LEFT JOIN spip_documents_articles AS a
ON `$id_table`.id_document=a.id_document
LEFT JOIN spip_articles AS aa
ON a.id_article=aa.id_article
......
......@@ -518,6 +518,7 @@ function calculer_select ($select = array(), $from = array(),
reset($from);
$e = '/\b(' . "$t\\." . join("|" . $t . '\.', $equiv) . ')\b/';
if (!( count($equiv) <> 1 OR // a faire sauter un jour
strpos($t, ' ') OR // jointure des le depart cf boucle_doc
calculer_jointnul($t, $select, $e) OR
calculer_jointnul($t, $join, $e) OR
calculer_jointnul($t, $where, $e) OR
......@@ -533,7 +534,6 @@ function calculer_select ($select = array(), $from = array(),
$where = remplacer_jointnul($t, $where, $e);
$having = remplacer_jointnul($t, $having, $e);
}
$from[-1] = $sfrom;
}
......
......@@ -239,8 +239,14 @@ function spip_mysql_select_as($args)
} else $join ='';
$res = '';
foreach($args as $k => $v) {
$res .= ', ' . $v . (is_numeric($k) ? '' : " AS `$k`") . $join;
$join = '';
if (!is_numeric($k)) {
$p = strpos($v, " ");
if ($p)
$v = substr($v,0,$p) . " AS `$k`" . substr($v,$p);
else $v .= " AS `$k`";
}
$res .= ', ' . $v ;
}
return substr($res,2) . $join;
}
......
......@@ -488,11 +488,18 @@ function spip_pg_select_as($args)
$argsas = "";
foreach($args as $k => $v) {
$as = '';
spip_log("$k : $v");
if (!is_numeric($k)) {
if (preg_match('/\.(.*)$/', $k, $r))
$v = $k;
elseif ($v != $k) $as = " AS $k";
elseif ($v != $k) {
$p = strpos($v, " ");
if ($p)
$v = substr($v,0,$p) . " AS $k" . substr($v,$p);
else $as = " AS $k";
}
}
spip_log("subs $k : $v avec $as");
if (strpos($v, 'JOIN') === false) $argsas .= ', ';
$argsas .= $v . $as;
}
......
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