Escape_fts5_query-hookimplementation does not work with queries to standard tables
See original GitHub issueHi Simon
Thank you for adding the escape_function, but it does not work on my datasette-installation (0.33). I’ve added the following file to my datasette-dir: /plugins/sql_functions.py:
`from datasette import hookimpl
def escape_fts_query(query): bits = query.split() return ’ ‘.join(’“{}”‘.format(bit.replace(’"', ‘’)) for bit in bits)
@hookimpl def prepare_connection(conn): conn.create_function(“escape_fts_query”, 1, escape_fts_query)`
It has no effect on the standard queries to the tables though, as they still produce errors when including any characters like ‘-’, ‘/’, ‘+’ or ‘?’
Does the function only work when using costum queries, where I can include the escape_fts-function explicitly in the sql-query?
PS. I’m calling datasette with --plugins=plugins, and my other plugins work just fine. PPS. The fts5 virtual table is created with ‘sqlite3’ like so:
CREATE VIRTUAL TABLE "cases_fts" USING FTS5( title, subtitle, resume, suggestion, presentation, detail = full, content_rowid = 'id', content = 'cases', tokenize='unicode61', 'remove_diacritics 2', 'tokenchars "-_"' );
Thanks!
_Originally posted by @clausjuhl in https://github.com/simonw/datasette/issues/651#issuecomment-579675357_
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:5 (3 by maintainers)
Top GitHub Comments
I just shipped 0.34: https://datasette.readthedocs.io/en/stable/changelog.html#v0-34
This is excellent news. I’ll wait until version 0.34. It would be tiresome to rewrite all standard-queries into custom queries. Thank you!