From aea5da0ef6f4d3907ace2c1fdba743312118660c Mon Sep 17 00:00:00 2001
From: Erik Johnston <erik@matrix.org>
Date: Mon, 25 Jan 2016 15:59:29 +0000
Subject: [PATCH] Guard against empty iterables

---
 synapse/storage/_base.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index 304ebdc825..90d7aee94a 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -647,6 +647,9 @@ class SQLBaseStore(object):
         """
         results = []
 
+        if not iterable:
+            defer.returnValue(results)
+
         chunks = [iterable[i:i+batch_size] for i in xrange(0, len(iterable), batch_size)]
         for chunk in chunks:
             rows = yield self.runInteraction(
@@ -673,6 +676,9 @@ class SQLBaseStore(object):
             keyvalues : dict of column names and values to select the rows with
             retcols : list of strings giving the names of the columns to return
         """
+        if not iterable:
+            return []
+
         sql = "SELECT %s FROM %s" % (", ".join(retcols), table)
 
         clauses = []
-- 
GitLab