{"html_url": "https://github.com/simonw/datasette/pull/1352#issuecomment-852673695", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1352", "id": 852673695, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjY3MzY5NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T02:52:26Z", "updated_at": "2021-06-02T02:52:26Z", "author_association": "OWNER", "body": "@dependabot recreate", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 908276134, "label": "Bump black from 21.5b1 to 21.5b2"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1257#issuecomment-852681622", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1257", "id": 852681622, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjY4MTYyMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T03:12:18Z", "updated_at": "2021-06-02T03:12:18Z", "author_association": "OWNER", "body": "Created a test database like this:\r\n```\r\n% sqlite-utils create-table quote-in-name.db \"this'hasquoteinname\" id integer name text --pk id\r\n% datasette quote-in-name.db -p 8025 --pdb\r\nINFO: Started server process [86046]\r\nINFO: Waiting for application startup.\r\nINFO: Application startup complete.\r\nINFO: Uvicorn running on http://127.0.0.1:8025 (Press CTRL+C to quit)\r\n> /Users/simon/Dropbox/Development/datasette/datasette/utils/__init__.py(530)detect_fts()\r\n-> rows = conn.execute(detect_fts_sql(table)).fetchall()\r\n(Pdb) c\r\nTraceback (most recent call last):\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/app.py\", line 1124, in route_path\r\n response = await view(request, send)\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/views/base.py\", line 147, in view\r\n return await self.dispatch_request(\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/views/base.py\", line 122, in dispatch_request\r\n return await handler(request, *args, **kwargs)\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/views/index.py\", line 72, in get\r\n \"fts_table\": await db.fts_table(table),\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/database.py\", line 279, in fts_table\r\n return await self.execute_fn(lambda conn: detect_fts(conn, table))\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/database.py\", line 155, in execute_fn\r\n return await asyncio.get_event_loop().run_in_executor(\r\n File \"/Users/simon/.pyenv/versions/3.8.2/lib/python3.8/concurrent/futures/thread.py\", line 57, in run\r\n result = self.fn(*self.args, **self.kwargs)\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/database.py\", line 153, in in_thread\r\n return fn(conn)\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/database.py\", line 279, in \r\n return await self.execute_fn(lambda conn: detect_fts(conn, table))\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/utils/__init__.py\", line 530, in detect_fts\r\n rows = conn.execute(detect_fts_sql(table)).fetchall()\r\nsqlite3.OperationalError: near \"hasquoteinname\": syntax error\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 828811618, "label": "Table names containing single quotes break things"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1257#issuecomment-852686827", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1257", "id": 852686827, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjY4NjgyNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T03:26:27Z", "updated_at": "2021-06-02T03:26:27Z", "author_association": "OWNER", "body": "I tried and failed to get this fix working for tables with double quotes in their name - I couldn't figure out what the double-quote-in-a-table-name version of this code would look like: https://github.com/simonw/datasette/blob/807de378d08752a0f05bb1b980a0a62620a70520/datasette/utils/__init__.py#L538-L548", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 828811618, "label": "Table names containing single quotes break things"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1346#issuecomment-852693854", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1346", "id": 852693854, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjY5Mzg1NA==", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2021-06-02T03:44:35Z", "updated_at": "2021-06-02T03:44:35Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\n> Merging [#1346](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (3bffc35) into [main](https://codecov.io/gh/simonw/datasette/commit/7b106e106000713bbee31b34d694b3dadbd4818c?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (7b106e1) will **increase** coverage by `0.14%`.\n> The diff coverage is `100.00%`.\n\n[![Impacted file tree graph](https://codecov.io/gh/simonw/datasette/pull/1346/graphs/tree.svg?width=650&height=150&src=pr&token=eSahVY7kw1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n```diff\n@@ Coverage Diff @@\n## main #1346 +/- ##\n==========================================\n+ Coverage 91.56% 91.71% +0.14% \n==========================================\n Files 34 34 \n Lines 4282 4332 +50 \n==========================================\n+ Hits 3921 3973 +52 \n+ Misses 361 359 -2 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [datasette/app.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `95.69% <\u00f8> (-0.15%)` | :arrow_down: |\n| [datasette/renderer.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3JlbmRlcmVyLnB5) | `94.20% <100.00%> (+0.17%)` | :arrow_up: |\n| [datasette/utils/\\_\\_init\\_\\_.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3V0aWxzL19faW5pdF9fLnB5) | `94.36% <100.00%> (+0.05%)` | :arrow_up: |\n| [datasette/views/base.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2Jhc2UucHk=) | `95.41% <100.00%> (+0.39%)` | :arrow_up: |\n| [datasette/views/database.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2RhdGFiYXNlLnB5) | `97.28% <100.00%> (+0.09%)` | :arrow_up: |\n| [datasette/views/table.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3RhYmxlLnB5) | `95.90% <100.00%> (+0.07%)` | :arrow_up: |\n| [datasette/tracer.py](https://codecov.io/gh/simonw/datasette/pull/1346/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3RyYWNlci5weQ==) | `85.05% <0.00%> (+3.44%)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n> `\u0394 = absolute (impact)`, `\u00f8 = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Last update [7b106e1...3bffc35](https://codecov.io/gh/simonw/datasette/pull/1346?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 904537568, "label": "Re-display user's query with an error message if an error occurs"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/619#issuecomment-852703357", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/619", "id": 852703357, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcwMzM1Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:08:03Z", "updated_at": "2021-06-02T04:08:03Z", "author_association": "OWNER", "body": "A SQL error now looks like this: https://latest.datasette.io/fixtures?sql=select%0D%0A++*%0D%0Afrom%0D%0A++%5Bfoo%5D\r\n\r\n\"fixtures__select___from__foo_\"\r\n\r\nI'm going to get rid of that \"0 results\" message if an error is shown.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 520655983, "label": "\"Invalid SQL\" page should let you edit the SQL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/619#issuecomment-852706970", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/619", "id": 852706970, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcwNjk3MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:15:54Z", "updated_at": "2021-06-02T04:15:54Z", "author_association": "OWNER", "body": "\"fixtures__select___from__foo__and_Facets_should_not_execute_for__shape_array_object_\u00b7_Issue__263_\u00b7_simonw_datasette\"\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 520655983, "label": "\"Invalid SQL\" page should let you edit the SQL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1306#issuecomment-852707676", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1306", "id": 852707676, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcwNzY3Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:17:41Z", "updated_at": "2021-06-02T04:17:41Z", "author_association": "OWNER", "body": "We need to add a test that illustrates the bug in #1305 so we can prove that this definitely fixes it.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 864979486, "label": "Avoid error sorting by relationships if related tables are not allowed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1306#issuecomment-852708574", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1306", "id": 852708574, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcwODU3NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:20:18Z", "updated_at": "2021-06-02T04:20:18Z", "author_association": "OWNER", "body": "https://github.com/simonw/datasette/blob/115332ce76c0e867d9936406aaf4bcee6b1ef3cb/datasette/views/index.py#L77 helps here - looks like we can pass `?_sort=relationships` to trigger the bug.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 864979486, "label": "Avoid error sorting by relationships if related tables are not allowed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1306#issuecomment-852710117", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1306", "id": 852710117, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcxMDExNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:24:33Z", "updated_at": "2021-06-02T04:24:33Z", "author_association": "OWNER", "body": "I have a test - I'll merge this and then add that test.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 864979486, "label": "Avoid error sorting by relationships if related tables are not allowed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1127#issuecomment-852712106", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1127", "id": 852712106, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcxMjEwNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:28:55Z", "updated_at": "2021-06-02T04:28:55Z", "author_association": "OWNER", "body": "This became resizable in #1236.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 756818250, "label": "Make the custom SQL query text box larger or resizable"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/893#issuecomment-852712469", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/893", "id": 852712469, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcxMjQ2OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:29:56Z", "updated_at": "2021-06-02T04:29:56Z", "author_association": "OWNER", "body": "I think I fixed this a while ago, though I can't find the commit now. Please re-open if the bug still happens!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 656959584, "label": "pip3 install datasette not serving static on linuxbrew."}, "performed_via_github_app": null}