summaryrefslogtreecommitdiffstats
path: root/beets/dbcore/query.py
diff options
context:
space:
mode:
Diffstat (limited to 'beets/dbcore/query.py')
-rw-r--r--beets/dbcore/query.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/beets/dbcore/query.py b/beets/dbcore/query.py
index 016fe2c1a..166b385cf 100644
--- a/beets/dbcore/query.py
+++ b/beets/dbcore/query.py
@@ -22,6 +22,8 @@ from datetime import datetime, timedelta
import unicodedata
from functools import reduce
+from .database import add_db_function
+
class ParsingError(ValueError):
"""Abstract class for any unparseable user-requested album/query
@@ -231,6 +233,13 @@ class RegexpQuery(StringFieldQuery):
"a regular expression",
format(exc))
+ @staticmethod
+ @add_db_function()
+ def regexp(value, pattern) -> bool:
+ if isinstance(value, bytes):
+ value = value.decode()
+ return re.search(pattern, str(value)) is not None
+
def col_clause(self):
return f" regexp({self.field}, ?)", [self.pattern.pattern]