From 7e46e5bf54074ac38329b9a033aba2a692f4bcae Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 30 Apr 2010 18:30:23 +0000 Subject: [PATCH] Enhancement for postgresql support --- htdocs/lib/admin.lib.php | 1 + htdocs/lib/databases/pgsql.lib.php | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/htdocs/lib/admin.lib.php b/htdocs/lib/admin.lib.php index d59f40c17ad..53eaf88f258 100644 --- a/htdocs/lib/admin.lib.php +++ b/htdocs/lib/admin.lib.php @@ -249,6 +249,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1) $okerror=array( 'DB_ERROR_TABLE_ALREADY_EXISTS', 'DB_ERROR_COLUMN_ALREADY_EXISTS', 'DB_ERROR_KEY_NAME_ALREADY_EXISTS', + 'DB_ERROR_TABLE_OR_KEY_ALREADY_EXISTS', // PgSql use same code for table and key already exist 'DB_ERROR_RECORD_ALREADY_EXISTS', 'DB_ERROR_NOSUCHTABLE', 'DB_ERROR_NOSUCHFIELD', diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php index e3d53047fc2..594006d41cb 100644 --- a/htdocs/lib/databases/pgsql.lib.php +++ b/htdocs/lib/databases/pgsql.lib.php @@ -163,6 +163,9 @@ class DoliDb } if ($line != "") { + # We remove end of request "AFTER fieldxxx" + $line=preg_replace('/AFTER [a-z_]+/i','',$line); + # we are inside create table statement so lets process datatypes if (preg_match('/(ISAM|innodb)/i',$line)) { # end of create table sequence $line=preg_replace('/\)[\s\t]*type=(MyISAM|innodb);/i',');',$line); @@ -754,6 +757,7 @@ class DoliDb '42P07' => 'DB_ERROR_TABLE_OR_KEY_ALREADY_EXISTS', '42703' => 'DB_ERROR_NOSUCHFIELD', 1060 => 'DB_ERROR_COLUMN_ALREADY_EXISTS', + 42701=> 'DB_ERROR_COLUMN_ALREADY_EXISTS', '42710' => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS', '23505' => 'DB_ERROR_RECORD_ALREADY_EXISTS', '42704' => 'DB_ERROR_SYNTAX',