{"html_url": "https://github.com/simonw/datasette/pull/739#issuecomment-619678614", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/739", "id": 619678614, "node_id": "MDEyOklzc3VlQ29tbWVudDYxOTY3ODYxNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T02:44:21Z", "updated_at": "2020-04-27T02:44:21Z", "author_association": "OWNER", "body": "I'm going to add a `Datasette(config_dir=\".\")` parameter which initializes from the given directory, allowing other parameters to over-ride it.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607107849, "label": "Configuration directory mode"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/740#issuecomment-619698467", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/740", "id": 619698467, "node_id": "MDEyOklzc3VlQ29tbWVudDYxOTY5ODQ2Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T03:51:27Z", "updated_at": "2020-04-27T03:51:27Z", "author_association": "OWNER", "body": "Spotted this while working on #731", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607211058, "label": "Don't throw 500 error on attempted directory browse"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/739#issuecomment-619700113", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/739", "id": 619700113, "node_id": "MDEyOklzc3VlQ29tbWVudDYxOTcwMDExMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T03:58:09Z", "updated_at": "2020-04-27T03:58:09Z", "author_association": "OWNER", "body": "I think documentation goes on https://datasette.readthedocs.io/en/stable/config.html - but I'm going to need to re-arrange that page to fit in a section about configuration directories.\r\n\r\nI'll move the existing list of settings into a \"configration options\" section.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607107849, "label": "Configuration directory mode"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/741#issuecomment-619708745", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/741", "id": 619708745, "node_id": "MDEyOklzc3VlQ29tbWVudDYxOTcwODc0NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T04:29:26Z", "updated_at": "2020-04-27T04:29:26Z", "author_association": "OWNER", "body": "I can show deprecation warnings for `--extra-options` and remove the option entirely in Datasette 1.0.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607223136, "label": "Replace \"datasette publish --extra-options\" with \"--setting\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/741#issuecomment-619708914", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/741", "id": 619708914, "node_id": "MDEyOklzc3VlQ29tbWVudDYxOTcwODkxNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T04:30:02Z", "updated_at": "2020-04-27T04:30:24Z", "author_association": "OWNER", "body": "This can generate a `config.json` file that's included the published deployment, thanks to the work in #731 (pull request #739).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607223136, "label": "Replace \"datasette publish --extra-options\" with \"--setting\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/731#issuecomment-620095649", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/731", "id": 620095649, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDA5NTY0OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T16:32:44Z", "updated_at": "2020-04-27T16:32:44Z", "author_association": "OWNER", "body": "Documentation: https://datasette.readthedocs.io/en/latest/config.html#configuration-directory-mode", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 605110015, "label": "Option to automatically configure based on directory layout"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/742#issuecomment-620153909", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/742", "id": 620153909, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE1MzkwOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T18:24:53Z", "updated_at": "2020-04-27T18:24:53Z", "author_association": "OWNER", "body": "I'm already using it extensively:\r\n\r\nhttps://github.com/simonw/datasette/blob/25014ca25eb70b4c1217558ebd14db2845973bfb/tests/fixtures.py#L165-L189", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607243940, "label": "Speed up tests with scope=\"session\"?"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/743#issuecomment-620166959", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/743", "id": 620166959, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE2Njk1OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T18:50:30Z", "updated_at": "2020-04-27T18:50:30Z", "author_association": "OWNER", "body": "Here's the `escape_fts()` function:\r\nhttps://github.com/simonw/datasette/blob/89c4ddd4828623888e91a1d2cb396cba12d4e7b4/datasette/utils/__init__.py#L742-L753\r\n\r\nhttps://latest.datasette.io/fixtures?sql=select+escape_fts%28%27bar%2A%27%29\r\n\r\n\"fixtures__select_escape_fts__bar____and_Launch_Meeting_-_Zoom\"\r\n\r\nSo apparently wrapping a SQLite FTS word like `\"bar*\"` doesn't prevent SQLite from expanding the wildcard.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607770595, "label": "escape_fts() does not correctly escape * wildcards"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/743#issuecomment-620170826", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/743", "id": 620170826, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE3MDgyNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T18:58:04Z", "updated_at": "2020-04-27T18:58:04Z", "author_association": "OWNER", "body": "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?\r\n\r\nBest source of information I could find was this tiny thread from 2014 about FTS4:\r\n\r\nhttp://sqlite.1065341.n5.nabble.com/Escaping-conventions-for-FTS4-virtual-table-queries-td74589.html\r\n\r\n> Dave Baggett wrote:\r\n> > What if I want docids of documents containing the exact literal token \"any*\"?\r\n> \r\n> You would have to use one of the Unicode tokenizers, and configure it to\r\n> interpret * as a token character.\r\n> \r\n> > how do I escape the asterisk so that it's not interpreted as a wildcard?\r\n> \r\n> There are no escapes. When * is a token character, you lose the ability\r\n> to do prefix searches. \r\n\r\nI 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.\r\n\r\nhttps://www.sqlite.org/fts5.html#the_fts5vocab_virtual_table_module", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607770595, "label": "escape_fts() does not correctly escape * wildcards"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/736#issuecomment-620171434", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/736", "id": 620171434, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE3MTQzNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T18:59:16Z", "updated_at": "2020-04-27T18:59:16Z", "author_association": "OWNER", "body": "I'm suspicious that this might be a bug with `datasette-publish-now` not with core Datasette. See https://github.com/simonw/datasette-publish-now/issues/20 - I think that might be the same issue.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 606720674, "label": "strange behavior using accented characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/736#issuecomment-620171785", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/736", "id": 620171785, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE3MTc4NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T18:59:54Z", "updated_at": "2020-04-27T18:59:54Z", "author_association": "OWNER", "body": "Would you mind trying publishing your database using one of the other options - Heroku, Cloud Run or https://fly.io/ - and see if you have the same bug there?\r\n\r\nIf you DO get the same bug with another option, please re-open this issue.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 606720674, "label": "strange behavior using accented characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/735#issuecomment-620172085", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/735", "id": 620172085, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE3MjA4NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T19:00:30Z", "updated_at": "2020-04-27T19:00:30Z", "author_association": "OWNER", "body": "I think this may be a `datasette-publish-now` bug, as in https://github.com/simonw/datasette-publish-now/issues/20 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 605806386, "label": "Error when I click on \"View and edit SQL\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/743#issuecomment-620174977", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/743", "id": 620174977, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE3NDk3Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T19:05:56Z", "updated_at": "2020-04-27T19:05:56Z", "author_association": "OWNER", "body": "The other option would be to leave this as-is, and let people wildcard search all they want. I'm leaning in that direction.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607770595, "label": "escape_fts() does not correctly escape * wildcards"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/743#issuecomment-620177365", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/743", "id": 620177365, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDE3NzM2NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T19:11:01Z", "updated_at": "2020-04-27T19:11:30Z", "author_association": "OWNER", "body": "Huh... turns out the documentation already claims that wildcards work! Closing this as wontfix:\r\n\r\nhttps://datasette.readthedocs.io/en/stable/full_text_search.html#the-table-view-api\r\n\r\n\"Full-text_search_\u2014_Datasette_documentation\"", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607770595, "label": "escape_fts() does not correctly escape * wildcards"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/726#issuecomment-620260658", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/726", "id": 620260658, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDI2MDY1OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T22:05:46Z", "updated_at": "2020-04-27T22:05:46Z", "author_association": "OWNER", "body": "Aah - yes I've seen this a few times before in my own projects. The problem is that the column types don't match up - your `oeuvre_id` column here is an integer, but if you look at the schema for `prelib_oeuvre` (at the bottom of this page: http://crbc-dataset.huma-num.fr/prelib/prelib_oeuvre) you'll see that it's defined as text:\r\n\r\n```sql\r\nCREATE TABLE \"prelib_oeuvre\" (\r\n\"id\" TEXT,\r\n \"titre\" TEXT,\r\n \"descriptif\" TEXT,\r\n \"wikidata\" TEXT,\r\n \"ark_bnf\" TEXT,\r\n \"notes\" TEXT\r\n ,PRIMARY KEY ([id])\r\n);\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 600120439, "label": "Foreign key : case of a link to the associated row not displayed"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/13#issuecomment-620273692", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/13", "id": 620273692, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDI3MzY5Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T22:42:50Z", "updated_at": "2020-04-27T22:42:50Z", "author_association": "MEMBER", "body": "```\r\n>>> def ext_counts(directory):\r\n... counts = {}\r\n... for path in pathlib.Path(directory).glob(\"**/*\"):\r\n... ext = path.suffix\r\n... counts[ext] = counts.get(ext, 0) + 1\r\n... return counts\r\n... \r\n>>> \r\n>>> ext_counts(\"/Users/simon/Pictures/Photos Library.photoslibrary/originals\")\r\n{'': 16, '.heic': 15478, '.jpeg': 21691, '.mov': 946, '.png': 2262, '.gif': 38, '.mp4': 116, '.aae': 2}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607888367, "label": "Also upload movie files"}, "performed_via_github_app": null}