{"html_url": "https://github.com/simonw/datasette/issues/1262#issuecomment-802099264", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1262", "id": 802099264, "node_id": "MDEyOklzc3VlQ29tbWVudDgwMjA5OTI2NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-03-18T16:43:09Z", "updated_at": "2021-03-18T16:43:09Z", "author_association": "OWNER", "body": "I often find myself wanting this too, when I'm exploring a new dataset.\r\n\r\ni agree with Bob that this is a good candidate for a plugin. The plugin system isn't quite setup for this yet though - there isn't an obvious mechanism for adding extra sort orders or other interface elements that manipulate the query used by the table view in some way.\r\n\r\nI'm going to promote this issue to status of a plugin hook feature request - I have a hunch that a plugin hook that enables `order by random()` could enable a lot of other useful plugin features too.", "reactions": "{\"total_count\": 2, \"+1\": 2, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 834602299, "label": "Plugin hook that could support 'order by random()' for table view"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/159#issuecomment-802032152", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/159", "id": 802032152, "node_id": "MDEyOklzc3VlQ29tbWVudDgwMjAzMjE1Mg==", "user": {"value": 1025224, "label": "limar"}, "created_at": "2021-03-18T15:42:52Z", "updated_at": "2021-03-18T15:42:52Z", "author_association": "NONE", "body": "I confirm the bug. Happens for me in version 3.6. I use the call to delete all the records:\r\n`table.delete_where()`\r\nThis does not delete anything. \r\n\r\nI see that `delete()` method DOES use context manager `with self.db.conn:` which should help. You may want to align the code of both methods.", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 702386948, "label": ".delete_where() does not auto-commit (unlike .insert() or .upsert())"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1262#issuecomment-802095132", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1262", "id": 802095132, "node_id": "MDEyOklzc3VlQ29tbWVudDgwMjA5NTEzMg==", "user": {"value": 7476523, "label": "bobwhitelock"}, "created_at": "2021-03-18T16:37:45Z", "updated_at": "2021-03-18T16:37:45Z", "author_association": "CONTRIBUTOR", "body": "This sounds like a good use case for a plugin, since this will only be useful for a subset of Datasette users. It shouldn't be too difficult to add a button to do this with the available plugin hooks - have you taken a look at https://docs.datasette.io/en/latest/writing_plugins.html?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 834602299, "label": "Plugin hook that could support 'order by random()' for table view"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1262#issuecomment-802164134", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1262", "id": 802164134, "node_id": "MDEyOklzc3VlQ29tbWVudDgwMjE2NDEzNA==", "user": {"value": 19328961, "label": "henry501"}, "created_at": "2021-03-18T17:55:00Z", "updated_at": "2021-03-18T17:55:00Z", "author_association": "NONE", "body": "Thanks for the comments. I'll take a look at the documentation to familiarize myself, as I haven't tried to write any plugins yet. With some luck I might be ready to write it when the hook is implemented.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 834602299, "label": "Plugin hook that could support 'order by random()' for table view"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/246#issuecomment-801816980", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/246", "id": 801816980, "node_id": "MDEyOklzc3VlQ29tbWVudDgwMTgxNjk4MA==", "user": {"value": 37962604, "label": "polyrand"}, "created_at": "2021-03-18T10:40:32Z", "updated_at": "2021-03-18T10:43:04Z", "author_association": "NONE", "body": "I have found a similar problem, but I only when using that type of query (with `*` for doing a prefix search). I'm also building something on top of FTS5/sqlite-utils, and the way I decided to handle it was creating a specific function for prefixes. According to [the docs](https://www2.sqlite.org/fts5.html#fts5_prefix_queries), the query can be done in this 2 ways:\r\n\r\n```sql\r\n... MATCH '\"one two thr\" * '\r\n... MATCH 'one + two + thr*'\r\n```\r\n\r\nI thought I could build a query like the first one using this function:\r\n\r\n```python\r\ndef prefix(query: str):\r\n return f'\"{query}\" *'\r\n```\r\n\r\nAnd then I use the output of that function as the query parameter for the standard `.search()` method in sqlite-utils.\r\n\r\nHowever, my use case is different because I'm the one \"deciding\" when to use a prefix search, not the end user. I also haven't done many tests, but maybe you found that useful. One thing I could think of is checking if the query has an `*` at the end, remove it and build the prefix query using the function above.\r\n\r\nThis is just for prefix queries, I think having the escaping function is still useful for other use cases.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 831751367, "label": "Escaping FTS search strings"}, "performed_via_github_app": null}