From d1583e270b6eed6d54e297604bf97a3ef3aba290 Mon Sep 17 00:00:00 2001
From: denisb <denisb@a-working-class-hero-is-something-to.be>
Date: Sat, 29 Jun 2013 23:52:31 +0000
Subject: [PATCH] =?UTF-8?q?req/pg.php=20:=20report=20de=20r20678=20(esj)?=
 =?UTF-8?q?=20;=20un=20indefini=20PHP=20rendait=20incorrecte=20la=20produc?=
 =?UTF-8?q?tion=20PostGres.=20=20r=C3=A9sout=20le=20ticket=20#3018?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/req/pg.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ecrire/req/pg.php b/ecrire/req/pg.php
index a56acbc82f..a8777095c7 100644
--- a/ecrire/req/pg.php
+++ b/ecrire/req/pg.php
@@ -866,7 +866,8 @@ function spip_pg_insertq_multi($table, $tab_couples=array(), $desc=array(), $ser
 	
 	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
 	// une premiere fois pour ajouter maj dans les cles
-	$les_cles = spip_pg_ajouter_champs_timestamp($table, $tab_couples[0], $desc, $serveur);
+	$c = isset($tab_couples[0]) ? $tab_couples[0] : array();
+	$les_cles = spip_pg_ajouter_champs_timestamp($table, $c, $desc, $serveur);
 	
 	$cles = "(" . join(',',array_keys($les_cles)). ')';
 	$valeurs = array();
@@ -1088,6 +1089,8 @@ function spip_pg_in($val, $valeurs, $not='', $serveur) {
 //
 // IN (...) souvent limite a 255  elements, d'ou cette fonction assistante
 //
+	// s'il n'y a pas de valeur, eviter de produire un IN vide: PG rale.
+	if (!$valeurs) return $not ? '0=0' : '0=1';
 	if (strpos($valeurs, "CAST(x'") !== false)
 		return "($val=" . join("OR $val=", explode(',',$valeurs)).')';
 	$n = $i = 0;
-- 
GitLab