Fix MySQL bug in full text search

Fixes https://jira.coreos.com/browse/QUAY-937
This commit is contained in:
Joseph Schorr 2018-05-14 08:41:40 -04:00
parent 7345ff855c
commit 49699fe251

View file

@ -25,6 +25,10 @@ def match_mysql(field, search_query):
if field.name.find('`') >= 0: # Just to be safe.
raise Exception("How did field name '%s' end up containing a backtick?" % field.name)
# Note: There is a known bug in MySQL (https://bugs.mysql.com/bug.php?id=78485) that causes
# queries of the form `*` to raise a parsing error. If found, simply filter out.
search_query = search_query.replace('*', '')
return Clause(fn.MATCH(SQL("`%s`" % field.name)), fn.AGAINST(SQL('%s', search_query)),
parens=True)