{"html_url": "https://github.com/simonw/datasette/issues/2214#issuecomment-1844819002", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2214", "id": 1844819002, "node_id": "IC_kwDOBm6k_c5t9bQ6", "user": {"value": 2874, "label": "precipice"}, "created_at": "2023-12-07T07:36:33Z", "updated_at": "2023-12-07T07:36:33Z", "author_association": "NONE", "body": "If I uncheck `expand labels` in the Advanced CSV export dialog, the error does not occur. Re-checking that box and re-running the export does cause the error to occur.\r\n\r\n![CleanShot 2023-12-06 at 23 34 58@2x](https://github.com/simonw/datasette/assets/2874/12c6c241-35ce-4ded-8dc7-fc250d809ed9)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2029908157, "label": "CSV export fails for some `text` foreign key references"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843585454", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843585454, "node_id": "IC_kwDOCGYnMM5t4uGu", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-12-06T19:48:26Z", "updated_at": "2023-12-08T05:05:03Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`9286c1b`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/9286c1ba432e890b1bb4b2a1f847b15364c1fa18?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77% compared to head [(`1698a9d`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.72%.\n> Report is 1 commits behind head on main.\n\n> :exclamation: Current head 1698a9d differs from pull request most recent head 61c6e26. Consider uploading reports for the commit 61c6e26 to get more accurate results\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #604 +/- ##\n==========================================\n- Coverage 95.77% 95.72% -0.06% \n==========================================\n Files 8 8 \n Lines 2842 2852 +10 \n==========================================\n+ Hits 2722 2730 +8 \n- Misses 120 122 +2 \n```\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2209 +/- ##\n=======================================\n Coverage 92.69% 92.69% \n=======================================\n Files 40 40 \n Lines 6047 6047 \n=======================================\n Hits 5605 5605 \n Misses 442 442 \n```\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2206 +/- ##\n=======================================\n Coverage 92.69% 92.69% \n=======================================\n Files 40 40 \n Lines 6047 6047 \n=======================================\n Hits 5605 5605 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #600 +/- ##\n=======================================\n Coverage 95.77% 95.77% \n=======================================\n Files 8 8 \n Lines 2840 2840 \n=======================================\n Hits 2720 2720 \n Misses 120 120 \n```\n\n\n| [Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?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| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <\u00f8> (\u00f8)` | |\n| [sqlite\\_utils/utils.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `94.56% <\u00f8> (\u00f8)` | |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2202 +/- ##\n=======================================\n Coverage 92.69% 92.69% \n=======================================\n Files 40 40 \n Lines 6047 6047 \n=======================================\n Hits 5605 5605 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2192 +/- ##\n==========================================\n+ Coverage 92.69% 92.72% +0.02% \n==========================================\n Files 40 40 \n Lines 6039 6036 -3 \n==========================================\n- Hits 5598 5597 -1 \n+ Misses 441 439 -2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2192?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/views/table.py](https://app.codecov.io/gh/simonw/datasette/pull/2192?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3RhYmxlLnB5) | `96.31% <100.00%> (+0.51%)` | :arrow_up: |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2192/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2191 +/- ##\n==========================================\n- Coverage 92.69% 92.68% -0.02% \n==========================================\n Files 40 40 \n Lines 6039 6042 +3 \n==========================================\n+ Hits 5598 5600 +2 \n- Misses 441 442 +1 \n```\n\n\n| [Files](https://app.codecov.io/gh/simonw/datasette/pull/2191?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://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.09% <100.00%> (-0.11%)` | :arrow_down: |\n| [datasette/default\\_permissions.py](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RlZmF1bHRfcGVybWlzc2lvbnMucHk=) | `97.36% <100.00%> (+0.01%)` | :arrow_up: |\n\n... and [3 files with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2191/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2190 +/- ##\n==========================================\n- Coverage 92.69% 92.67% -0.03% \n==========================================\n Files 40 40 \n Lines 6039 6044 +5 \n==========================================\n+ Hits 5598 5601 +3 \n- Misses 441 443 +2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2190?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://app.codecov.io/gh/simonw/datasette/pull/2190?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.19% <100.00%> (\u00f8)` | |\n| [datasette/cli.py](https://app.codecov.io/gh/simonw/datasette/pull/2190?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `82.53% <100.00%> (\u00f8)` | |\n| [datasette/utils/\\_\\_init\\_\\_.py](https://app.codecov.io/gh/simonw/datasette/pull/2190?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3V0aWxzL19faW5pdF9fLnB5) | `94.83% <100.00%> (+0.03%)` | :arrow_up: |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2190/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2185 +/- ##\n==========================================\n- Coverage 92.69% 92.66% -0.04% \n==========================================\n Files 40 40 \n Lines 6039 6039 \n==========================================\n- Hits 5598 5596 -2 \n- Misses 441 443 +2 \n```\n\n\n[see 1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2185/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2183 +/- ##\n==========================================\n- Coverage 92.69% 92.66% -0.04% \n==========================================\n Files 40 40 \n Lines 6025 6039 +14 \n==========================================\n+ Hits 5585 5596 +11 \n- Misses 440 443 +3 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2183?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://app.codecov.io/gh/simonw/datasette/pull/2183?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.19% <95.00%> (-0.24%)` | :arrow_down: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2181 +/- ##\n=======================================\n Coverage 92.68% 92.69% \n=======================================\n Files 40 40 \n Lines 6017 6025 +8 \n=======================================\n+ Hits 5577 5585 +8 \n Misses 440 440 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2181?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://app.codecov.io/gh/simonw/datasette/pull/2181?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.43% <100.00%> (+0.03%)` | :arrow_up: |\n| [datasette/hookspecs.py](https://app.codecov.io/gh/simonw/datasette/pull/2181?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2hvb2tzcGVjcy5weQ==) | `100.00% <100.00%> (\u00f8)` | |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #593 +/- ##\n=======================================\n Coverage 95.77% 95.77% \n=======================================\n Files 8 8 \n Lines 2837 2840 +3 \n=======================================\n+ Hits 2717 2720 +3 \n Misses 120 120 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?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| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <100.00%> (+<0.01%)` | :arrow_up: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #591 +/- ##\n=======================================\n Coverage 95.74% 95.74% \n=======================================\n Files 8 8 \n Lines 2842 2842 \n=======================================\n Hits 2721 2721 \n Misses 121 121 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2174 +/- ##\n=======================================\n Coverage 92.68% 92.68% \n=======================================\n Files 40 40 \n Lines 6012 6017 +5 \n=======================================\n+ Hits 5572 5577 +5 \n Misses 440 440 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2174?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/cli.py](https://app.codecov.io/gh/simonw/datasette/pull/2174?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `82.53% <\u00f8> (\u00f8)` | |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2174/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2173 +/- ##\n=======================================\n Coverage 92.68% 92.68% \n=======================================\n Files 40 40 \n Lines 6012 6012 \n=======================================\n Hits 5572 5572 \n Misses 440 440 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2166 +/- ##\n=======================================\n Coverage 92.68% 92.68% \n=======================================\n Files 40 40 \n Lines 6012 6012 \n=======================================\n Hits 5572 5572 \n Misses 440 440 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2165 +/- ##\n==========================================\n- Coverage 92.84% 92.68% -0.17% \n==========================================\n Files 40 40 \n Lines 5998 6012 +14 \n==========================================\n+ Hits 5569 5572 +3 \n- Misses 429 440 +11 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2165?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/plugins.py](https://app.codecov.io/gh/simonw/datasette/pull/2165?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3BsdWdpbnMucHk=) | `64.58% <26.66%> (-17.77%)` | :arrow_down: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2162 +/- ##\n==========================================\n- Coverage 92.82% 92.79% -0.03% \n==========================================\n Files 40 40 \n Lines 5948 5953 +5 \n==========================================\n+ Hits 5521 5524 +3 \n- Misses 427 429 +2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2162?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/default\\_permissions.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RlZmF1bHRfcGVybWlzc2lvbnMucHk=) | `96.87% <\u00f8> (-0.04%)` | :arrow_down: |\n| [datasette/app.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.32% <100.00%> (+0.03%)` | :arrow_up: |\n| [datasette/cli.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `82.53% <100.00%> (-0.06%)` | :arrow_down: |\n| [datasette/database.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RhdGFiYXNlLnB5) | `94.72% <100.00%> (+0.04%)` | :arrow_up: |\n| [datasette/utils/internal\\_db.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3V0aWxzL2ludGVybmFsX2RiLnB5) | `100.00% <100.00%> (\u00f8)` | |\n| [datasette/views/database.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2RhdGFiYXNlLnB5) | `95.45% <100.00%> (\u00f8)` | |\n| [datasette/views/special.py](https://app.codecov.io/gh/simonw/datasette/pull/2162?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3NwZWNpYWwucHk=) | `94.06% <100.00%> (-0.85%)` | :arrow_down: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2161 +/- ##\n==========================================\n+ Coverage 92.76% 92.81% +0.05% \n==========================================\n Files 40 40 \n Lines 5943 5944 +1 \n==========================================\n+ Hits 5513 5517 +4 \n+ Misses 430 427 -3 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2161?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/cli.py](https://app.codecov.io/gh/simonw/datasette/pull/2161?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `82.37% <75.00%> (+1.02%)` | :arrow_up: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2160 +/- ##\n=======================================\n Coverage 92.82% 92.82% \n=======================================\n Files 40 40 \n Lines 5948 5948 \n=======================================\n Hits 5521 5521 \n Misses 427 427 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2154 +/- ##\n==========================================\n+ Coverage 92.82% 92.85% +0.03% \n==========================================\n Files 40 40 \n Lines 5948 6008 +60 \n==========================================\n+ Hits 5521 5579 +58 \n- Misses 427 429 +2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2154?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/views/special.py](https://app.codecov.io/gh/simonw/datasette/pull/2154?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3NwZWNpYWwucHk=) | `94.06% <\u00f8> (-0.85%)` | :arrow_down: |\n| [datasette/app.py](https://app.codecov.io/gh/simonw/datasette/pull/2154?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.37% <100.00%> (+0.07%)` | :arrow_up: |\n| [datasette/default\\_permissions.py](https://app.codecov.io/gh/simonw/datasette/pull/2154?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RlZmF1bHRfcGVybWlzc2lvbnMucHk=) | `97.48% <100.00%> (+0.57%)` | :arrow_up: |\n| [datasette/permissions.py](https://app.codecov.io/gh/simonw/datasette/pull/2154?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3Blcm1pc3Npb25zLnB5) | `100.00% <100.00%> (\u00f8)` | |\n\n... and [3 files with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2154/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2152 +/- ##\n=======================================\n Coverage 92.76% 92.76% \n=======================================\n Files 40 40 \n Lines 5943 5919 -24 \n=======================================\n- Hits 5513 5491 -22 \n+ Misses 430 428 -2 \n```\n\n\n[see 3 files with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2152/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2151 +/- ##\n=======================================\n Coverage 92.73% 92.73% \n=======================================\n Files 40 40 \n Lines 5919 5919 \n=======================================\n Hits 5489 5489 \n Misses 430 430 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2149 +/- ##\n==========================================\n+ Coverage 92.06% 92.17% +0.10% \n==========================================\n Files 40 40 \n Lines 5937 5916 -21 \n==========================================\n- Hits 5466 5453 -13 \n+ Misses 471 463 -8 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/datasette/pull/2149?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/cli.py](https://app.codecov.io/gh/simonw/datasette/pull/2149?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `81.02% <25.00%> (+1.20%)` | :arrow_up: |\n| [datasette/app.py](https://app.codecov.io/gh/simonw/datasette/pull/2149?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.29% <92.30%> (-0.09%)` | :arrow_down: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2148 +/- ##\n==========================================\n+ Coverage 92.71% 92.73% +0.01% \n==========================================\n Files 40 40 \n Lines 5919 5919 \n==========================================\n+ Hits 5488 5489 +1 \n+ Misses 431 430 -1 \n```\n\n\n[see 1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2148/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2144 +/- ##\n=======================================\n Coverage 92.06% 92.06% \n=======================================\n Files 40 40 \n Lines 5937 5937 \n=======================================\n Hits 5466 5466 \n Misses 471 471 \n```\n\n\n\n\n
This demonstrates basic LIKE search\r\n```", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855885427, "label": "De-tangling Metadata before Datasette 1.0"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/2143#issuecomment-1685260624", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2143", "id": 1685260624, "node_id": "IC_kwDOBm6k_c5kcwlQ", "user": {"value": 11784304, "label": "dvizard"}, "created_at": "2023-08-20T11:31:16Z", "updated_at": "2023-08-20T11:31:16Z", "author_association": "NONE", "body": "https://pypi.org/project/deep-chainmap/", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855885427, "label": "De-tangling Metadata before Datasette 1.0"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/2143#issuecomment-1685260244", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2143", "id": 1685260244, "node_id": "IC_kwDOBm6k_c5kcwfU", "user": {"value": 11784304, "label": "dvizard"}, "created_at": "2023-08-20T11:29:00Z", "updated_at": "2023-08-20T11:29:00Z", "author_association": "NONE", "body": "https://docs.python.org/3/library/collections.html#collections.ChainMap", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855885427, "label": "De-tangling Metadata before Datasette 1.0"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/2143#issuecomment-1685259985", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2143", "id": 1685259985, "node_id": "IC_kwDOBm6k_c5kcwbR", "user": {"value": 11784304, "label": "dvizard"}, "created_at": "2023-08-20T11:27:21Z", "updated_at": "2023-08-20T11:27:21Z", "author_association": "NONE", "body": "To chime in from a poweruser perspective: I'm worried that this is an overengineering trap. Yes, the current solution is somewhat messy. But there are datasette-wide settings, there are database-scope settings, there are table-scope settings etc, but then there are database-scope metadata and table-scope metadata. Trying to cleanly separate \"settings\" from \"configuration\" is, I believe, an uphill fight. Even separating db/table-scope settings from pure descriptive metadata is not always easy. Like, do canned queries belong to database metadata or to settings? Do I need two separate files for this?\r\n\r\nOne pragmatic solution I used in a project is stacking yaml configuration files. Basically, have an arbitrary number of yaml or json settings files that you load in a specified order. Every file adds to the corresponding settings in the earlier-loaded file (if it already existed). I implemented this myself but found later that there is an existing Python \"cascading dict\" type of thing, I forget what it's called. There is a bit of a challenge deciding whether there is \"replacement\" or \"addition\" (I think I pragmatically ran `update` on the second level of the dict but better solutions are certainly possible). \r\n\r\nThis way, one allows separation of settings into different blocks, while not imposing a specific idea of what belongs where that might not apply equally to all cases.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855885427, "label": "De-tangling Metadata before Datasette 1.0"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683122490", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683122490, "node_id": "IC_kwDOCGYnMM5kUmk6", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-08-17T23:45:44Z", "updated_at": "2023-08-18T00:46:07Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`92.85%`** and project coverage change: **`-0.07%`** :warning:\n> Comparison is base [(`1dc6b5a`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/1dc6b5aa644a92d3654f7068110ed7930989ce71?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.82% compared to head [(`2915050`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.76%.\n> Report is 1 commits behind head on main.\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #584 +/- ##\n==========================================\n- Coverage 95.82% 95.76% -0.07% \n==========================================\n Files 8 8 \n Lines 2829 2834 +5 \n==========================================\n+ Hits 2711 2714 +3 \n- Misses 118 120 +2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?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| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <92.85%> (-0.15%)` | :arrow_down: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2142 +/- ##\n=======================================\n Coverage 92.06% 92.06% \n=======================================\n Files 40 40 \n Lines 5937 5937 \n=======================================\n Hits 5466 5466 \n Misses 471 471 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2141 +/- ##\n=======================================\n Coverage 92.06% 92.06% \n=======================================\n Files 40 40 \n Lines 5937 5937 \n=======================================\n Hits 5466 5466 \n Misses 471 471 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2128 +/- ##\n=======================================\n Coverage 92.38% 92.38% \n=======================================\n Files 39 39 \n Lines 5803 5803 \n=======================================\n Hits 5361 5361 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2125 +/- ##\n=======================================\n Coverage 92.38% 92.38% \n=======================================\n Files 39 39 \n Lines 5803 5803 \n=======================================\n Hits 5361 5361 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2124 +/- ##\n=======================================\n Coverage 92.38% 92.38% \n=======================================\n Files 39 39 \n Lines 5803 5803 \n=======================================\n Hits 5361 5361 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2121 +/- ##\n=======================================\n Coverage 92.38% 92.38% \n=======================================\n Files 39 39 \n Lines 5803 5803 \n=======================================\n Hits 5361 5361 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2107 +/- ##\n=======================================\n Coverage 92.38% 92.38% \n=======================================\n Files 39 39 \n Lines 5805 5805 \n=======================================\n Hits 5363 5363 \n Misses 442 442 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #573 +/- ##\n==========================================\n+ Coverage 96.09% 96.12% +0.03% \n==========================================\n Files 8 8 \n Lines 2794 2816 +22 \n==========================================\n+ Hits 2685 2707 +22 \n Misses 109 109 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?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| [sqlite\\_utils/\\_\\_init\\_\\_.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL19faW5pdF9fLnB5) | `100.00% <100.00%> (\u00f8)` | |\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.36% <100.00%> (+0.01%)` | :arrow_up: |\n| [sqlite\\_utils/hookspecs.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2hvb2tzcGVjcy5weQ==) | `100.00% <100.00%> (\u00f8)` | |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2098 +/- ##\n=======================================\n Coverage 92.39% 92.39% \n=======================================\n Files 39 39 \n Lines 5802 5802 \n=======================================\n Hits 5361 5361 \n Misses 441 441 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #560 +/- ##\n==========================================\n- Coverage 96.36% 96.22% -0.15% \n==========================================\n Files 6 6 \n Lines 2726 2752 +26 \n==========================================\n+ Hits 2627 2648 +21 \n- Misses 99 104 +5 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?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| [sqlite\\_utils/utils.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `94.56% <63.63%> (-0.62%)` | :arrow_down: |\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.33% <86.36%> (-0.20%)` | :arrow_down: |\n| [sqlite\\_utils/cli.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.22% <100.00%> (\u00f8)` | |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2080 +/- ##\n==========================================\n+ Coverage 92.40% 92.41% +0.01% \n==========================================\n Files 39 39 \n Lines 5768 5790 +22 \n==========================================\n+ Hits 5330 5351 +21 \n- Misses 438 439 +1 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/datasette/pull/2080?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/views/base.py](https://app.codecov.io/gh/simonw/datasette/pull/2080?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2Jhc2UucHk=) | `92.97% <95.45%> (+0.18%)` | :arrow_up: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2077 +/- ##\n=======================================\n Coverage 92.40% 92.40% \n=======================================\n Files 39 39 \n Lines 5803 5803 \n=======================================\n Hits 5362 5362 \n Misses 441 441 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #553 +/- ##\n=======================================\n Coverage 96.36% 96.36% \n=======================================\n Files 6 6 \n Lines 2726 2726 \n=======================================\n Hits 2627 2627 \n Misses 99 99 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #549 +/- ##\n==========================================\n+ Coverage 96.30% 96.36% +0.06% \n==========================================\n Files 6 6 \n Lines 2707 2726 +19 \n==========================================\n+ Hits 2607 2627 +20 \n+ Misses 100 99 -1 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?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| [sqlite\\_utils/cli.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.22% <83.33%> (-0.03%)` | :arrow_down: |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #546 +/- ##\n=======================================\n Coverage 96.30% 96.31% \n=======================================\n Files 6 6 \n Lines 2707 2712 +5 \n=======================================\n+ Hits 2607 2612 +5 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?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| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.37% <90.90%> (+<0.01%)` | :arrow_up: |\n| [sqlite\\_utils/cli.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.26% <100.00%> (+0.01%)` | :arrow_up: |\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2075 +/- ##\n=======================================\n Coverage 92.40% 92.40% \n=======================================\n Files 38 38 \n Lines 5751 5751 \n=======================================\n Hits 5314 5314 \n Misses 437 437 \n```\n\n\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #537 +/- ##\n=======================================\n Coverage 96.25% 96.25% \n=======================================\n Files 6 6 \n Lines 2671 2673 +2 \n=======================================\n+ Hits 2571 2573 +2 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/537?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| [sqlite\\_utils/db.py](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.33% <100.00%> (+<0.01%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #536 +/- ##\n=======================================\n Coverage 96.25% 96.25% \n=======================================\n Files 6 6 \n Lines 2671 2671 \n=======================================\n Hits 2571 2571 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/536?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| [sqlite\\_utils/utils.py](https://codecov.io/gh/simonw/sqlite-utils/pull/536?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `95.13% <\u00f8> (\u00f8)` | |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2052 +/- ##\n==========================================\n+ Coverage 92.46% 92.69% +0.22% \n==========================================\n Files 38 40 +2 \n Lines 5750 6047 +297 \n==========================================\n+ Hits 5317 5605 +288 \n- Misses 433 442 +9 \n```\n\n\n[see 19 files with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2052/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2043 +/- ##\n==========================================\n- Coverage 92.46% 92.41% -0.06% \n==========================================\n Files 38 38 \n Lines 5750 5750 \n==========================================\n- Hits 5317 5314 -3 \n- Misses 433 436 +3 \n```\n\n\n[see 2 files with indirect coverage changes](https://codecov.io/gh/simonw/datasette/pull/2043/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #531 +/- ##\n==========================================\n+ Coverage 96.25% 96.29% +0.03% \n==========================================\n Files 6 6 \n Lines 2671 2671 \n==========================================\n+ Hits 2571 2572 +1 \n+ Misses 100 99 -1 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/531?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| [sqlite\\_utils/utils.py](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `95.13% <\u00f8> (\u00f8)` | |\n| [sqlite\\_utils/cli.py](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.26% <100.00%> (+0.09%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2031 +/- ##\n==========================================\n- Coverage 92.46% 92.11% -0.36% \n==========================================\n Files 38 38 \n Lines 5750 5556 -194 \n==========================================\n- Hits 5317 5118 -199 \n- Misses 433 438 +5 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/datasette/pull/2031?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/views/table.py](https://codecov.io/gh/simonw/datasette/pull/2031?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3RhYmxlLnB5) | `92.57% <97.56%> (-3.35%)` | :arrow_down: |\n| [datasette/views/base.py](https://codecov.io/gh/simonw/datasette/pull/2031?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2Jhc2UucHk=) | `95.17% <100.00%> (+2.38%)` | :arrow_up: |\n| [datasette/views/row.py](https://codecov.io/gh/simonw/datasette/pull/2031?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3Jvdy5weQ==) | `87.93% <100.00%> (+0.10%)` | :arrow_up: |\n\n... and [8 files with indirect coverage changes](https://codecov.io/gh/simonw/datasette/pull/2031/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\nAdditional details and impacted files
\n\n\n```diff\n@@ Coverage Diff @@\n## main #2028 +/- ##\n=======================================\n Coverage 92.11% 92.11% \n=======================================\n Files 38 38 \n Lines 5555 5555 \n=======================================\n Hits 5117 5117 \n Misses 438 438 \n```\n\n\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n`, and then have the normal ProxyPath for the unadorned (prefix-matching) `/`.\r\n\r\n```\r\n location = / {\r\n return 302 /
;\r\n }\r\n location / {\r\n proxy_pass http://127.0.0.1:8001/;\r\n proxy_set_header Host $host;\r\n }\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": 1590183272, "label": "How to redirect from \"/\" to a specific db/table"}, "performed_via_github_app": null}