fix+test: escape "_" symbol in tags filtering

This commit is contained in:
bigcat88
2025-09-15 17:29:27 +03:00
parent 5f187fe6fb
commit f3cf99d10c
4 changed files with 39 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
def escape_like_prefix(s: str, escape: str = "!") -> tuple[str, str]:
"""Escapes %, _ and the escape char itself in a LIKE prefix.
Returns (escaped_prefix, escape_char). Caller should append '%' and pass escape=escape_char to .like().
"""
s = s.replace(escape, escape + escape) # escape the escape char first
s = s.replace("%", escape + "%").replace("_", escape + "_") # escape LIKE wildcards
return s, escape