From 6aaf8d1ad7871d5f1dcb621d7df832d36c5e638b Mon Sep 17 00:00:00 2001 From: David M Date: Mon, 30 Jul 2007 21:13:37 +0000 Subject: [PATCH] add PostgreSQL support git-svn-id: file:///svn/phpbb/trunk@7984 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/install/database_update.php | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index d7713bebd1..9d56717ee5 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -1419,6 +1419,14 @@ if (version_compare($current_version, '3.0.RC4', '<=')) $no_updates = false; } + else if ($map_dbms == 'postgres') + { + foreach ($update_auto_increment as $auto_table_name => $auto_column_name) + { + $sql = "SELECT SETVAL('" . $auto_table_name . "_seq',(select case when max({$auto_column_name})>0 then max({$auto_column_name})+1 else 1 end from " . $auto_table_name . '));'; + _sql($sql, $errored, $error_ary); + } + } } _write_result($no_updates, $errored, $error_ary); @@ -1539,12 +1547,19 @@ function _sql($sql, &$errored, &$error_ary, $echo_dot = true) $db->sql_return_on_error(true); - $result = $db->sql_query($sql); - if ($db->sql_error_triggered) + if (preg_match('/^\\s*SELECT/', $sql)) { - $errored = true; - $error_ary['sql'][] = $db->sql_error_sql; - $error_ary['error_code'][] = $db->_sql_error(); + $result = $db->sql_query($sql); + if ($db->sql_error_triggered) + { + $errored = true; + $error_ary['sql'][] = $db->sql_error_sql; + $error_ary['error_code'][] = $db->_sql_error(); + } + } + else + { + var_dump($sql); } $db->sql_return_on_error(false); @@ -1554,7 +1569,7 @@ function _sql($sql, &$errored, &$error_ary, $echo_dot = true) echo ". \n"; flush(); } - +if (preg_match('/^\\s*SELECT/', $sql)) return $result; }