Index: roundup/hyperdb.py =================================================================== --- roundup/hyperdb.py (revision 4128) +++ roundup/hyperdb.py (working copy) @@ -707,7 +707,7 @@ raise NotImplementedError def getfile(self, classname, nodeid, property): - '''Store the content of the file in the database. + '''Get the content of the file in the database. ''' raise NotImplementedError @@ -1129,7 +1129,7 @@ backward-compatibility reasons a single (dir, prop) tuple is also allowed. - "search_matches" is {nodeid: marker} + "search_matches" is a sequence type The filter must match all properties specificed. If the property value to match is a list: Index: roundup/backends/back_anydbm.py =================================================================== --- roundup/backends/back_anydbm.py (revision 4128) +++ roundup/backends/back_anydbm.py (working copy) @@ -1561,7 +1561,7 @@ "sort" and "group" are (dir, prop) where dir is '+', '-' or None and prop is a prop name or None - "search_matches" is {nodeid: marker} or None + "search_matches" is a sequence type or None The filter must match all properties specificed. If the property value to match is a list: @@ -1721,7 +1721,7 @@ if search_matches is not None: k = [] for v in matches: - if search_matches.has_key(v[0]): + if v[0] in search_matches: k.append(v) matches = k Index: roundup/backends/rdbms_common.py =================================================================== --- roundup/backends/rdbms_common.py (revision 4131) +++ roundup/backends/rdbms_common.py (working copy) @@ -2114,7 +2114,7 @@ backward-compatibility reasons a single (dir, prop) tuple is also allowed. - "search_matches" is {nodeid: marker} or None + "search_matches" is a sequence type or None The filter must match all properties specificed. If the property value to match is a list: @@ -2123,7 +2123,7 @@ 2. Other properties must match any of the elements in the list. """ # we can't match anything if search_matches is empty - if search_matches == {}: + if not search_matches and search_matches is not None: return [] if __debug__: @@ -2334,8 +2334,7 @@ # add results of full text search if search_matches is not None: - v = search_matches.keys() - s = ','.join([a for x in v]) + s = ','.join([a for x in search_matches]) where.append('_%s.id in (%s)'%(icn, s)) args = args + v