Merge pull request #3076 from quay/joseph.schorr/QUAY-937/star-search

Fix MySQL bug in full text search
This commit is contained in:
josephschorr 2018-05-14 10:10:54 -04:00 committed by GitHub
commit e5b86d4763
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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)