From 1e2db705ca061228ddedd312e00d99cfce2a2ae6 Mon Sep 17 00:00:00 2001 From: Henry Sudhof Date: Fri, 22 Jun 2007 16:47:23 +0000 Subject: [PATCH] Fixing a few things for postgres. Thanks to wagnerch for researching the issue and providing a patch. #12587 git-svn-id: file:///svn/phpbb/trunk@7787 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/docs/CHANGELOG.html | 2 ++ phpBB/includes/acp/acp_users.php | 5 +++-- phpBB/includes/functions.php | 2 +- phpBB/includes/functions_admin.php | 2 +- phpBB/install/convertors/convert_phpbb20.php | 15 ++++++++++----- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index 1bf08bdb07..32bc7d797e 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -293,6 +293,8 @@ p a {
  • [Fix] Oracle sequences during conversions are now corrected (Bug #12555)
  • [Fix] Allow users to continue after selecting "No" in the merge quickmod confirmation (Bug #12577)
  • [Fix] Correctly check permissions on the UCP subscription/bookmark pages (Bug #12595)
  • +
  • [Fix] Only convert non-orphaned PMs
  • +
  • [Fix] Fixed a few Postgres related errors (Bug #12587)
  • diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index a3ae85cf3b..122d1d9e35 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -1831,7 +1831,7 @@ class acp_users // Select auth options $sql = 'SELECT auth_option, is_local, is_global FROM ' . ACL_OPTIONS_TABLE . " - WHERE auth_option LIKE '%\_'"; + WHERE auth_option LIKE '%" . $db->sql_escape('\_') . "'"; if ($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc') { @@ -1843,6 +1843,7 @@ class acp_users $result = $db->sql_query($sql); $hold_ary = array(); + while ($row = $db->sql_fetchrow($result)) { $hold_ary = $auth_admin->get_mask('view', $user_id, false, false, $row['auth_option'], 'global', ACL_NEVER); @@ -1856,7 +1857,7 @@ class acp_users { $sql = 'SELECT auth_option, is_local, is_global FROM ' . ACL_OPTIONS_TABLE . " - WHERE auth_option LIKE '%\_'"; + WHERE auth_option LIKE '%" . $db->sql_escape('\_') . "'"; if ($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc') { diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index fbdd236c7b..ba9ec8dad2 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -3878,7 +3878,7 @@ function page_header($page_title = '', $display_online_list = true) $f = request_var('f', 0); // Do not change this (it is defined as _f_={forum_id}x within session.php) - $reading_sql = " AND s.session_page LIKE '%\_f\_={$f}x%'"; + $reading_sql = " AND s.session_page LIKE '%" . $db->sql_escape("\_f\_={$f}x") . "%'"; // Specify escape character for MSSQL if ($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc') diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index f522670e5d..d734b67706 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -2206,7 +2206,7 @@ function cache_moderators() AND a.group_id = ug.group_id AND ' . $db->sql_in_set('ug.user_id', $ug_id_ary) . " AND ug.user_pending = 0 - AND o.auth_option LIKE 'm\_%'" . + AND o.auth_option LIKE '" . $db->sql_escape('m\_') . "%'" . (($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc') ? " ESCAPE '\\'" : ''), )); $result = $db->sql_query($sql); diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php index 0e14757885..604df58e9e 100644 --- a/phpBB/install/convertors/convert_phpbb20.php +++ b/phpBB/install/convertors/convert_phpbb20.php @@ -706,7 +706,8 @@ if (!$get_info) array('pm_forwarded', 0, ''), array('folder_id', PRIVMSGS_INBOX, ''), - 'where' => 'privmsgs.privmsgs_type = 0 OR privmsgs.privmsgs_type = 1 OR privmsgs.privmsgs_type = 5', + 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id + AND (privmsgs.privmsgs_type = 0 OR privmsgs.privmsgs_type = 1 OR privmsgs.privmsgs_type = 5)', ), // Outbox @@ -725,7 +726,8 @@ if (!$get_info) array('pm_forwarded', 0, ''), array('folder_id', PRIVMSGS_OUTBOX, ''), - 'where' => 'privmsgs.privmsgs_type = 1 OR privmsgs.privmsgs_type = 5', + 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id + AND (privmsgs.privmsgs_type = 1 OR privmsgs.privmsgs_type = 5)', ), // Sentbox @@ -744,7 +746,8 @@ if (!$get_info) array('pm_forwarded', 0, ''), array('folder_id', PRIVMSGS_SENTBOX, ''), - 'where' => 'privmsgs.privmsgs_type = 2', + 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id + AND privmsgs.privmsgs_type = 2', ), // Savebox (SAVED IN) @@ -763,7 +766,8 @@ if (!$get_info) array('pm_forwarded', 0, ''), array('folder_id', 'privmsgs.privmsgs_to_userid', 'phpbb_get_savebox_id'), - 'where' => 'privmsgs.privmsgs_type = 3', + 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id + AND privmsgs.privmsgs_type = 3', ), // Savebox (SAVED OUT) @@ -782,7 +786,8 @@ if (!$get_info) array('pm_forwarded', 0, ''), array('folder_id', 'privmsgs.privmsgs_from_userid', 'phpbb_get_savebox_id'), - 'where' => 'privmsgs.privmsgs_type = 4', + 'where' => 'privmsgs.privmsgs_id = privmsgs_text.privmsgs_text_id + AND privmsgs.privmsgs_type = 4', ), array(