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

Tiens, il y a encore des spip_query sur INSERT. Deux de moins. Et un UPDATE de...

Tiens, il y a encore des spip_query sur INSERT. Deux de moins. Et un UPDATE de moins. Et améliorations du traducteur MySQL->PG, qui traite les fonctions SQL plus intelligement.
parent 8099f94c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -100,7 +100,7 @@ function action_cookie_dist() {
$prefs = ($row_auteur['prefs']) ? unserialize($row_auteur['prefs']) : array();
$prefs['cnx'] = $session_remember;
spip_query("UPDATE spip_auteurs SET prefs = " . _q(serialize($prefs)) . " WHERE id_auteur = " . $row_auteur['id_auteur']);
sql_updateq('spip_auteurs', array('prefs' => serialize($prefs)), "id_auteur = " . $row_auteur['id_auteur']);
}
}
......
......@@ -202,13 +202,13 @@ function action_legender_auteur_post($r) {
sql_delete("spip_auteurs_rubriques", "id_auteur="._q($id_auteur));
foreach (array_unique($restreintes) as $id_rub)
if ($id_rub = intval($id_rub)) // si '0' on ignore
sql_insert('spip_auteurs_rubriques', "(id_auteur,id_rubrique)", "($id_auteur,$id_rub)");
sql_insertq('spip_auteurs_rubriques', array('id_auteur' => $id_auteur, 'id_rubrique'=>$id_rub));
}
// Lier a un article
if ($id_article = intval(_request('lier_id_article'))
AND autoriser('modifier', 'article', $id_article)) {
spip_query("INSERT spip_auteurs_articles (id_article,id_auteur) VALUES ($id_article,$id_auteur)");
sql_insertq('spip_auteurs_articles', array('id_article' => $id_article, 'id_auteur' =>$id_auteur));
}
// Notifications, gestion des revisions, reindexation...
......
......@@ -49,7 +49,7 @@ function action_editer_mot_post($r)
// inserer_mot("spip_mots_$table", $table_id, $id_objet, $nouv_mot);
$result = sql_countsel("spip_mots_$table", "id_mot=".intval($nouv_mot)." AND $table_id=$id_objet");
if (!$result)
spip_query("INSERT INTO spip_mots_$table (id_mot,$table_id) VALUES ("._q($nouv_mot).", $id_objet)");
sql_insertq("spip_mots_$table", array('id_mot' => $nouv_mot, $table_id =>$id_objet));
}
// Notifications, gestion des revisions, reindexation...
......
......@@ -238,14 +238,18 @@ function spip_pg_groupby($groupby, $from, $select)
if ($join OR $groupby) $join = !is_array($select) ? $select : join(", ", $select);
if ($join) {
$join = str_replace('DISTINCT ','',$join);
$join = preg_replace('/(SUM|COUNT|MAX|MIN|UPPER)\([^)]+\)(\s+AS\s+\w+)\s*,?/i','', $join);
$join = preg_replace('/\w+\(\s*([^(),\']*),\s*\'[^\']*\'[^)]*\)(\s+AS\s+\w+)\s*,?/i','\\1', $join);
$join = preg_replace('/(SUM|COUNT|MAX|MIN|UPPER)\([^)]+\)\s*,?/i','', $join);
// fct SQL sur colonne et constante apostrophee ==> la colonne
$join = preg_replace('/\w+\(\s*([^(),\']*),\s*\'[^\']*\'[^)]*\)/','\\1', $join);
// resultat d'agregat ne sont pas a mettre dans le groupby
$join = preg_replace('/(SUM|COUNT|MAX|MIN|UPPER|CAST)\([^)]+\)(\s*AS\s+\w+)\s*,?/i','', $join);
// idem sans AS (fetch numerique)
$join = preg_replace('/(SUM|COUNT|MAX|MIN|UPPER|CAST)\([^)]+\)\s*,?/i','', $join);
// ne reste plus que les vrais colonnes, et parfois 1 virgule
if (preg_match('/^(.*),\s*$/',$join,$m)) $join=$m[1];
# if (preg_match('/^(.*)\b[*]\b(.*)$/',$join,$m)) $join=$m[1].$m[2];
}
if ($join) $groupby = $groupby ? "$groupby, $join" : $join;
if (!$groupby) return '';
$groupby = spip_pg_frommysql($groupby);
$groupby = preg_replace('/\s+AS\s+\w+\s*/','', $groupby);
......
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