From 45f81b28ed3c84348f825fc9abef36ee63ed027f Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Sat, 19 Jan 2008 15:59:31 +0000
Subject: [PATCH] Never use USING [11101] said. Even in preg_match.

---
 ecrire/public/composer.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 9ec7cdd1b4..0308a604f7 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -500,12 +500,12 @@ function calculer_select ($select = array(), $from = array(),
 		list($t,$c) = $join[$k];
 		$cle = "L$k";
 		if (!$menage
-		OR strpos($sfrom, " $cle ")
+		OR strpos($sfrom, " $cle.")
 		OR calculer_jointnul($cle, $select)
 		OR calculer_jointnul($cle, $join)
 		OR calculer_jointnul($cle, $having)
 		OR calculer_jointnul($cle, $where)) {
-			$sfrom = "\n\t".(isset($from_type[$cle])?$from_type[$cle]:"INNER")." JOIN " . $from[$cle] . " AS $cle ON ($t.$c=$cle.$c)" . $sfrom;
+			$sfrom = "\n\t".(isset($from_type[$cle])?$from_type[$cle]:"INNER")." JOIN " . $from[$cle] . " AS $cle ON ($cle.$c = $t.$c)" . $sfrom;
 			$equiv[]= $c;
 		} else { unset($join[$k]);}
 		unset($from[$cle]);
@@ -525,7 +525,7 @@ function calculer_select ($select = array(), $from = array(),
 		 calculer_jointnul($t, $having, $e))) {
 	    unset($from[$t]);
 	    // bien garder les espaces pour le strpos ci-dessus
-	    preg_match('/^\s*\w*\s*JOIN\s+(.*AS\s+(\w+)\s+)USING [(]([^)]*)[)](.*)$/', $sfrom, $r);
+	    preg_match('/^\s*\w*\s*JOIN\s+(.*?AS\s+(\w+)\s+)ON\s*[(][^.]*[.](\w+)[^)]*[)](.*)$/', $sfrom, $r);
 	    $sfrom = $r[1].  $r[4];
 	    $e = '/\b' . $t . '\.' . $r[3] .'\b/';
 	    $t = $r[2] . '.' . $r[3];
-- 
GitLab