html_url,issue_url,id,node_id,user,user_label,created_at,updated_at,author_association,body,reactions,issue,issue_label,performed_via_github_app https://github.com/simonw/datasette/issues/743#issuecomment-620177365,https://api.github.com/repos/simonw/datasette/issues/743,620177365,MDEyOklzc3VlQ29tbWVudDYyMDE3NzM2NQ==,9599,simonw,2020-04-27T19:11:01Z,2020-04-27T19:11:30Z,OWNER,"Huh... turns out the documentation already claims that wildcards work! Closing this as wontfix: https://datasette.readthedocs.io/en/stable/full_text_search.html#the-table-view-api ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607770595,escape_fts() does not correctly escape * wildcards, https://github.com/simonw/datasette/issues/743#issuecomment-620174977,https://api.github.com/repos/simonw/datasette/issues/743,620174977,MDEyOklzc3VlQ29tbWVudDYyMDE3NDk3Nw==,9599,simonw,2020-04-27T19:05:56Z,2020-04-27T19:05:56Z,OWNER,"The other option would be to leave this as-is, and let people wildcard search all they want. I'm leaning in that direction.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607770595,escape_fts() does not correctly escape * wildcards, https://github.com/simonw/datasette/issues/743#issuecomment-620170826,https://api.github.com/repos/simonw/datasette/issues/743,620170826,MDEyOklzc3VlQ29tbWVudDYyMDE3MDgyNg==,9599,simonw,2020-04-27T18:58:04Z,2020-04-27T18:58:04Z,OWNER,"Maybe this is moot because you can't store a `*` character in a FTS table anyway, so it would never make sense to search for one? In which case maybe `escape_fts()` should just strip out `*` entirely? Best source of information I could find was this tiny thread from 2014 about FTS4: http://sqlite.1065341.n5.nabble.com/Escaping-conventions-for-FTS4-virtual-table-queries-td74589.html > Dave Baggett wrote: > > What if I want docids of documents containing the exact literal token ""any*""? > > You would have to use one of the Unicode tokenizers, and configure it to > interpret * as a token character. > > > how do I escape the asterisk so that it's not interpreted as a wildcard? > > There are no escapes. When * is a token character, you lose the ability > to do prefix searches. I could investigate further by learning to use the fts5vocab virtual table debugging tool to see what's actually stored in those FTS5 indexes and check if `*` is indeed stripped by them. https://www.sqlite.org/fts5.html#the_fts5vocab_virtual_table_module","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607770595,escape_fts() does not correctly escape * wildcards, https://github.com/simonw/datasette/issues/743#issuecomment-620166959,https://api.github.com/repos/simonw/datasette/issues/743,620166959,MDEyOklzc3VlQ29tbWVudDYyMDE2Njk1OQ==,9599,simonw,2020-04-27T18:50:30Z,2020-04-27T18:50:30Z,OWNER,"Here's the `escape_fts()` function: https://github.com/simonw/datasette/blob/89c4ddd4828623888e91a1d2cb396cba12d4e7b4/datasette/utils/__init__.py#L742-L753 https://latest.datasette.io/fixtures?sql=select+escape_fts%28%27bar%2A%27%29 So apparently wrapping a SQLite FTS word like `""bar*""` doesn't prevent SQLite from expanding the wildcard.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",607770595,escape_fts() does not correctly escape * wildcards,