From c0221f695083c70b48311be98306cd64324707f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 19 Feb 2012 13:11:35 +0100 Subject: [PATCH] Fix: convert mysql to pgsql fails sometimes --- htdocs/core/db/pgsql.class.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 138d1542619..956869e7221 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -296,18 +296,26 @@ class DoliDBPgsql } } - // Remove () in the tables in FROM if one table + // Remove () in the tables in FROM if 1 table $line=preg_replace('/FROM\s*\((([a-z_]+)\s+as\s+([a-z_]+)\s*)\)/i','FROM \\1',$line); //print $line."\n"; - // Remove () in the tables in FROM if two table + // Remove () in the tables in FROM if 2 table $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2',$line); //print $line."\n"; - // Remove () in the tables in FROM if two table + // Remove () in the tables in FROM if 3 table $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3',$line); //print $line."\n"; + // Remove () in the tables in FROM if 4 table + $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3, \\4',$line); + //print $line."\n"; + + // Remove () in the tables in FROM if 5 table + $line=preg_replace('/FROM\s*\(([a-z_]+\s+as\s+[a-z_]+)\s*,\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*),\s*([a-z_]+\s+as\s+[a-z_]+\s*)\)/i','FROM \\1, \\2, \\3, \\4, \\5',$line); + //print $line."\n"; + // Replace espacing \' by ''. // By default we do not (should be already done by db->escape function if required) if (! empty($this->unescapeslashquot))