From b89ae385b7d0778529c8b6bf46fdec956f132d79 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Sat, 11 Apr 2015 14:36:51 -0400 Subject: [PATCH] Fix searching for message The message search currently looks for an exact match, which is pretty much never what anyone would want to do, and moreover, does not match the gerrit documentation. It should actually perform a substring match, so switch to using "like %%". Change-Id: I281d59887de247eb3f3fd508635efa44714fa054 --- gertty/search/__init__.py | 2 +- gertty/search/parser.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gertty/search/__init__.py b/gertty/search/__init__.py index 6eef69c..1e78bee 100644 --- a/gertty/search/__init__.py +++ b/gertty/search/__init__.py @@ -62,7 +62,7 @@ class SearchCompiler(object): if __name__ == '__main__': class Dummy(object): pass - query = 'ref:^refs/heads/foo.*' + query = 'message:"Blueprint"' lexer = tokenizer.SearchTokenizer() lexer.input(query) while True: diff --git a/gertty/search/parser.py b/gertty/search/parser.py index 69ae522..cd56e46 100644 --- a/gertty/search/parser.py +++ b/gertty/search/parser.py @@ -224,7 +224,7 @@ def SearchParser(): '''message_term : OP_MESSAGE string''' filters = [] filters.append(gertty.db.revision_table.c.change_key == gertty.db.change_table.c.key) - filters.append(gertty.db.revision_table.c.message == p[2]) + filters.append(gertty.db.revision_table.c.message.like('%%%s%%' % p[2])) s = select([gertty.db.change_table.c.key], correlate=False).where(and_(*filters)) p[0] = gertty.db.change_table.c.key.in_(s)