Aleksander Machniak
2015-02-24 8f485469c7955fbf5b420ee0b6f043282965715b
Add possibility to configure max_allowed_packet value for all database engines (#1490283)
5 files modified
19 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
config/defaults.inc.php 6 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db.php 2 ●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db_mysql.php 6 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db_pgsql.php 4 ●●● patch | view | raw | blame | history
CHANGELOG
@@ -3,6 +3,7 @@
- Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization)
- Add possibility to print contact information (of a single contact)
- Add possibility to configure max_allowed_packet value for all database engines (#1490283)
- Fix refreshing of drafts list when sending a message which was saved in meantime (#1490238)
- Fix saving/sending emoticon images when assets_dir is set
- Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet
config/defaults.inc.php
@@ -51,6 +51,12 @@
//    'cache_messages' => 'r',
);
// It is possible to specify database variable values e.g. some limits here.
// Use them if your server is not MySQL or for better performance.
// For example Roundcube uses max_allowed_packet value (in bytes)
// which limits query size for database cache operations.
$config['db_max_allowed_packet'] = 23423440;
// ----------------------------------
// LOGGING/DEBUGGING
program/lib/Roundcube/rcube_db.php
@@ -357,7 +357,7 @@
    public function get_variable($varname, $default = null)
    {
        // to be implemented by driver class
        return $default;
        return rcube::get_instance()->config->get('db_' . $varname, $default);
    }
    /**
program/lib/Roundcube/rcube_db_mysql.php
@@ -167,6 +167,12 @@
            return $this->variables[$varname];
        }
        // configured value has higher prio
        $conf_value = rcube::get_instance()->config->get('db_' . $varname);
        if ($conf_value !== null) {
            return $this->variables[$varname] = $conf_value;
        }
        $result = $this->query('SHOW VARIABLES LIKE ?', $varname);
        while ($row = $this->fetch_array($result)) {
program/lib/Roundcube/rcube_db_pgsql.php
@@ -139,9 +139,11 @@
        // There's a known case when max_allowed_packet is queried
        // PostgreSQL doesn't have such limit, return immediately
        if ($varname == 'max_allowed_packet') {
            return $default;
            return rcube::get_instance()->config->get('db_' . $varname, $default);
        }
        $this->variables[$varname] = rcube::get_instance()->config->get('db_' . $varname);
        if (!isset($this->variables)) {
            $this->variables = array();