# HG changeset patch # User Goffi # Date 1490808472 -7200 # Node ID ea41cf1e6d29b84169976010cfe059a11e68f81b # Parent c316c6f6a73795df6af52ede069e85352c71fc42 memory (persistent, sqlite): fixed getPrivates bug with keys arguments and its use in LazyPersistentBinaryDict diff -r c316c6f6a737 -r ea41cf1e6d29 src/memory/persistent.py --- a/src/memory/persistent.py Sun Mar 26 21:23:03 2017 +0200 +++ b/src/memory/persistent.py Wed Mar 29 19:27:52 2017 +0200 @@ -201,7 +201,9 @@ def __getitem__(self, key): """get the value as a Deferred""" - return self.storage.getPrivates(self.namespace, keys=[key], binary=self.binary, profile=self.profile) + d = self.storage.getPrivates(self.namespace, keys=[key], binary=self.binary, profile=self.profile) + d.addCallback(lambda data: data[key]) + return d def __setitem__(self, key, value): self.storage.setPrivateValue(self.namespace, key, value, self.binary, self.profile) diff -r c316c6f6a737 -r ea41cf1e6d29 src/memory/sqlite.py --- a/src/memory/sqlite.py Sun Mar 26 21:23:03 2017 +0200 +++ b/src/memory/sqlite.py Wed Mar 29 19:27:52 2017 +0200 @@ -571,8 +571,9 @@ args = [namespace] if keys is not None: - query_parts.append(u'AND key IN ?') - args.append(keys) + placeholders = u','.join(len(keys) * u'?') + query_parts.append(u'AND key IN (' + placeholders + u')') + args.extend(keys) if profile is not None: query_parts.append(u'AND profile_id=?')