[ticket/17475] Fix MSSQL arithmetic overflow error on counting attachments size

PHPBB-17475
This commit is contained in:
rxu 2025-03-10 21:24:15 +07:00
parent 64dd8b668e
commit 14a6322b4f
No known key found for this signature in database
GPG key ID: 955F0567380E586A
4 changed files with 4 additions and 4 deletions

View file

@ -1077,7 +1077,7 @@ class acp_attachments
$attachments_per_page = (int) $config['topics_per_page']; $attachments_per_page = (int) $config['topics_per_page'];
// Get total number or orphans older than 3 hours // Get total number or orphans older than 3 hours
$sql = 'SELECT COUNT(attach_id) as num_files, SUM(filesize) as total_size $sql = 'SELECT COUNT(attach_id) as num_files, SUM(' . $this->db->cast_expr_to_bigint('filesize') . ') as total_size
FROM ' . ATTACHMENTS_TABLE . ' FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 1 WHERE is_orphan = 1
AND filetime < ' . (time() - 3*60*60); AND filetime < ' . (time() - 3*60*60);

View file

@ -2071,7 +2071,7 @@ class acp_forums
$config->set('num_files', (int) $row['stat'], false); $config->set('num_files', (int) $row['stat'], false);
$sql = 'SELECT SUM(filesize) as stat $sql = 'SELECT SUM(' . $db->cast_expr_to_bigint('filesize') . ') as stat
FROM ' . ATTACHMENTS_TABLE; FROM ' . ATTACHMENTS_TABLE;
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);

View file

@ -182,7 +182,7 @@ class acp_main
$config->set('num_files', (int) $db->sql_fetchfield('stat'), false); $config->set('num_files', (int) $db->sql_fetchfield('stat'), false);
$db->sql_freeresult($result); $db->sql_freeresult($result);
$sql = 'SELECT SUM(filesize) as stat $sql = 'SELECT SUM(' . $db->cast_expr_to_bigint('filesize') . ') as stat
FROM ' . ATTACHMENTS_TABLE . ' FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 0'; WHERE is_orphan = 0';
$result = $db->sql_query($sql); $result = $db->sql_query($sql);

View file

@ -1998,7 +1998,7 @@ function update_dynamic_config()
$config->set('num_files', (int) $db->sql_fetchfield('stat'), false); $config->set('num_files', (int) $db->sql_fetchfield('stat'), false);
$db->sql_freeresult($result); $db->sql_freeresult($result);
$sql = 'SELECT SUM(filesize) as stat $sql = 'SELECT SUM(' . $db->cast_expr_to_bigint('filesize') . ') as stat
FROM ' . ATTACHMENTS_TABLE . ' FROM ' . ATTACHMENTS_TABLE . '
WHERE is_orphan = 0'; WHERE is_orphan = 0';
$result = $db->sql_query($sql); $result = $db->sql_query($sql);