sql_updateq() et base externe / problème de description_table() [+mini-patch]
Salut,
sous SPIP2.1 rev.18614 j'ai un problème détecté lors de l'utilisation de sql_updateq() sur une base externe. description_table() ne prend pas en compte la base et donc ne trouve pas d'infos pour faire la mise à jour. D'où mon patch ci-dessous pour que ça fonctionne :
Index: req/mysql.php =================================================================== --- req/mysql.php (r?vision 18614) +++ req/mysql.php (copie de travail) `` -588,7 +588,7 `` // http://doc.spip.org/`spip_mysql_insertq function spip_mysql_insertq($table, $couples=array(), $desc=array(), $serveur='',$requeter=true) { - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) $couples = array(); $fields = isset($desc['field'])?$desc['field']:array(); `` -603,7 +603,7 `` // http://doc.spip.org/`spip_mysql_insertq_multi function spip_mysql_insertq_multi($table, $tab_couples=array(), $desc=array(), $serveur='',$requeter=true) { - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) $tab_couples = array(); $fields = isset($desc['field'])?$desc['field']:array(); `` -646,7 +646,7 `` function spip_mysql_updateq($table, $champs, $where='', $desc=array(), $serveur='',$requeter=true) { if (!$champs) return; - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) $champs = array(); else $fields = $desc['field']; $set = array(); foreach ($champs as $champ => $val) { Index: req/sqlite_generique.php =================================================================== --- req/sqlite_generique.php (r?vision 18614) +++ req/sqlite_generique.php (copie de travail) `` -761,7 +761,7 `` // http://doc.spip.org/`spip_sqlite_insertq function spip_sqlite_insertq($table, $couples=array(), $desc=array(), $serveur='',$requeter=true) { - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) die("$table insertion sans description"); $fields = isset($desc['field'])?$desc['field']:array(); `` -887,7 +887,7 `` // http://doc.spip.org/`spip_sqlite_replace function spip_sqlite_replace($table, $couples, $desc=array(), $serveur='',$requeter=true) { - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) die("$table insertion sans description"); $fields = isset($desc['field'])?$desc['field']:array(); `` -1086,7 +1086,7 `` function spip_sqlite_updateq($table, $champs, $where='', $desc=array(), $serveur='',$requeter=true) { if (!$champs) return; - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) die("$table insertion sans description"); $fields = $desc['field']; Index: req/pg.php =================================================================== --- req/pg.php (r?vision 18614) +++ req/pg.php (copie de travail) `` -758,7 +758,7 `` $link = $connexion['link']; $db = $connexion['db']; - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); $seq = spip_pg_sequence($table); if ($prefixe) { `` -788,7 +788,7 `` // http://doc.spip.org/`spip_pg_insertq function spip_pg_insertq($table, $couples=array(), $desc=array(), $serveur='',$requeter=true) { - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) die("$table insertion sans description"); $fields = $desc['field']; `` -807,7 +807,7 `` // http://doc.spip.org/`spip_pg_insertq_multi function spip_pg_insertq_multi($table, $tab_couples=array(), $desc=array(), $serveur='',$requeter=true) { - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) die("$table insertion sans description"); $fields = isset($desc['field'])?$desc['field']:array(); `` -865,7 +865,7 `` // http://doc.spip.org/`spip_pg_updateq function spip_pg_updateq($table, $couples, $where='', $desc=array(), $serveur='',$requeter=true) { if (!$couples) return; - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); $fields = $desc['field']; foreach ($couples as $k => $val) { $couples[$k] = spip_pg_cite($val, $fields[$k]); `` -883,7 +883,7 `` $link = $connexion['link']; $db = $connexion['db']; - if (!$desc) $desc = description_table($table); + if (!$desc) $desc = description_table($table,$serveur); if (!$desc) die("$table insertion sans description"); $prim = $desc['key']['PRIMARY KEY']; $ids = preg_split('/,\s*/', $prim); Index: base/abstract_sql.php =================================================================== --- base/abstract_sql.php (r?vision 18614) +++ base/abstract_sql.php (copie de travail) `` -556,7 +556,7 `` // Cette fonction devrait disparaitre // http://doc.spip.org/`description_table -function description_table($nom){ +function description_table($nom,$serveur=''){ global $tables_principales, $tables_auxiliaires; static $f; `` -570,7 +570,7 `` return $tables_auxiliaires[$nom]; if (!$f) $f = charger_fonction('trouver_table', 'base'); - return $f($nom); + return $f($nom,$serveur); }