1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-20 07:42:09 +02:00

Merge pull request #6122 from AlfredoRamos/ticket/16686

[ticket/16686] Simplify get_database_size() SQL query for PostgreSQL
This commit is contained in:
Marc Alexander 2021-01-15 22:08:30 +01:00
commit 9da049748a
No known key found for this signature in database
GPG Key ID: 50E0D2423696F995

View File

@ -2900,37 +2900,18 @@ function get_database_size()
break;
case 'postgres':
$sql = "SELECT proname
FROM pg_proc
WHERE proname = 'pg_database_size'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$database = $db->get_db_name();
if ($row['proname'] == 'pg_database_size')
if (strpos($database, '.') !== false)
{
$database = $db->get_db_name();
if (strpos($database, '.') !== false)
{
list($database, ) = explode('.', $database);
}
$sql = "SELECT oid
FROM pg_database
WHERE datname = '$database'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$oid = $row['oid'];
$sql = 'SELECT pg_database_size(' . $oid . ') as size';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$database_size = $row['size'];
$database = explode('.', $database)[0];
}
$sql = "SELECT pg_database_size('" . $database . "') AS dbsize";
$result = $db->sql_query($sql, 7200);
$row = $db->sql_fetchrow($result);
$database_size = !empty($row['dbsize']) ? $row['dbsize'] : false;
$db->sql_freeresult($result);
break;
case 'oracle':