id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,pull_request,body,repo,type,active_lock_reason,performed_via_github_app,reactions,draft,state_reason
1821108702,I_kwDOCGYnMM5si-ne,579,Special handling for SQLite column of type `JSON`,15178711,open,0,,,0,2023-07-25T20:37:23Z,2023-07-25T20:37:23Z,,CONTRIBUTOR,,"`sqlite-utils` should detect and have specially handling for column with a `JSON` column. For example:

```sql
CREATE TABLE ""dogs"" (
  id INTEGER PRIMARY KEY,
  name TEXT,
  friends JSON 
);
```

## Automatic Nesting

According to [""Nested JSON Values""](https://sqlite-utils.datasette.io/en/stable/cli.html#nested-json-values), sqlite-utils will only expand JSON if the `--json-cols` flag is passed. It looks like it'll try to `json.load` all text column to test if its JSON, which can get expensive on non-json columns. 

Instead, `sqlite-utils` should be default (ie without the `--json-cols` flags) do the `maybe_json()` operation on columns with a declared `JSON` type. So the above table would expand the `""friends""` column as expected, withoutthe `--json-cols` flag:

```bash
sqlite-utils dogs.db ""select * from dogs"" | python -mjson.tool
```

```
[
    {
        ""id"": 1,
        ""name"": ""Cleo"",
        ""friends"": [
            {
                ""name"": ""Pancakes""
            },
            {
                ""name"": ""Bailey""
            }
        ]
    }
]
```

---

I'm sure there's other ways `sqlite-utils` can specially handle JSON columns, so keeping this open while I think of more",140912432,issue,,,"{""url"": ""https://api.github.com/repos/simonw/sqlite-utils/issues/579/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,
1710164693,PR_kwDOBm6k_c5QhIL2,2075,Bump sphinx from 6.1.3 to 7.0.1,49699333,closed,0,,,2,2023-05-15T13:59:31Z,2023-07-25T13:28:39Z,2023-07-25T13:28:36Z,CONTRIBUTOR,simonw/datasette/pulls/2075,"Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 6.1.3 to 7.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href=""https://github.com/sphinx-doc/sphinx/releases"">sphinx's releases</a>.</em></p>
<blockquote>
<h2>v7.0.1</h2>
<p>Changelog: <a href=""https://www.sphinx-doc.org/en/master/changes.html"">https://www.sphinx-doc.org/en/master/changes.html</a></p>
<h2>v7.0.0</h2>
<p>Changelog: <a href=""https://www.sphinx-doc.org/en/master/changes.html"">https://www.sphinx-doc.org/en/master/changes.html</a></p>
<h2>v7.0.0rc1</h2>
<p>Changelog: <a href=""https://www.sphinx-doc.org/en/master/changes.html"">https://www.sphinx-doc.org/en/master/changes.html</a></p>
<h2>v6.2.1</h2>
<p>Changelog: <a href=""https://www.sphinx-doc.org/en/master/changes.html"">https://www.sphinx-doc.org/en/master/changes.html</a></p>
<h2>v6.2.0</h2>
<p>Changelog: <a href=""https://www.sphinx-doc.org/en/master/changes.html"">https://www.sphinx-doc.org/en/master/changes.html</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href=""https://github.com/sphinx-doc/sphinx/blob/master/CHANGES"">sphinx's changelog</a>.</em></p>
<blockquote>
<h1>Release 7.0.1 (released May 12, 2023)</h1>
<h2>Dependencies</h2>
<ul>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11411"">#11411</a>: Support <code>Docutils 0.20</code>_. Patch by Adam Turner.</li>
</ul>
<p>.. _Docutils 0.20: <a href=""https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04"">https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04</a></p>
<h2>Bugs fixed</h2>
<ul>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11418"">#11418</a>: Clean up remaining references to <code>sphinx.setup_command</code>
following the removal of support for setuptools.
Patch by Willem Mulder.</li>
</ul>
<h1>Release 7.0.0 (released Apr 29, 2023)</h1>
<h2>Incompatible changes</h2>
<ul>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11359"">#11359</a>: Remove long-deprecated aliases for <code>MecabSplitter</code> and
<code>DefaultSplitter</code> in <code>sphinx.search.ja</code>.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11360"">#11360</a>: Remove deprecated <code>make_old_id</code> functions in domain object
description classes.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11363"">#11363</a>: Remove the Setuptools integration (<code>build_sphinx</code> hook in
<code>setup.py</code>).</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11364"">#11364</a>: Remove deprecated <code>sphinx.ext.napoleon.iterators</code> module.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11365"">#11365</a>: Remove support for the <code>jsdump</code> format in <code>sphinx.search</code>.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11366"">#11366</a>: Make <code>locale</code> a required argument to
<code>sphinx.util.i18n.format_date()</code>.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11370"">#11370</a>: Remove deprecated <code>sphinx.util.stemmer</code> module.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11371"">#11371</a>: Remove deprecated <code>sphinx.pycode.ast.parse()</code> function.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11372"">#11372</a>: Remove deprecated <code>sphinx.io.read_doc()</code> function.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11373"">#11373</a>: Removed deprecated <code>sphinx.util.get_matching_files()</code> function.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11378"">#11378</a>: Remove deprecated <code>sphinx.util.docutils.is_html5_writer_available()</code>
function.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11379"">#11379</a>: Make the <code>env</code> argument to <code>Builder</code> subclasses required.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11380"">#11380</a>: autosummary: Always emit grouped import exceptions.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11381"">#11381</a>: Remove deprecated <code>style</code> key for HTML templates.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11382"">#11382</a>: Remove deprecated <code>sphinx.writers.latex.LaTeXTranslator.docclasses</code>
attribute.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11383"">#11383</a>: Remove deprecated <code>sphinx.builders.html.html5_ready</code> and
<code>sphinx.builders.html.HTMLTranslator</code> attributes.</li>
<li><a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11385"">#11385</a>: Remove support for HTML 4 output.</li>
</ul>
<h1>Release 6.2.1 (released Apr 25, 2023)</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/d48cc783b6e48b99cbbcf5462f44c59a4ed78e6a""><code>d48cc78</code></a> Bump to 7.0.1 final</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/de6b18ac7de317030be4344ea7a9d553c423ffcf""><code>de6b18a</code></a> Remove remaining references to the setuptools integration (<a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11418"">#11418</a>)</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/db546189ce1d2a345f4399367ced6ecdd538be5d""><code>db54618</code></a> Support Docutils 0.20 (<a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11411"">#11411</a>)</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/8942a1dddf2355928f088d6b631db8658034eaae""><code>8942a1d</code></a> Test with Docutils 0.20</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/c9d0933e5d8e34aa9d2c1d88c5a80b46b575730e""><code>c9d0933</code></a> linkcheck: Use context managers for HTTP requests (<a href=""https://redirect.github.com/sphinx-doc/sphinx/issues/11318"">#11318</a>)</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/2b1c106bbff5265e8a6076318db5d083c329d575""><code>2b1c106</code></a> Update documentation workflow</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/ba7408209e84ee413f240afc20f3c6b484a81f8f""><code>ba74082</code></a> Change concurrency groups for GitHub workflows</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/b546879539200ec4128bcc6d0ed911ebf28bb3cb""><code>b546879</code></a> Bump version</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/d568b2f4f7cca743fcbf70814d15602d8129b790""><code>d568b2f</code></a> Bump to 7.0.0 final</li>
<li><a href=""https://github.com/sphinx-doc/sphinx/commit/ff79edf353f5cc6e02036f58e0295dc704c5e681""><code>ff79edf</code></a> Remove <code>jsdump</code> references post removal</li>
<li>Additional commits viewable in <a href=""https://github.com/sphinx-doc/sphinx/compare/v6.1.3...v7.0.1"">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx&package-manager=pip&previous-version=6.1.3&new-version=7.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

<!-- readthedocs-preview datasette start -->
----
:books: Documentation preview :books:: https://datasette--2075.org.readthedocs.build/en/2075/

<!-- readthedocs-preview datasette end -->
> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
",107914493,pull,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/2075/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",0,