From f1bfd4433e90f3781a82e9e8efec088f6aa77e59 Mon Sep 17 00:00:00 2001
From: Thomas Citharel <tcit@tcit.fr>
Date: Sun, 24 Sep 2017 15:24:08 +0200
Subject: [PATCH] Don't add a LIKE condition when it's not needed

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
---
 apps/dav/lib/CardDAV/CardDavBackend.php | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index 7c275611951..2e4acad6dfe 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -890,7 +890,11 @@ class CardDavBackend implements BackendInterface, SyncSupport {
 			$or->add($query2->expr()->eq('cp.name', $query->createNamedParameter($property)));
 		}
 		$query2->andWhere($or);
-		$query2->andWhere($query2->expr()->ilike('cp.value', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($pattern) . '%')));
+
+		// No need for like when the pattern is empty
+		if ('' !== $pattern) {
+			$query2->andWhere($query2->expr()->ilike('cp.value', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($pattern) . '%')));
+		}
 
 		$query->select('c.carddata', 'c.uri')->from($this->dbCardsTable, 'c')
 			->where($query->expr()->in('c.id', $query->createFunction($query2->getSQL())));
-- 
GitLab