home / github

Menu
  • Search all tables
  • GraphQL API

issues

Table actions
  • GraphQL API for issues

24 rows where milestone = 7571612 and state = "closed" sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: user, comments, author_association, created_at (date), updated_at (date), closed_at (date)

type 1

  • issue 24

state 1

  • closed · 24 ✖

repo 1

  • datasette 24
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
1083581011 I_kwDOBm6k_c5AliJT 1564 _prepare_connection not called on write connections simonw 9599 closed 0   Datasette 0.60 7571612 1 2021-12-17T20:06:47Z 2022-01-20T21:29:43Z 2021-12-18T01:58:44Z OWNER  

I was trying to initalize SpatiaLite in a write connection: ```pycon

from datasette.app import Datasette ds = Datasette(memory=True, files=[], sqlite_extensions=["spatialite"]) db = ds.add_memory_database('geo') await db.execute_write("select InitSpatialMetadata(1)") UUID('3f143baa-4e3d-5842-a36f-4fa2f683b72f') no such function: InitSpatialMetadata ``` It looks like the code that loads additional modules only works on read-only connections, not on write connections:

https://github.com/simonw/datasette/blob/92a5280d2e75c39424a75ad6226fc74400ae984f/datasette/database.py#L146-L153

Compared to:

https://github.com/simonw/datasette/blob/92a5280d2e75c39424a75ad6226fc74400ae984f/datasette/database.py#L124-L132

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1564/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083669410 I_kwDOBm6k_c5Al3ui 1566 Release Datasette 0.60 simonw 9599 closed 0   Datasette 0.60 7571612 6 2021-12-17T22:58:12Z 2022-01-14T01:59:55Z 2022-01-14T01:59:55Z OWNER  

Using this as a tracking issue. I'm hoping to get the bulk of the JSON redesign work from the refactor in #1554 in for this release.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1566/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1102484126 I_kwDOBm6k_c5BtpKe 1595 Release notes for 0.60 simonw 9599 closed 0   Datasette 0.60 7571612 4 2022-01-13T22:23:14Z 2022-01-14T01:37:39Z 2022-01-14T01:37:39Z OWNER     datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1595/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1099723916 I_kwDOBm6k_c5BjHSM 1590 Table+query JSON and CSV links broken when using `base_url` setting eelkevdbos 1001306 closed 0   Datasette 0.60 7571612 11 2022-01-11T23:46:39Z 2022-01-14T01:16:34Z 2022-01-14T01:16:08Z NONE  

Datasette appends the prefix found in the base_url setting twice if a base_url is set.

In the follow asgi example, I'm hosting a custom Datasette instance:

```python

asgi.py

import pathlib from asgi_cors import asgi_cors from channels.routing import URLRouter from django.urls import re_path from datasette.app import Datasette

datasette_ = Datasette( files=[], settings={ "base_url": "/datasettes/", "plugins": {} }, config_dir=pathlib.Path('.'), ) application = URLRouter([ re_path(r"^datasettes/.*", asgi_cors(datasette_.app(), allow_all=True)), ]) ```

Running it with: shell $ daphne -p 8002 asgi:application

Using a simple query on the _memory table: sql select sqlite_version()

http://localhost:8002/datasettes/_memory?sql=select+sqlite_version%28%29

It renders the following upon inspection:

I am using datasette version 0.59.4

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1590/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1059555791 I_kwDOBm6k_c4_J4nP 1527 Columns starting with an underscore behave poorly in filters simonw 9599 closed 0   Datasette 0.60 7571612 7 2021-11-22T01:01:36Z 2022-01-14T00:57:08Z 2022-01-14T00:57:08Z OWNER  

Similar bug to #1525 (and #1506 before it). Start on https://latest.datasette.io/fixtures/facetable?_facet=_neighborhood - then select a neighborhood - then try to remove that filter using the little "x" and submitting the form again.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1527/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1082746149 I_kwDOBm6k_c5AiWUl 1560 Table page title has "where where" in it simonw 9599 closed 0   Datasette 0.60 7571612 0 2021-12-17T00:05:48Z 2022-01-13T22:28:35Z 2022-01-13T22:20:15Z OWNER  

Just noticed this while working on #1518.

% curl -s 'https://latest.datasette.io/fixtures/facetable?_sort=pk&on_earth__exact=1' | grep -C 1 '<title>' <head> <title>fixtures: facetable: 14 rows where where on_earth = 1 sorted by pk</title>

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1560/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
991467558 MDU6SXNzdWU5OTE0Njc1NTg= 1466 Add Datasette Desktop to installation documentation simonw 9599 closed 0   Datasette 0.60 7571612 2 2021-09-08T19:41:27Z 2022-01-13T22:28:28Z 2022-01-13T21:55:18Z OWNER  

See https://datasette.io/desktop and https://simonwillison.net/2021/Sep/8/datasette-desktop/

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1466/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1102359726 I_kwDOBm6k_c5BtKyu 1594 Add a CLI reference page to the docs, inspired by sqlite-utils simonw 9599 closed 0   Datasette 0.60 7571612 3 2022-01-13T20:55:08Z 2022-01-13T22:28:22Z 2022-01-13T21:38:48Z OWNER  

Thought of this while posting this comment: https://github.com/simonw/datasette/issues/1591#issuecomment-1012506595

I added https://sqlite-utils.datasette.io/en/stable/cli-reference.html to sqlite-utils in https://github.com/simonw/sqlite-utils/issues/383 and I really like it - it's a page showing the --help output of every CLI command for that tool.

It's maintained using cog. One of the benefits is that I get a free commit history of changes to --help at https://github.com/simonw/sqlite-utils/commits/main/docs/cli-reference.rst

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1594/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1097101917 I_kwDOBm6k_c5BZHJd 1588 `explain query plan select` is too strict about whitespace simonw 9599 closed 0   Datasette 0.60 7571612 3 2022-01-09T04:22:42Z 2022-01-13T22:28:19Z 2022-01-13T20:35:05Z OWNER  

explain query plan select * from facetable is allowed: https://latest.datasette.io/fixtures?sql=explain+query+plan+select+*+from+facetable

But... explain query plan select * from facetable (with two spaces before the select) returns a "Statement must be a SELECT" error: https://latest.datasette.io/fixtures?sql=explain+query+plan++select+*+from+facetable

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1588/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1087931918 I_kwDOBm6k_c5A2IYO 1579 `.execute_write(... block=True)` should be the default behaviour simonw 9599 closed 0   Datasette 0.60 7571612 7 2021-12-23T18:54:28Z 2022-01-13T22:28:08Z 2021-12-23T19:18:26Z OWNER  

Every single piece of code I've written against the write APIs has used the block=True option to wait for the result.

Without that, it instead fires the write into the queue but then continues even before it has finished executing.

block=True should clearly be the default behaviour here!

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1579/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1076388044 I_kwDOBm6k_c5AKGDM 1547 Writable canned queries fail to load custom templates wragge 127565 closed 0   Datasette 0.60 7571612 6 2021-12-10T03:31:48Z 2022-01-13T22:27:59Z 2021-12-19T21:12:00Z CONTRIBUTOR  

I've created a canned query with "write": true set. I've also created a custom template for it, but the template doesn't seem to be found. If I look in the HTML I see (stock_exchange is the db name):

<!-- Templates considered: query-stock_exchange.html, *query.html -->

My non-writeable canned queries pick up custom templates as expected, and if I look at their HTML I see the canned query name added to the templates considered (the canned query here is date_search):

<!-- Templates considered: query-stock_exchange-date_search.html, query-stock_exchange.html, *query.html -->

So it seems like the writeable canned query is behaving differently for some reason. Is it an authentication thing? I'm using the built in --root authentication.

Thanks!

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1547/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083927147 I_kwDOBm6k_c5Am2pr 1571 Track number of executions for execute_write_many() in traces simonw 9599 closed 0   Datasette 0.60 7571612 0 2021-12-18T19:16:17Z 2022-01-13T22:27:49Z 2021-12-19T20:30:40Z OWNER  

Spotted while working on #1555

There's no indication there of how many times execute_write_many() executed the SQL.

Solving this is a tiny bit tricky because params_seq is an iterator that we don't want to exhaust before passing it to conn.executemany() - so we need to instead wrap it in something that counts how many times it was called.

But then we need a way to attach that to the trace here: https://github.com/simonw/datasette/blob/d637ed46762fdbbd8e32b86f258cd9a53c1cfdc7/datasette/database.py#L115-L122

So probably need to redesign the trace() decorator to allow extra pairs to be attached to it within the with statement.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1571/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1084007781 I_kwDOBm6k_c5AnKVl 1572 "Query took" should be "Queries took" simonw 9599 closed 0   Datasette 0.60 7571612 0 2021-12-19T04:03:00Z 2022-01-13T22:27:43Z 2021-12-19T04:03:24Z OWNER  

This is misleading, since usually there have been more than one query executed:

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1572/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083921371 I_kwDOBm6k_c5Am1Pb 1570 Separate db.execute_write() into three methods simonw 9599 closed 0   Datasette 0.60 7571612 2 2021-12-18T18:45:54Z 2022-01-13T22:27:38Z 2021-12-18T18:57:25Z OWNER  

Rather than adding a executemany=True parameter, I'm now thinking a better design might be to have three methods:

  • db.execute_write(sql, params=None, block=False)
  • db.execute_write_script(sql, block=False)
  • db.execute_write_many(sql, params_seq, block=False)

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1555#issuecomment-997267416

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1570/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1079149656 I_kwDOBm6k_c5AUoRY 1555 Optimize all those calls to index_list and foreign_key_list simonw 9599 closed 0   Datasette 0.60 7571612 27 2021-12-13T23:50:56Z 2022-01-13T22:27:32Z 2021-12-19T20:55:59Z OWNER  

On the first hit to a restarted index I'm seeing this in the SQL traces: https://latest-with-plugins.datasette.io/github/commits?_trace=1

I imagine this could be sped up a lot using tricks like this one from the SQLite documentation: https://sqlite.org/pragma.html#pragfunc

sql SELECT DISTINCT m.name || '.' || ii.name AS 'indexed-columns' FROM sqlite_schema AS m, pragma_index_list(m.name) AS il, pragma_index_info(il.name) AS ii WHERE m.type='table' ORDER BY 1; https://latest-with-plugins.datasette.io/fixtures?sql=SELECT+DISTINCT+m.name+%7C%7C+%27.%27+%7C%7C+ii.name+AS+%27indexed-columns%27%0D%0A++FROM+sqlite_schema+AS+m%2C%0D%0A+++++++pragma_index_list%28m.name%29+AS+il%2C%0D%0A+++++++pragma_index_info%28il.name%29+AS+ii%0D%0A+WHERE+m.type%3D%27table%27%0D%0A+ORDER+BY+1%3B

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1555/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083895395 I_kwDOBm6k_c5Amu5j 1569 db.execute_write(..., executescript=True) parameter simonw 9599 closed 0   Datasette 0.60 7571612 2 2021-12-18T18:20:47Z 2022-01-13T22:27:27Z 2021-12-18T18:34:18Z OWNER  

Idea: teach execute_write to accept an optional executescript=True parameter, like this: ```diff diff --git a/datasette/database.py b/datasette/database.py index 468e936..1a424f5 100644 --- a/datasette/database.py +++ b/datasette/database.py @@ -94,10 +94,14 @@ class Database: f"file:{self.path}{qs}", uri=True, check_same_thread=False )

  • async def execute_write(self, sql, params=None, block=False):
  • async def execute_write(self, sql, params=None, executescript=False, block=False):
  • assert not executescript and params, "Cannot use params with executescript=True" def _inner(conn): with conn:
  • return conn.execute(sql, params or [])
  • if executescript:
  • return conn.executescript(sql)
  • else:
  • return conn.execute(sql, params or [])
     with trace("sql", database=self.name, sql=sql.strip(), params=params):
         results = await self.execute_write_fn(_inner, block=block)
    

    ```

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1555#issuecomment-997248364

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1569/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083726550 I_kwDOBm6k_c5AmFrW 1568 Trace should show queries on the write connection too simonw 9599 closed 0   Datasette 0.60 7571612 2 2021-12-18T02:34:12Z 2022-01-13T22:27:23Z 2021-12-18T02:42:34Z OWNER  

Here's why - trace only applies to read, not write SQL operations: https://github.com/simonw/datasette/blob/7c8f8aa209e4ba7bf83976f8495d67c28fbfca24/datasette/database.py#L209-L211

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1555#issuecomment-997128508

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1568/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083573206 I_kwDOBm6k_c5AlgPW 1563 Datasette(... files=) should not be a required argument simonw 9599 closed 0   Datasette 0.60 7571612 2 2021-12-17T19:54:18Z 2022-01-13T22:27:18Z 2021-12-18T02:19:40Z OWNER  

```pycon

ds = Datasette(memory=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: init() missing 1 required positional argument: 'files' ds = Datasette(memory=True, files=[]) `` I wanted to create an in-memory Datasette for running some tests, no point in forcing me to passfiles=[]` to do that.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1563/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1083718998 I_kwDOBm6k_c5AmD1W 1567 Remove undocumented sqlite_functions mechanism simonw 9599 closed 0   Datasette 0.60 7571612 0 2021-12-18T01:51:10Z 2022-01-13T22:27:04Z 2021-12-18T01:54:46Z OWNER  

I added this in 0b8c1b0a6da9cb8ac0d28cc90dd783de87554036 but it's never been documented and the same thing can now be achieved using the prepare_connection plugin hook.

https://github.com/simonw/datasette/blob/0c91e59d2bbfc08884cfcf5d1b902a2f4968b7ff/datasette/app.py#L262

https://github.com/simonw/datasette/blob/0c91e59d2bbfc08884cfcf5d1b902a2f4968b7ff/datasette/app.py#L551-L552

It's used here in the tests:

https://github.com/simonw/datasette/blob/69244a617b1118dcbd04a8f102173f04680cf08c/tests/fixtures.py#L156

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1567/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
520740741 MDU6SXNzdWU1MjA3NDA3NDE= 625 If you apply ?_facet_array=tags then &_facet=tags does nothing simonw 9599 closed 0   Datasette 0.60 7571612 13 2019-11-11T04:59:29Z 2022-01-13T22:26:58Z 2021-12-16T20:12:22Z OWNER  

Start here: https://v0-30-2.datasette.io/fixtures/facetable?_facet_array=tags

Note that tags is offered as a suggested facet. But if you click that you get this:

https://v0-30-2.datasette.io/fixtures/facetable?_facet_array=tags&_facet=tags

The _facet=tags is added to the URL and it's removed from the list of suggested tags... but the facet itself is not displayed:

The _facet=tags facet should look like this:

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/625/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1082564912 I_kwDOBm6k_c5AhqEw 1557 `?_nosuggest=1` parameter for disabling facet suggestions on table view simonw 9599 closed 0   Datasette 0.60 7571612 1 2021-12-16T19:21:42Z 2022-01-13T22:26:48Z 2021-12-16T19:24:59Z OWNER  

Found I wanted this while I was debugging #625 just to clean up the debug traces, but it makes sense as a partner to ?_nofacet=1 and ?_nocount=1 from #1350 and #1353.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1557/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1078702875 I_kwDOBm6k_c5AS7Mb 1552 Allow to set `facets_array` in metadata (like current `facets`) davidbgk 3556 closed 0   Datasette 0.60 7571612 9 2021-12-13T16:00:44Z 2022-01-13T22:26:15Z 2021-12-16T18:47:48Z CONTRIBUTOR  

For now, you can set a facets value (array) in your metadata file but I couldn't find a way to set a facets_array in order to provide default facets for arrays (like tags). My use-case is to access to that kind of view by default without URL's parameters as with other default facets.

I'm new to datasette, and I'm willing to help with a PR if that is not already implemented and I missed it!

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1552/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
1081318247 I_kwDOBm6k_c5Ac5tn 1556 Show count of facet values always, not just for `?_facet_size=max` simonw 9599 closed 0   Datasette 0.60 7571612 1 2021-12-15T17:49:01Z 2022-01-13T22:26:07Z 2021-12-15T17:58:06Z OWNER  

You've caused me to rethink this feature - I no longer think there's value in only showing these numbers if ?_facet_size=max as opposed to all of the time.

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1423#issuecomment-995023410

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1556/reactions",
    "total_count": 1,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 1,
    "rocket": 0,
    "eyes": 0
}
  completed
1077893013 I_kwDOBm6k_c5AP1eV 1551 `keep_blank_values=True` when parsing `request.args` simonw 9599 closed 0   Datasette 0.60 7571612 3 2021-12-12T19:53:07Z 2022-01-13T22:26:04Z 2021-12-12T20:02:01Z OWNER  

This code in TableView wouldn't be necessary: https://github.com/simonw/datasette/blob/492f9835aa7e90540dd0c6324282b109f73df71b/datasette/views/table.py#L396-L399

If that happened here instead: https://github.com/simonw/datasette/blob/492f9835aa7e90540dd0c6324282b109f73df71b/datasette/utils/asgi.py#L98-L100

Originally posted by @simonw in https://github.com/simonw/datasette/issues/1518#issuecomment-991827468

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/1551/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [pull_request] TEXT,
   [body] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
, [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT);
CREATE INDEX [idx_issues_repo]
                ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
                ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
                ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
                ON [issues] ([user]);
Powered by Datasette · Queries took 38.136ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows