{"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590697977", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590697977, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDY5Nzk3Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-25T05:57:24Z", "updated_at": "2020-02-25T05:57:24Z", "author_association": "OWNER", "body": "OK, this is in master now. You can install master using:\r\n\r\n pip install https://github.com/simonw/datasette/archive/master.zip\r\n\r\nDocumentation here: https://datasette.readthedocs.io/en/latest/json_api.html#special-table-arguments", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590113889", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590113889, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMzg4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:44:11Z", "updated_at": "2020-02-23T20:44:11Z", "author_association": "OWNER", "body": "Still needs documentation before I can land it in master.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590113869", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590113869, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMzg2OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:43:59Z", "updated_at": "2020-02-23T20:43:59Z", "author_association": "OWNER", "body": "You can try this right now like so:\r\n\r\n pip install https://github.com/simonw/datasette/archive/search-raw.zip\r\n\r\nThen use the following:\r\n\r\n ?_search=foo*&_searchmode=raw`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590110086", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590110086, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMDA4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:06:03Z", "updated_at": "2020-02-23T20:06:52Z", "author_association": "OWNER", "body": "Nice thing about the \"search mode\" concept is that I can optionally reflect it in the HTML UI in some way - maybe with a checkbox for \"raw\" mode that only shows up if the user hits the page with `?_searchmode=raw` in the querystring.\r\n\r\nIt also hints at potentially adding further search modes in the future. Not sure if I'd do that but it's an interesting potential avenue to explore.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590109778", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590109778, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwOTc3OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:02:28Z", "updated_at": "2020-02-23T20:02:28Z", "author_association": "OWNER", "body": "`?_search_raw=` doesn't work because it clashes with an existing feature - you can use `?_search_colname=` to search just within a specific column, and there could possibly be a column called `raw`.\r\n\r\nI could go with `?_searchraw=` - or maybe have an additional \"mode\" selection like `?_search=foo*&_searchmode=raw`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590109450", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590109450, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwOTQ1MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:59:11Z", "updated_at": "2020-02-23T19:59:11Z", "author_association": "OWNER", "body": "I'm going to call it `?_search_raw=` because it will pass through the value as a raw (unprocessed) argument to SQLite FTS, which means it will expose features other than just wildcards: https://www.sqlite.org/fts5.html#full_text_query_syntax", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-589908293", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 589908293, "node_id": "MDEyOklzc3VlQ29tbWVudDU4OTkwODI5Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-22T02:31:21Z", "updated_at": "2020-02-22T02:31:21Z", "author_association": "OWNER", "body": "I'm afraid this is by design: supporting wildcards in that mode was more-or-less accidental and often resulted in unexpected user-facing syntax errors when users accidentally entered search text that included characters with special meaning to SQLite.\r\n\r\nYou can still execute wildcard searches but you have to do so using custom SQL statements.\r\n\r\nI'm open to suggestions for more friendly ways to support this functionality. Would an alternative `_search_wildcard=` URL parameter be worth supporting I wonder? What's your specific use-case for wildcards?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null}