home / github

Menu
  • Search all tables
  • GraphQL API

issues

Table actions
  • GraphQL API for issues

22 rows where milestone = 4305096 and type = "issue" 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 · 22 ✖

state 1

  • closed 22

repo 1

  • datasette 22
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
443040665 MDU6SXNzdWU0NDMwNDA2NjU= 466 Move "no such module: VirtualSpatialIndex" code elsewhere simonw 9599 closed 0   0.28 4305096 2 2019-05-11T22:09:00Z 2022-01-20T21:29:41Z 2019-05-11T22:57:22Z OWNER  

We currently show a useful warning (from #331) when the user tries to open a spatialite database without first loading the module:

https://github.com/simonw/datasette/blob/c692cd291111050483a32bea1ee08e994a0b781b/datasette/app.py#L547-L554

This code is part of .inspect() which is going away - see #462 - so I need to find somewhere else for it to live.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/466/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
445862501 MDU6SXNzdWU0NDU4NjI1MDE= 477 Documentation for ArrayFacet (facet by JSON array) simonw 9599 closed 0   0.28 4305096 0 2019-05-19T20:47:27Z 2019-05-29T21:39:12Z 2019-05-19T21:19:43Z OWNER  

This is missing from https://datasette.readthedocs.io/en/0.27.1/facets.html right now

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/477/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
440313209 MDU6SXNzdWU0NDAzMTMyMDk= 451 Update README simonw 9599 closed 0   0.28 4305096 1 2019-05-04T11:26:07Z 2019-05-19T22:23:43Z 2019-05-19T22:23:43Z OWNER  

The README is quite out of date now. It includes out-dated copies of help files, promotes the old Zeit Now integration and duplicates a lot of material from the docs.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/451/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
443034003 MDU6SXNzdWU0NDMwMzQwMDM= 463 Write release notes for 0.28 simonw 9599 closed 0   0.28 4305096 1 2019-05-11T20:36:56Z 2019-05-19T21:24:44Z 2019-05-19T21:24:20Z OWNER  

So much new stuff!

https://github.com/simonw/datasette/compare/0.27...master

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/463/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
445855789 MDU6SXNzdWU0NDU4NTU3ODk= 474 Do not allow downloads of mutable databases simonw 9599 closed 0   0.28 4305096 1 2019-05-19T19:35:32Z 2019-05-19T20:41:17Z 2019-05-19T20:41:16Z OWNER  

If the file changes during download it will probably result in a corrupt download. Safer not to allow downloads at all of mutable databases.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/474/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
445855910 MDU6SXNzdWU0NDU4NTU5MTA= 475 Documentation for about and about_url metadata simonw 9599 closed 0   0.28 4305096 0 2019-05-19T19:36:59Z 2019-05-19T20:13:36Z 2019-05-19T20:13:36Z OWNER  

Added in https://github.com/simonw/datasette/commit/bf6b0f918de4aeee7c1036ac975ce2fb23237da7 without docs.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/475/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
445858491 MDU6SXNzdWU0NDU4NTg0OTE= 476 Remove "datasette skeleton" simonw 9599 closed 0   0.28 4305096 0 2019-05-19T20:04:11Z 2019-05-19T20:06:06Z 2019-05-19T20:06:06Z OWNER  

It doesn't work any more, and it's not a particularly useful feature - I've hardly used it since I added it.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/476/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
421971339 MDU6SXNzdWU0MjE5NzEzMzk= 420 Fix all the places that currently use .inspect() data simonw 9599 closed 0   0.28 4305096 13 2019-03-17T20:54:37Z 2019-05-19T19:58:31Z 2019-05-02T01:13:46Z OWNER  

See #419: if Datasette is going to work against mutable SQLite files it can no longer assume that the .inspect() method will have cached the correct schema for all tables in all attached databases.

So everywhere in the code at the moment that relies on .inspect() data needs to be modified to use live introspection of the schema instead.

From a comment later on: here are the uses I need to fix as a checklist:

  • [x] table_exists()
  • [x] info["file"] in .execute()
  • [x] resolve_db_name()
  • [x] .database_url(database)
  • [x] DatabaseDownload file path
  • [x] sortable_columns_for_table() uses it to find the columns in a table
  • [x] expandable_columns() uses it to find foreign keys
  • [x] expand_foreign_keys() uses it to find foreign keys
  • [x] display_columns_and_rows() uses it to find primary keys and foreign keys... but also has access to a cursor.description which it uses to list the columns
  • [x] TableView.data uses it to lookup columns and primary keys and the table_rows_count (used if the thing isn't a view) and probably a few more things, this method is huge!
  • [x] RowView.data uses it for primary keys
  • [x] foreign_key_tables() uses it for foreign keys
  • [x] DatabaseView list of tables
  • [x] IndexView
datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/420/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
444997937 MDU6SXNzdWU0NDQ5OTc5Mzc= 470 /-/databases showing currently attached database details simonw 9599 closed 0   0.28 4305096 1 2019-05-16T14:45:18Z 2019-05-19T19:28:44Z 2019-05-16T14:50:26Z OWNER  

Split from #419. Mainly useful to see what is connected as mutable v.s. immutable.

Also helps fill the gap left by /-/inspect until #465

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/470/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
445230077 MDU6SXNzdWU0NDUyMzAwNzc= 472 Rename "publish now" to "publish nowv1" simonw 9599 closed 0   0.28 4305096 1 2019-05-17T01:58:52Z 2019-05-19T18:07:39Z 2019-05-19T18:07:39Z OWNER  

This will help clarify that you need a nowv1 account use it.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/472/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
421985685 MDU6SXNzdWU0MjE5ODU2ODU= 421 Documentation for ?_hash=1 and Datasette's hashed URL caching simonw 9599 closed 0   0.28 4305096 2 2019-03-17T23:08:36Z 2019-05-19T05:32:37Z 2019-05-19T05:31:27Z OWNER  

Follow on from #418 - the Datasette documentation needs an entire section (probably a new page) describing exactly how the hash-in-URL caching mechanism works.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/421/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
421551434 MDU6SXNzdWU0MjE1NTE0MzQ= 419 Default to opening files in mutable mode, special option for immutable files simonw 9599 closed 0   0.28 4305096 10 2019-03-15T14:39:27Z 2019-05-16T15:14:32Z 2019-05-16T15:14:31Z OWNER  

One of the original ideas behind Datasette was that serving immutable data makes everything way easier. Two examples: You don't have to worry about SQLite concurrency and you can bundle the database inside a Docker container and deploy it to immutable hosting. See The interesting ideas in Datasette for more on this.

I'm beginning to see a much stronger case for being able to serve mutable data as well.

SQLite is actually perfectly capable of handling reads against a database that is also being written to, even if the writes are coming from another process. https://www.sqlite.org/wal.htm

There are all kinds of interesting use-cases which Datasette is currently unsuitable for due to its insistence on immutable databases. Some examples:

  • Continually run Datasette against a SQLite database updated by another process, e.g. Firefox bookmarks
  • Projects where a cron runs every X minutes and writes new entries gathered from other sources to SQLite
  • Tail a log file, write those log updates to a SQLite file, view recent log entries in Datasette

This is also relevant to #417, Datasette Library.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/419/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
421548881 MDU6SXNzdWU0MjE1NDg4ODE= 418 Hashed URLs should be optional simonw 9599 closed 0   0.28 4305096 5 2019-03-15T14:34:12Z 2019-05-16T15:12:26Z 2019-05-16T15:12:26Z OWNER  

The cute performance hack where a hash of the DB contents is included in the URL makes a lot less sense when serving files that frequently change. It's also difficult to explain to people.

It should be optional and default to "off".

Needed for #417 and #419

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/418/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
445003029 MDU6SXNzdWU0NDUwMDMwMjk= 471 ?_hash=1 and --config hash_urls:1 should only work for immutable databases simonw 9599 closed 0   0.28 4305096 1 2019-05-16T14:54:25Z 2019-05-16T15:11:03Z 2019-05-16T15:11:03Z OWNER  

Split from #419.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/471/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
443023308 MDU6SXNzdWU0NDMwMjMzMDg= 462 Replace most of `.inspect()` (and `datasette inspect`) with table counting simonw 9599 closed 0   0.28 4305096 4 2019-05-11T18:26:06Z 2019-05-16T14:31:05Z 2019-05-16T14:31:05Z OWNER  

This is the last part of #419 - with the move to supporting mutable databases by default, the inspect-data mechanism currently in use no-longer makes much sense.

The one optimization I think it's worth keeping for databases opened in immutable mode is the cached table counts. I think datasette inspect should cut down to only counting the rows in the tables - the other things done by inspect (figuring out columns, foreign key relationships, FTS etc) should all be fast enough that they can be reliably performed at runtime even against large databases.

If performing them at run-time has performance issues, I would rather cache those results internally within Datasette after they are first calculated than continue to support them in the datasette inspect command - to keep things simpler.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/462/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
443034218 MDU6SXNzdWU0NDMwMzQyMTg= 464 Add Glitch to Getting Started docs section simonw 9599 closed 0   0.28 4305096 1 2019-05-11T20:39:39Z 2019-05-16T05:04:35Z 2019-05-16T05:03:46Z OWNER  

Glitch is by far the easiest way to start trying out Datasette. Add a section to https://datasette.readthedocs.io/en/latest/getting_started.html

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/464/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
443020810 MDU6SXNzdWU0NDMwMjA4MTA= 460 Design changes to homepage to support mutable files simonw 9599 closed 0   0.28 4305096 5 2019-05-11T17:58:05Z 2019-05-16T03:34:09Z 2019-05-16T03:24:16Z OWNER  

Needed for #419 - since we can now start up Datasette with a whole bunch of large connected databases that are mutable we can no longer guarantee a quick count of rows across all of the tables.

New proposed homepage tweaks:

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/460/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
444711254 MDU6SXNzdWU0NDQ3MTEyNTQ= 467 Index page row counts only for DBs with < 30 tables (10ms count limit per table) simonw 9599 closed 0   0.28 4305096 2 2019-05-16T01:21:36Z 2019-05-16T03:03:45Z 2019-05-16T03:03:45Z OWNER  

Split out from #460.

If a database is mutable, calculating row counts gets expensive. I'm only going to calculate row counts for the index page if it has less than X tables (both hidden and non-hidden) AND each table can be counted in less than 10ms.

If any count takes longer than 10ms I'll cancel the counting entirely. We currently show an inaccurate count if this happens, which is just confusing.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/467/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
377266351 MDU6SXNzdWUzNzcyNjYzNTE= 373 Views should be shown on root/index page along with tables gfrmin 416374 closed 0   0.28 4305096 1 2018-11-05T06:28:41Z 2019-05-16T00:29:22Z 2019-05-16T00:29:22Z CONTRIBUTOR  

At the moment the number of views is given on a datasette "homepage", but not links to any views themselves

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/373/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
441858747 MDU6SXNzdWU0NDE4NTg3NDc= 455 Hidden tables shown on the index page simonw 9599 closed 0   0.28 4305096 1 2019-05-08T18:02:13Z 2019-05-14T15:49:29Z 2019-05-14T15:48:08Z OWNER  

Minor bug in master right now.

https://csvconf.now.sh/

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/455/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
435531034 MDU6SXNzdWU0MzU1MzEwMzQ= 435 Tracing support for seeing what SQL queries were executed simonw 9599 closed 0   0.28 4305096 4 2019-04-21T17:37:37Z 2019-05-11T20:32:21Z 2019-05-11T19:07:42Z OWNER  

Features like faceting, foreign key expansions and now the inspect-less index view mean Datasette can end up executing a surprisingly large number of SQL queries to render a single page.

Past experience with projects like tikbar have shown that being able to see what actually went into rendering a page can be critical for optimizing performance and generally understanding how everything works.

Support a tracing mode (probably via a ?_trace=1 querystring) which adds information about what is actually going on to both the HTML and the JSON.

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/435/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed
443020048 MDU6SXNzdWU0NDMwMjAwNDg= 459 Fix the "datasette now publish ... --alias=x" option simonw 9599 closed 0   0.28 4305096 3 2019-05-11T17:48:40Z 2019-05-11T20:22:08Z 2019-05-11T20:22:08Z OWNER  

Now have deprecated the mechanism we were using for this - running now alias without any parameters - in favour of something new:

https://zeit.co/blog/automatic-aliasing

datasette 107914493 issue    
{
    "url": "https://api.github.com/repos/simonw/datasette/issues/459/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 45.072ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows