From 000f6ee3041c0e587c4a54daa95dfc421f7bd2d4 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 22 Sep 2014 03:38:21 -0400
Subject: [PATCH] Merge branch 'oracle'

---
 program/lib/Roundcube/rcube_imap_cache.php |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/program/lib/Roundcube/rcube_imap_cache.php b/program/lib/Roundcube/rcube_imap_cache.php
index 5191321..6ba6b8b 100644
--- a/program/lib/Roundcube/rcube_imap_cache.php
+++ b/program/lib/Roundcube/rcube_imap_cache.php
@@ -562,6 +562,8 @@
             }
         }
 
+        $binary_check = $this->db->db_provider == 'oracle' ? "BITAND(`flags`, %d)" : "(`flags` & %d)";
+
         $this->db->query(
             "UPDATE {$this->messages_table}"
             ." SET `expires` = ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
@@ -570,6 +572,7 @@
                 ." AND `mailbox` = ?"
                 .(!empty($uids) ? " AND `uid` IN (".$this->db->array2list($uids, 'integer').")" : "")
                 ." AND (`flags` & $idx) ".($enabled ? "= 0" : "= $idx"),
+                ." AND " . sprintf($binary_check, $idx) . ($enabled ? " = 0" : " = $idx"),
             $this->userid, $mailbox);
     }
 

--
Gitblit v1.9.1