From 46b6c5475bf2b188e04c1e0a5fe8a9e387ecda80 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 04 Jun 2012 04:11:24 -0400
Subject: [PATCH] Modify CONCAT() arguments, because + operator requires them to be of type varchar (#1488505) With SQL Server 2012 we can use just CONCAT(), but we need to support older versions

---
 CHANGELOG                      |    1 +
 program/include/rcube_mdb2.php |    5 +++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 0a9f2ba..4a275be 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix SQL query for contacts listing on MS SQL Server (#1488505)
 - Update to TinyMCE 3.5.2
 - Fix window.resize handler on IE8 and Opera (#1488453)
 - Don't let error message popups cover the login form (#1488500)
diff --git a/program/include/rcube_mdb2.php b/program/include/rcube_mdb2.php
index a255d9e..721963b 100644
--- a/program/include/rcube_mdb2.php
+++ b/program/include/rcube_mdb2.php
@@ -691,6 +691,11 @@
             case 'mssql':
             case 'sqlsrv':
                 $delim = ' + ';
+                // Modify arguments, because + operator requires them to be of type varchar (#1488505)
+                // with SQL Server 2012 we can use just CONCAT(), but we need to support older versions
+                foreach ($args as $idx => $arg) {
+                    $args[$idx] = "CAST($arg AS varchar)";
+                }
                 break;
             default:
                 $delim = ' || ';

--
Gitblit v1.9.1