Aleksander Machniak
2015-09-23 0ee57208b3eb2e4c45412fe45d146c8e8e3458e6
Add possibility to set PDO::ATTR_PREFETCH and PDO::ATTR_TIMEOUT via DSN string
2 files modified
18 ■■■■ changed files
program/lib/Roundcube/rcube_db.php 16 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db_mysql.php 2 ●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_db.php
@@ -149,10 +149,6 @@
        $dsn_string  = $this->dsn_string($dsn);
        $dsn_options = $this->dsn_options($dsn);
        if ($this->db_pconn) {
            $dsn_options[PDO::ATTR_PERSISTENT] = true;
        }
        // Connect
        try {
            // with this check we skip fatal error on PDO object creation
@@ -1271,6 +1267,18 @@
    {
        $result = array();
        if ($this->db_pconn) {
            $result[PDO::ATTR_PERSISTENT] = true;
        }
        if (!empty($dsn['prefetch'])) {
            $result[PDO::ATTR_PREFETCH] = (int) $dsn['prefetch'];
        }
        if (!empty($dsn['timeout'])) {
            $result[PDO::ATTR_TIMEOUT] = (int) $dsn['timeout'];
        }
        return $result;
    }
program/lib/Roundcube/rcube_db_mysql.php
@@ -118,7 +118,7 @@
     */
    protected function dsn_options($dsn)
    {
        $result = array();
        $result = parent::dsn_options($dsn);
        if (!empty($dsn['key'])) {
            $result[PDO::MYSQL_ATTR_SSL_KEY] = $dsn['key'];