issues
1,617 rows where state = "closed" and user = 9599 sorted by milestone
This data as json, CSV (advanced)
Suggested facets: author_association, draft, created_at (date), updated_at (date)
closed_at (date) >30 ✖
- 2017-11-13 14
- 2018-05-28 12
- 2020-06-09 12
- 2020-10-31 12
- 2017-10-24 11
- 2019-06-24 11
- 2023-07-22 11
- 2020-05-28 10
- 2020-09-15 10
- 2023-05-21 10
- 2017-11-11 9
- 2017-12-07 9
- 2019-05-19 9
- 2020-05-02 9
- 2020-10-30 9
- 2022-01-11 9
- 2022-11-29 9
- 2019-05-16 8
- 2020-03-23 8
- 2020-09-22 8
- 2020-10-29 8
- 2021-01-03 8
- 2022-01-26 8
- 2022-08-27 8
- 2022-12-13 8
- 2017-12-10 7
- 2019-02-24 7
- 2020-06-11 7
- 2020-09-24 7
- 2020-10-09 7
- …
repo 12
state 1
- closed · 1,617 ✖
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
267542338 | MDU6SXNzdWUyNjc1NDIzMzg= | 13 | Add a syntax highlighting SQL editor | simonw 9599 | closed | 0 | 1 | 2017-10-23T05:03:33Z | 2017-11-15T02:04:51Z | 2017-11-15T02:04:51Z | OWNER | https://ace.c9.io/#nav=embedding looks like a good option |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/13/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
267707940 | MDU6SXNzdWUyNjc3MDc5NDA= | 14 | Datasette Plugins | simonw 9599 | closed | 0 | 22 | 2017-10-23T15:15:28Z | 2019-05-13T18:58:20Z | 2019-05-13T18:58:19Z | OWNER | It would be neat if additional functionality could be opted-in to the system in the form of easy-to-add plugins, hosted as separate packages. First example: a Google Analytics plugin, which adds GA tracking code with your tracking ID to the web interface for your dataset. This may be an opportunity to experiment with entry points: http://amir.rachum.com/blog/2017/07/28/python-entry-points/ |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/14/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
267739593 | MDU6SXNzdWUyNjc3Mzk1OTM= | 18 | See if I can get a websockets interface working | simonw 9599 | closed | 0 | 1 | 2017-10-23T16:46:41Z | 2021-01-04T20:05:52Z | 2021-01-04T20:05:48Z | OWNER | Since I am already running on Sanic, how hard would it be to add a websocket ebdpoint that lets you talk to sqlite interactively? Could this be used to efficiently support streaming in answers to giant queries? |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/18/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
267857622 | MDU6SXNzdWUyNjc4NTc2MjI= | 25 | Endpoint that returns SQL ready to be piped into DB | simonw 9599 | closed | 0 | 2 | 2017-10-24T00:19:26Z | 2017-11-15T05:11:12Z | 2017-11-15T05:11:11Z | OWNER | It would be cool if I could figure out a way to generate both the create table statements and the inserts for an individual table or the entire database and then stream them down to the client. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/25/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
267886330 | MDU6SXNzdWUyNjc4ODYzMzA= | 27 | Ability to plot a simple graph | simonw 9599 | closed | 0 | 3 | 2017-10-24T03:34:59Z | 2018-07-10T17:52:41Z | 2018-07-10T17:52:41Z | OWNER | Might be as simple as: pick he type of chart (bar, line) and then pick the column for the X axis and the column for the Y axis. Maybe also allow a pie chart. It’s up to the user to come up with SQL that gets the right values. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/27/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268078453 | MDU6SXNzdWUyNjgwNzg0NTM= | 30 | Do something neat with foreign keys | simonw 9599 | closed | 0 | 1 | 2017-10-24T15:29:29Z | 2017-11-14T18:29:08Z | 2017-11-14T18:29:01Z | OWNER | https://www.sqlite.org/pragma.html#pragma_foreign_key_list SQLite has robust support for introspecting foreign keys. I could use that to automatically link to the corresponding record from my tables. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/30/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268176505 | MDU6SXNzdWUyNjgxNzY1MDU= | 34 | Support CSV export with a .csv extension | simonw 9599 | closed | 0 | 1 | 2017-10-24T20:34:43Z | 2021-06-17T18:14:48Z | 2018-05-28T20:45:34Z | OWNER | Maybe do this using streaming with multiple pagination SQL queries so we can support arbritrarily large exports. How would this work against a view which doesn’t have an obvious efficient pagination mechanism? Maybe limit views to up to 1000 exported records? Relates to #5 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/34/reactions", "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268262480 | MDU6SXNzdWUyNjgyNjI0ODA= | 36 | date, year, month and day querystring lookups | simonw 9599 | closed | 0 | 3 | 2017-10-25T04:23:45Z | 2018-05-28T17:30:53Z | 2018-05-28T17:30:53Z | OWNER |
Follow on from #23 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/36/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268453968 | MDU6SXNzdWUyNjg0NTM5Njg= | 37 | Ability to serialize massive JSON without blocking event loop | simonw 9599 | closed | 0 | 2 | 2017-10-25T15:58:03Z | 2020-05-30T17:29:20Z | 2020-05-30T17:29:20Z | OWNER | We run the risk of someone attempting a select statement that returns thousands of rows and hence takes several seconds just to JSON encode the response, effectively blocking the event loop and pausing all other traffic. The Twisted community have a solution for this, can we adapt that in some way? http://as.ynchrono.us/2010/06/asynchronous-json_18.html?m=1 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/37/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268462768 | MDU6SXNzdWUyNjg0NjI3Njg= | 38 | Experiment with patterns for concurrent long running queries | simonw 9599 | closed | 0 | 5 | 2017-10-25T16:23:42Z | 2018-05-28T20:47:31Z | 2018-05-28T20:47:31Z | OWNER | I want to understand how the system could perform under load with many concurrent long-running queries. Can we serve these without blocking the event loop? |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/38/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268591332 | MDU6SXNzdWUyNjg1OTEzMzI= | 42 | Homepage UI for editing metadata file | simonw 9599 | closed | 0 | 4 | 2017-10-26T00:22:03Z | 2017-12-10T03:02:14Z | 2017-12-10T03:02:14Z | OWNER | Since we are going to have a metadata file which sets the title/description/etc for each database, why not allow you to run the app in —dev mode which makes the homepage into a WYSIWYG editor that can save to that file format. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/42/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
269731374 | MDU6SXNzdWUyNjk3MzEzNzQ= | 44 | ?_group_count=country - return counts by specific column(s) | simonw 9599 | closed | 0 | 7 | 2017-10-30T19:50:32Z | 2018-04-26T15:09:58Z | 2018-04-26T15:09:58Z | OWNER | Imagine if this: Turned into this: This would involve introducing a new precedent of query string arguments that start with an _ having special meanings. While we're at it, could try adding _fields=x,y,z Tasks:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/44/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
271301468 | MDU6SXNzdWUyNzEzMDE0Njg= | 46 | Dockerfile should build more recent SQLite with FTS5 and spatialite support | simonw 9599 | closed | 0 | 13 | 2017-11-05T18:16:22Z | 2017-11-17T14:32:12Z | 2017-11-17T14:32:12Z | OWNER | The SQLite bundled with Python 3 doesn't support the FTS5 search extension. It would be nice if the SQLite built by our Dockerfile could support as many modern SQLite features as possible. https://web.archive.org/web/20170212034155/http://charlesleifer.com/blog/using-the-sqlite-json1-and-fts5-extensions-with-python/ has instructions on building a more recent SQLite and the pysqlite package. Our Dockerfile could carry out an updated version of this process. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/46/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
271831408 | MDU6SXNzdWUyNzE4MzE0MDg= | 47 | Create neat example database | simonw 9599 | closed | 0 | 5 | 2017-11-07T13:29:38Z | 2017-11-14T03:08:13Z | 2017-11-14T03:08:13Z | OWNER | How about data from open elections eg https://github.com/openelections/openelections-data-ca?files=1 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/47/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
272391665 | MDU6SXNzdWUyNzIzOTE2NjU= | 48 | Switch to ujson | simonw 9599 | closed | 0 | 4 | 2017-11-08T23:50:29Z | 2019-06-24T06:57:54Z | 2019-06-24T06:57:43Z | OWNER | ujson is already a dependency of Sanic, and should be quite a bit faster. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/48/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273026602 | MDU6SXNzdWUyNzMwMjY2MDI= | 52 | Solution for temporarily uploading DB so it can be built by docker | simonw 9599 | closed | 0 | 2 | 2017-11-10T18:55:25Z | 2017-12-10T03:02:57Z | 2017-12-10T03:02:57Z | OWNER | For the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/52/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273127443 | MDU6SXNzdWUyNzMxMjc0NDM= | 56 | Easy way to block search engine crawling in robots.txt | simonw 9599 | closed | 0 | 1 | 2017-11-11T07:46:07Z | 2018-05-28T20:50:25Z | 2018-05-28T20:50:24Z | OWNER | For people who don't want their datasets to be crawled by search engines. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/56/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273127694 | MDU6SXNzdWUyNzMxMjc2OTQ= | 57 | Ship a Docker image of the whole thing | simonw 9599 | closed | 0 | 7 | 2017-11-11T07:51:28Z | 2018-06-28T04:01:51Z | 2018-06-28T04:01:38Z | OWNER | The generated Docker images can then just inherit from that. This will speed up deploys as no need to
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/57/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273157085 | MDU6SXNzdWUyNzMxNTcwODU= | 59 | datasette publish hyper | simonw 9599 | closed | 0 | 4 | 2017-11-11T16:27:26Z | 2019-05-13T19:01:00Z | 2019-05-13T19:00:44Z | OWNER | This is a bit tricky, because unlike Now there doesn't seem to be a way to tell Hyper to "build this Dockerfile and deploy the resulting image". They expect you to build a container and publish it to a registry instead. https://docs.hyper.sh/Reference/CLI/load.html allows you to publish an image directly from a tarball, but that still leaves the challenge of creating that image. The nice thing about the Now integration is that you don't need to have Docker installed on your local machine. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/59/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273181020 | MDU6SXNzdWUyNzMxODEwMjA= | 64 | Support for ?field__isnull=1 or similar | simonw 9599 | closed | 0 | 1 | 2017-11-11T22:26:52Z | 2017-11-17T14:38:21Z | 2017-11-17T14:38:21Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/64/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
273296178 | MDU6SXNzdWUyNzMyOTYxNzg= | 73 | _nocache=1 query string option for use with sort-by-random | simonw 9599 | closed | 0 | 2 | 2017-11-13T02:57:10Z | 2018-05-28T17:25:15Z | 2018-05-28T17:25:15Z | OWNER | The one place where we wouldn’t want cdching is if we have something which uses sort by random to return random items. We can offer a _nocache=1 querystring argument to support this. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/73/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273569068 | MDU6SXNzdWUyNzM1NjkwNjg= | 79 | Add more detailed API documentation to the README | simonw 9599 | closed | 0 | 3 | 2017-11-13T20:36:21Z | 2018-05-28T17:24:48Z | 2018-05-28T17:24:48Z | OWNER | Need to document:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/79/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273626815 | MDU6SXNzdWUyNzM2MjY4MTU= | 83 | Individual row view is broken | simonw 9599 | closed | 0 | 0 | 2017-11-14T00:29:11Z | 2017-11-14T00:45:34Z | 2017-11-14T00:45:34Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/83/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
273660425 | MDU6SXNzdWUyNzM2NjA0MjU= | 84 | datasette package --metadata does not work with a relative path | simonw 9599 | closed | 0 | 0 | 2017-11-14T04:00:50Z | 2017-11-15T05:18:35Z | 2017-11-15T05:18:35Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/84/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273709194 | MDU6SXNzdWUyNzM3MDkxOTQ= | 87 | Configure Travis to release new tags to PyPI | simonw 9599 | closed | 0 | 1 | 2017-11-14T08:44:08Z | 2018-07-10T17:49:13Z | 2018-07-10T17:49:12Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/87/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
273846123 | MDU6SXNzdWUyNzM4NDYxMjM= | 90 | datasette publish heroku | simonw 9599 | closed | 0 | 8 | 2017-11-14T16:01:39Z | 2017-12-10T03:06:34Z | 2017-12-10T03:05:48Z | OWNER | Heroku has Docker container support so this should not be too hard: https://devcenter.heroku.com/articles/container-registry-and-runtime See also #59 This should work exactly like the existing “datasette publish now....” command except it would be “datasette publish heroku...” |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/90/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273878873 | MDU6SXNzdWUyNzM4Nzg4NzM= | 91 | Option to serve databases from a different prefix, serve regular content elsewhere | simonw 9599 | closed | 0 | 1 | 2017-11-14T17:32:46Z | 2017-12-10T03:07:58Z | 2017-12-10T03:07:53Z | OWNER | It would be useful if the databases themselves could be served from a prefix e.g.
Now my database is at This would free up the rest of the URL namespace for other things. Maybe we could have an option to serve static content from a known folder e.g.
Now a hit to This would make it trivial to package up entire HTML/CSS/JS apps with one or more underlying SQLite databases. Running without |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/91/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273895344 | MDU6SXNzdWUyNzM4OTUzNDQ= | 92 | Add --license --license_url --source --source_url --title arguments to datasette publish | simonw 9599 | closed | 0 | 0 | 2017-11-14T18:27:07Z | 2017-11-15T05:04:41Z | 2017-11-15T05:04:41Z | OWNER | I keep on using the https://gist.github.com/simonw/9f8bf23b37a42d7628c4dcc4bba10253 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/92/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
273998513 | MDU6SXNzdWUyNzM5OTg1MTM= | 95 | Allow shorter time limits to be set using a ?_sql_time_limit_ms =20 query string limit | simonw 9599 | closed | 0 | 1 | 2017-11-15T01:02:16Z | 2017-11-15T02:56:13Z | 2017-11-15T02:56:13Z | OWNER | This cannot be greater than the configured time limit. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/95/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274001453 | MDU6SXNzdWUyNzQwMDE0NTM= | 96 | UI for editing named parameters | simonw 9599 | closed | 0 | 3 | 2017-11-15T01:19:21Z | 2017-11-16T01:45:51Z | 2017-11-16T01:33:38Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/96/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
274022950 | MDU6SXNzdWUyNzQwMjI5NTA= | 97 | Link to JSON for the list of tables | simonw 9599 | closed | 0 | 3 | 2017-11-15T03:29:05Z | 2018-05-29T18:51:35Z | 2018-05-28T20:57:21Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/97/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
274023417 | MDU6SXNzdWUyNzQwMjM0MTc= | 98 | Default to 127.0.0.1 not 0.0.0.0 | simonw 9599 | closed | 0 | 0 | 2017-11-15T03:31:55Z | 2017-11-15T05:08:54Z | 2017-11-15T05:08:54Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/98/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
274023625 | MDU6SXNzdWUyNzQwMjM2MjU= | 99 | Start a change log | simonw 9599 | closed | 0 | 0 | 2017-11-15T03:33:21Z | 2017-11-16T15:12:46Z | 2017-11-16T15:12:45Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/99/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
274264175 | MDU6SXNzdWUyNzQyNjQxNzU= | 102 | datasette publish elasticbeanstalk | simonw 9599 | closed | 0 | 1 | 2017-11-15T18:48:31Z | 2021-01-04T20:13:20Z | 2021-01-04T20:13:19Z | OWNER | It looks like Elastic Beanstalk is the most convenient way to deploy a docker container to AWS without first deploying a cluster. https://aws.amazon.com/blogs/devops/dockerizing-a-python-web-app/ looks helpful. We would need to automate the deployment with Boto: http://boto3.readthedocs.io/en/latest/reference/services/elasticbeanstalk.html |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/102/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274265878 | MDU6SXNzdWUyNzQyNjU4Nzg= | 103 | datasette publish appengine | simonw 9599 | closed | 0 | 1 | 2017-11-15T18:54:18Z | 2021-01-04T20:05:14Z | 2021-01-04T20:05:14Z | OWNER | Similar approach to Heroku, discussed in #90 Looks like this could be pretty easy: https://cloud.google.com/appengine/docs/flexible/python/quickstart |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/103/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274314940 | MDU6SXNzdWUyNzQzMTQ5NDA= | 105 | Consider data-package as a format for metadata | simonw 9599 | closed | 0 | 4 | 2017-11-15T21:43:34Z | 2017-11-20T19:50:53Z | 2017-11-20T19:50:53Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/105/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
274315193 | MDU6SXNzdWUyNzQzMTUxOTM= | 106 | Document how pagination works | simonw 9599 | closed | 0 | 1 | 2017-11-15T21:44:32Z | 2019-06-24T06:42:33Z | 2019-06-24T06:42:33Z | OWNER | I made a start at that in this comment: https://news.ycombinator.com/item?id=15691926 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/106/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274374317 | MDU6SXNzdWUyNzQzNzQzMTc= | 108 | Include version in python code, output in template | simonw 9599 | closed | 0 | 0 | 2017-11-16T02:32:40Z | 2017-11-16T15:30:04Z | 2017-11-16T15:30:04Z | OWNER | It would be useful if I could tell which version of datasette was running on a site. Embed version number and include it in maybe a tooltip on the “powered by datasette” link |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/108/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274378301 | MDU6SXNzdWUyNzQzNzgzMDE= | 109 | Set up readthedocs | simonw 9599 | closed | 0 | 1 | 2017-11-16T02:58:01Z | 2017-11-16T16:53:26Z | 2017-11-16T16:13:56Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/109/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
274578142 | MDU6SXNzdWUyNzQ1NzgxNDI= | 110 | Add --load-extension option to datasette for loading extra SQLite extensions | simonw 9599 | closed | 0 | 2 | 2017-11-16T16:26:19Z | 2017-11-16T18:38:30Z | 2017-11-16T16:58:50Z | OWNER | This would allow users with extra SQLite extensions installed (like spatialite) to load them at runtime. Inspired by this comment: https://github.com/simonw/datasette/issues/46#issuecomment-344810525 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/110/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274617240 | MDU6SXNzdWUyNzQ2MTcyNDA= | 112 | Allow --load-extension to be set via environment variables | simonw 9599 | closed | 0 | 1 | 2017-11-16T18:28:31Z | 2017-11-17T14:19:23Z | 2017-11-17T14:17:27Z | OWNER | This will make it easier to package up datasette in a Docker container with a bunch of pre-compiled extensions without the user having to remember to include all of the options every time. Click has a mechanism for this: http://click.pocoo.org/5/options/#multiple-values-from-environment-values |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/112/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
274884209 | MDU6SXNzdWUyNzQ4ODQyMDk= | 116 | Add documentation section about SQLite extensions | simonw 9599 | closed | 0 | 1 | 2017-11-17T14:36:30Z | 2018-05-28T17:23:42Z | 2018-05-28T17:23:41Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/116/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
275048699 | MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1 | 118 | Foreign key information on row and table pages | simonw 9599 | closed | 0 | 0 | 2017-11-18T03:13:27Z | 2017-11-18T03:15:57Z | 2017-11-18T03:15:50Z | OWNER | simonw/datasette/pulls/118 | datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/118/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||||
275082158 | MDU6SXNzdWUyNzUwODIxNTg= | 119 | Build an "export this data to google sheets" plugin | simonw 9599 | closed | 0 | 1 | 2017-11-18T14:14:51Z | 2020-06-04T18:46:40Z | 2020-06-04T18:46:39Z | OWNER | Inspired by https://github.com/kren1/tosheets It should be a plug-in because I'd like to keep all interactions with proprietary / non-open-source software encapsulated in plugins rather than shipped as part of core. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/119/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275087397 | MDU6SXNzdWUyNzUwODczOTc= | 120 | Plugin that adds an authentication layer of some sort | simonw 9599 | closed | 0 | 4 | 2017-11-18T15:39:13Z | 2020-03-16T18:48:06Z | 2020-03-16T18:48:06Z | OWNER | Would allow people who want to host private data to do so. .sh |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/120/reactions", "total_count": 7, "+1": 5, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 2, "rocket": 0, "eyes": 0 } |
completed | ||||||
275089535 | MDU6SXNzdWUyNzUwODk1MzU= | 121 | ?_json=foo&_json=bar query string argument | simonw 9599 | closed | 0 | 4 | 2017-11-18T16:09:55Z | 2018-05-31T13:48:12Z | 2018-05-28T18:11:51Z | OWNER | Causes the specified columns in the output to be treated as JSON, and returned deserialized in the .json or .jsono response. This will be particularly powerful when combined with https://sqlite.org/json1.html |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/121/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275092453 | MDU6SXNzdWUyNzUwOTI0NTM= | 122 | Redesign JSON output, ditch jsono, offer variants controlled by parameter instead | simonw 9599 | closed | 0 | 5 | 2017-11-18T16:52:28Z | 2018-04-08T14:54:09Z | 2018-04-08T14:54:09Z | OWNER | I want to support three variants for the rows output:
I also want to make the various bits of metadata opt-in - so you don't get the SQL statement unless you ask for it. These output options should be controlled by query string arguments. I will set the .jsono URL to redirect to .json with the corresponding options. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/122/reactions", "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275125805 | MDU6SXNzdWUyNzUxMjU4MDU= | 124 | Option to open readonly but not immutable | simonw 9599 | closed | 0 | 5 | 2017-11-19T02:11:03Z | 2019-06-24T06:43:46Z | 2019-06-24T06:43:46Z | OWNER | Immutable assumes no other process can modify the file. An option to open reqdonly instead would enable other processes to update the file in place. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/124/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275135393 | MDU6SXNzdWUyNzUxMzUzOTM= | 125 | Plot rows on a map with Leaflet and Leaflet.markercluster | simonw 9599 | closed | 0 | 2 | 2017-11-19T06:05:05Z | 2018-04-26T15:14:31Z | 2018-04-26T15:14:31Z | OWNER | https://github.com/Leaflet/Leaflet.markercluster would allow us to paginate-load in an enormous set of rows with latitude/longitude points, e.g. https://australian-dunnies.now.sh/ Here's a demo of it loading 50,000 markers: https://leaflet.github.io/Leaflet.markercluster/example/marker-clustering-realworld.50000.html - and it looks like it's easy to support progress bars for if we were iteratively loading 1,000 markers at a time using datasette pagination. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/125/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275164558 | MDU6SXNzdWUyNzUxNjQ1NTg= | 129 | Hide FTS-created tables by default on the database index page | simonw 9599 | closed | 0 | 2 | 2017-11-19T14:50:42Z | 2017-11-22T20:22:02Z | 2017-11-22T20:19:04Z | OWNER | SQLite databases that use FTS include a number of automatically generated tables, e.g.: https://sf-trees-search.now.sh/sf-trees-search-a899b92 Of these, only the We can detect which tables are FTS tables by first finding the virtual tables:
Then parsing the above to figure out which ones are USING FTS? - then assume that any table which starts with that
We won't hide these completely - instead, we'll default the database index view to not showing them with a message that says "5 hidden tables" and support ?_hidden=1 to display them. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/129/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275166078 | MDU6SXNzdWUyNzUxNjYwNzg= | 130 | Rename "datasette build" to "datasette inspect" | simonw 9599 | closed | 0 | 0 | 2017-11-19T15:08:02Z | 2017-12-07T16:57:58Z | 2017-12-07T16:57:58Z | OWNER | This command introspects the databases and writes out a JSON summary. I think I'd like to use Since the internal method that does this is called |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/130/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275166669 | MDU6SXNzdWUyNzUxNjY2Njk= | 131 | UI support for running FTS searches | simonw 9599 | closed | 0 | 3 | 2017-11-19T15:16:20Z | 2017-11-19T17:18:05Z | 2017-11-19T17:00:12Z | OWNER | Here's an example query that searches all FTS indexed columns in a table: https://sf-trees-search.now.sh/sf-trees-search-a899b92?sql=select+*+from+Street_Tree_List+where+rowid+in+%28select+rowid+from+Street_Tree_List_fts+where+Street_Tree_List_fts+match+%27grove+london+dpw%27%29%0D%0A And here's a query that searches a specific column: https://sf-trees-search.now.sh/sf-trees-search-a899b92?sql=select+*+from+Street_Tree_List+where+rowid+in+%28select+rowid+from+Street_Tree_List_fts+where+qSpecies+match+%27london%27%29%0D%0A If we detect that a table has FTS enabled (which we can do by looking for it as a content table reference in another FTS table's create definition) we should add a search box to the table page which constructs this query - maybe using <s>To support search against specified columns, we can do
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/131/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275228834 | MDU6SXNzdWUyNzUyMjg4MzQ= | 136 | "Reformat SQL" button next to SQL editor textarea | simonw 9599 | closed | 0 | 0 | 2017-11-20T03:42:19Z | 2019-10-14T03:46:13Z | 2019-10-14T03:46:13Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/136/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
275476839 | MDU6SXNzdWUyNzU0NzY4Mzk= | 138 | Per-database and per-table metadata, probably using data-package | simonw 9599 | closed | 0 | 1 | 2017-11-20T19:50:10Z | 2017-12-10T03:08:36Z | 2017-12-10T03:08:26Z | OWNER | Ability to annotate databases and tables with extra metadata describing their purpose, providing source and licensing information and describing individual columns. http://frictionlessdata.io/specs/data-package/ looks like a great format for this, see #105 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/138/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275493851 | MDU6SXNzdWUyNzU0OTM4NTE= | 139 | Build a visualization plugin for Vega | simonw 9599 | closed | 0 | 2 | 2017-11-20T20:47:41Z | 2018-07-10T17:48:18Z | 2018-07-10T17:48:18Z | OWNER | https://vega.github.io/vega/examples/population-pyramid/ for example looks pretty easy to hook up to Datasette. Depends on #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/139/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275917760 | MDU6SXNzdWUyNzU5MTc3NjA= | 142 | Show extra instructions with the interrupted | simonw 9599 | closed | 0 | 3 | 2017-11-22T01:44:29Z | 2018-05-28T21:25:06Z | 2018-05-28T21:24:35Z | OWNER | When you are using Datasette locally for ad-hoc analysis it can be frustrating to hit the time limit. If you start it with the correct command line arguments you can disable that time limit. So how about we tell you how to do that anytime you hit the interrupted error provided you are accessing it from localhost. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/142/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
275939188 | MDU6SXNzdWUyNzU5MzkxODg= | 143 | Mechanism for "suggested visualizations" | simonw 9599 | closed | 0 | 1 | 2017-11-22T04:10:25Z | 2018-07-10T17:48:34Z | 2018-07-10T17:48:34Z | OWNER | Each visualization should have a way of deciding if it might be appropriate for the current view of data. We can then offer a "suggested visualizations" prompt which shows previews. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/143/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
276192732 | MDExOlB1bGxSZXF1ZXN0MTU0MjQ2ODE2 | 145 | Fix pytest version conflict | simonw 9599 | closed | 0 | 0 | 2017-11-22T20:15:34Z | 2017-11-22T20:17:54Z | 2017-11-22T20:17:52Z | OWNER | simonw/datasette/pulls/145 | https://travis-ci.org/simonw/datasette/jobs/305929426
|
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/145/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
276455748 | MDU6SXNzdWUyNzY0NTU3NDg= | 146 | datasette publish gcloud | simonw 9599 | closed | 0 | 2 | 2017-11-23T18:55:03Z | 2019-06-24T06:48:20Z | 2019-06-24T06:48:20Z | OWNER | See also #103 It looks like you can start a Google Cloud VM with a "docker container" option - and the Google Cloud Registry is easy to push containers to. So it would be feasible to have https://cloud.google.com/container-registry/docs/pushing-and-pulling |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/146/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
276704327 | MDU6SXNzdWUyNzY3MDQzMjc= | 150 | _group_count= feature improvements | simonw 9599 | closed | 0 | 3 | 2017-11-24T22:06:18Z | 2018-05-28T16:41:28Z | 2018-05-28T16:41:28Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/150/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
276718605 | MDU6SXNzdWUyNzY3MTg2MDU= | 151 | Set up a pattern portfolio | simonw 9599 | closed | 0 | 2 | 2017-11-25T02:09:49Z | 2020-07-02T00:13:24Z | 2020-05-03T03:13:16Z | OWNER | https://www.slideshare.net/nataliedowne/practical-maintainable-css/75 This will be a single page that demonstrates all of the different CSS styles and classes available to Datasette. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/151/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
279547886 | MDU6SXNzdWUyNzk1NDc4ODY= | 163 | Document the querystring argument for setting a different time limit | simonw 9599 | closed | 0 | 2 | 2017-12-05T22:05:08Z | 2021-03-23T02:44:33Z | 2017-12-06T15:06:57Z | OWNER | http://datasette.readthedocs.io/en/latest/sql_queries.html#query-limits Need to explain why this is useful too. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/163/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
280662866 | MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx | 168 | Upgrade to Sanic 0.7.0 | simonw 9599 | closed | 0 | 1 | 2017-12-09T01:25:08Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | OWNER | simonw/datasette/pulls/168 | datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/168/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||||
280896290 | MDU6SXNzdWUyODA4OTYyOTA= | 172 | Show size of .db file next to download link | simonw 9599 | closed | 0 | 1 | 2017-12-11T05:12:46Z | 2019-02-06T05:09:06Z | 2019-02-06T05:00:36Z | OWNER | Size in bytes should be calculated by datasette inspect. Template should display it in KB or MB or GB |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/172/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
281197863 | MDU6SXNzdWUyODExOTc4NjM= | 174 | License/Source in footer should inherit from top level | simonw 9599 | closed | 0 | 1 | 2017-12-11T23:01:35Z | 2018-08-11T17:46:51Z | 2018-08-11T17:46:51Z | OWNER | The footer on https://vice-police-shootings.now.sh/vice-bc7c892/ViceNews_FullOISData does not show license and source information... but that Datasette has that information, it's just defined at the top level: https://vice-police-shootings.now.sh/ The footer for a row/table page should fall back on information for the database, and if there is none for the database it should fall back on the top-level metadata instead. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/174/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
309471814 | MDU6SXNzdWUzMDk0NzE4MTQ= | 189 | Ability to sort (and paginate) by column | simonw 9599 | closed | 0 | simonw 9599 | 31 | 2018-03-28T18:04:51Z | 2018-04-15T18:54:22Z | 2018-04-09T05:16:02Z | OWNER | As requested in https://github.com/simonw/datasette/issues/185#issuecomment-376614973 I've previously avoided this for performance reasons: sort-by-column on a column without an index is likely to perform badly for hundreds of thousands of rows. That's not a good enough reason to avoid the feature entirely though. A few options:
We already have the mechanism in place to cut off SQL queries that take more than X seconds, so if someone DOES try to sort by a column that's too expensive it won't actually hurt anything - but it would be nice to not show people a "sort" option which is guaranteed to throw a timeout error. The vast majority of datasette usage that I've seen so far is on smaller datasets where the performance penalties of sort-by-column are extremely unlikely to show up. Still left to do:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/189/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
309558826 | MDU6SXNzdWUzMDk1NTg4MjY= | 190 | Keyset pagination doesn't work correctly for compound primary keys | simonw 9599 | closed | 0 | 7 | 2018-03-28T22:45:06Z | 2018-03-30T06:31:15Z | 2018-03-30T06:26:28Z | OWNER | Consider https://datasette-issue-190-compound-pks.now.sh/compound-pks-9aafe8f/compound_primary_key The next= link is to But that page starts with: The next key in the sequence should be |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/190/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
310533258 | MDU6SXNzdWUzMTA1MzMyNTg= | 191 | Figure out how to bundle a more up-to-date SQLite | simonw 9599 | closed | 0 | 6 | 2018-04-02T16:33:25Z | 2018-07-10T17:46:13Z | 2018-07-10T17:46:13Z | OWNER | The version of SQLite that ships with Python 3 is a bit limited - it doesn't support row values for example https://www.sqlite.org/rowvalue.html Figure out how to bundle a more recent SQLite engine with datasette. We need to figure out two cases:
I want it working on Mac OS X too because I don't want to force Docker as a dependency for anyone who just want to hack around with Datasette a little and run the test suite. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/191/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
310850458 | MDExOlB1bGxSZXF1ZXN0MTc5MTA4OTYx | 192 | New ?_shape=objects/object/lists param for JSON API | simonw 9599 | closed | 0 | 0 | 2018-04-03T14:02:58Z | 2018-04-03T14:53:00Z | 2018-04-03T14:52:55Z | OWNER | simonw/datasette/pulls/192 | Refs #122 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/192/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
310882100 | MDU6SXNzdWUzMTA4ODIxMDA= | 193 | Cleaner mechanism for handling custom errors | simonw 9599 | closed | 0 | 3 | 2018-04-03T15:19:13Z | 2018-04-13T18:18:59Z | 2018-04-13T18:18:59Z | OWNER | This code is pretty messy: Instead, it would be nice if I could raise an exception that would be converted into the appropriate JSON or HTML error message, with a corresponding HTTP code. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/193/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
312312125 | MDU6SXNzdWUzMTIzMTIxMjU= | 194 | Rename table_rows and filtered_table_rows to have _count suffix | simonw 9599 | closed | 0 | 2 | 2018-04-08T14:53:37Z | 2018-04-09T05:25:22Z | 2018-04-09T05:25:22Z | OWNER | These fields represent counts of items:
But the names make it sound like they might be arrays full of rows. Adding a
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/194/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
312313496 | MDU6SXNzdWUzMTIzMTM0OTY= | 195 | Run pks_for_table in inspect, executing once at build time rather than constantly | simonw 9599 | closed | 0 | 3 | 2018-04-08T15:12:40Z | 2018-04-10T00:54:43Z | 2018-04-10T00:54:43Z | OWNER | Right now several Datasette views call the It would be faster and more efficient to execute this query for each table as part of the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/195/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
312355154 | MDExOlB1bGxSZXF1ZXN0MTgwMTg4Mzk3 | 196 | _sort= and _sort_desc= parameters to table view | simonw 9599 | closed | 0 | 0 | 2018-04-09T00:07:21Z | 2018-04-09T05:10:29Z | 2018-04-09T05:10:23Z | OWNER | simonw/datasette/pulls/196 | See #189 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/196/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
312620566 | MDU6SXNzdWUzMTI2MjA1NjY= | 199 | Ability to apply sort on mobile in portrait mode | simonw 9599 | closed | 0 | 4 | 2018-04-09T17:35:04Z | 2018-04-10T00:37:53Z | 2018-04-10T00:34:38Z | OWNER | Missed this in #189... on mobile in portrait mode we hide the column headers, which means you can't click them to sort! You can sort in landscape mode at least. Need to come up with an alternative sort UI for portrait on mobile. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/199/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
313512748 | MDU6SXNzdWUzMTM1MTI3NDg= | 201 | Support explain select / explain query plan select | simonw 9599 | closed | 0 | 1 | 2018-04-11T22:41:26Z | 2018-04-13T21:17:14Z | 2018-04-12T21:32:52Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/201/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
314469126 | MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2 | 210 | Start of the plugin system, based on pluggy | simonw 9599 | closed | 0 | 0 | 2018-04-16T00:51:30Z | 2018-04-16T00:56:16Z | 2018-04-16T00:56:16Z | OWNER | simonw/datasette/pulls/210 | Refs #14 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/210/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
314471743 | MDU6SXNzdWUzMTQ0NzE3NDM= | 211 | Load plugins from a `--plugins-dir=plugins/` directory | simonw 9599 | closed | 0 | 6 | 2018-04-16T01:17:43Z | 2018-04-16T05:22:02Z | 2018-04-16T05:22:02Z | OWNER | In #14 and 33c7c53ff87c2 I've added working support for setuptools entry_points plugins. These can be installed from PyPI using I imagine some projects will benefit from being able to add plugins without first publishing them to PyPI. Datasette already supports loading custom templates like so:
I propose an additional option,
This will also need to be supported by |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/211/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
314504812 | MDExOlB1bGxSZXF1ZXN0MTgxNzU1MjIw | 212 | New --plugins-dir=plugins/ option | simonw 9599 | closed | 0 | 0 | 2018-04-16T05:19:28Z | 2018-04-16T05:22:18Z | 2018-04-16T05:22:01Z | OWNER | simonw/datasette/pulls/212 | Refs #211 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/212/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
314506033 | MDU6SXNzdWUzMTQ1MDYwMzM= | 213 | Documentation for plugins system | simonw 9599 | closed | 0 | 0 | 2018-04-16T05:27:07Z | 2018-04-16T15:12:48Z | 2018-04-16T15:12:48Z | OWNER | Documentation for #14 - how to write plugins, how to ship plugins to PyPI and how to use the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/213/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
314506446 | MDU6SXNzdWUzMTQ1MDY0NDY= | 214 | Ability for plugins to define extra JavaScript and CSS | simonw 9599 | closed | 0 | 6 | 2018-04-16T05:29:34Z | 2020-09-30T20:36:11Z | 2018-04-18T03:13:03Z | OWNER | This can hook in to the existing The plugins should be able to bundle their own assets though, so it will also have to integrate with the Refs #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/214/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
314725342 | MDU6SXNzdWUzMTQ3MjUzNDI= | 217 | Plugin support for datasette publish | simonw 9599 | closed | 0 | 1 | 2018-04-16T16:17:14Z | 2018-07-26T05:33:39Z | 2018-07-26T05:16:00Z | OWNER | It should be possible to support additional deployment options by writing a plugin (see #59). As part of this, rewrite the Heroku and Now publishers to be implemented as plugins (they will still ship with datasette by default). Maybe Refs #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/217/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
314847571 | MDU6SXNzdWUzMTQ4NDc1NzE= | 220 | Investigate syntactic sugar for plugins | simonw 9599 | closed | 0 | 2 | 2018-04-16T23:01:39Z | 2020-06-11T21:50:06Z | 2020-06-11T21:49:55Z | OWNER | Suggested by @andrewhayward on Twitter: https://twitter.com/arhayward/status/986015118965268480?s=21
``` @sql_function random_integer(a,b): return random.randint(a,b) @template_filter uppercase(str): return str.upper() ``` Maybe Would have to work out how to get this to play well with pluggy |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/220/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
315142414 | MDU6SXNzdWUzMTUxNDI0MTQ= | 221 | Allow plugins to add new cli sub commands | simonw 9599 | closed | 0 | 3 | 2018-04-17T16:40:13Z | 2021-01-04T20:12:14Z | 2021-01-04T20:12:14Z | OWNER | I could then test this out by having https://github.com/simonw/csvs-to-sqlite register itself as a plugin |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/221/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
315316214 | MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz | 222 | Fix for plugins in Python 3.5 | simonw 9599 | closed | 0 | 0 | 2018-04-18T03:21:01Z | 2018-04-18T04:26:50Z | 2018-04-18T03:24:21Z | OWNER | simonw/datasette/pulls/222 | datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/222/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||||
315327860 | MDU6SXNzdWUzMTUzMjc4NjA= | 223 | datasette publish --install=name-of-plugin | simonw 9599 | closed | 0 | 3 | 2018-04-18T04:33:59Z | 2018-04-18T14:56:17Z | 2018-04-18T14:56:17Z | OWNER | Mechanism for causing datasette publish and datasette package to install one or more additional plugins using |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/223/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
315517578 | MDU6SXNzdWUzMTU1MTc1Nzg= | 224 | Ability for plugins to bundle templates | simonw 9599 | closed | 0 | 1 | 2018-04-18T14:57:53Z | 2018-04-19T05:50:36Z | 2018-04-19T05:50:36Z | OWNER | Plugins should be able to bundle templates. The Datasette template loader should then consult those plugins first when loading a template. Jinja2 has a Refs #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/224/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
315548495 | MDU6SXNzdWUzMTU1NDg0OTU= | 225 | /-/(inspect|metadata|plugins)(.json)? introspection | simonw 9599 | closed | 0 | 0 | 2018-04-18T16:14:58Z | 2018-04-19T05:25:33Z | 2018-04-19T05:25:33Z | OWNER | 3 pages (and accompanying .json endpoints) for viewing:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/225/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
315738696 | MDU6SXNzdWUzMTU3Mzg2OTY= | 226 | Unit tests for installable plugins | simonw 9599 | closed | 0 | 2 | 2018-04-19T06:05:32Z | 2020-11-24T19:52:51Z | 2020-11-24T19:52:46Z | OWNER | I'd like more thorough unit test coverage of the plugins mechanism - in particular for installable plugins. I think I can do this while still having the code live in the same repo, by creating a subdirectory in tests/example_plugin with its own setup.py and then running I imagine I will need to bump the version number every time I change the plugin in case someone runs the test again in the same virtual environment. If that doesn't work I can instead ship a datasette-plugins-tests two to PyPI and add that as a tests_require dependency. Refs #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/226/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
315960272 | MDU6SXNzdWUzMTU5NjAyNzI= | 227 | prepare_context() plugin hook | simonw 9599 | closed | 0 | 8 | 2018-04-19T16:55:26Z | 2020-03-24T22:19:54Z | 2020-03-24T22:19:54Z | OWNER | This would be called with the context dictionary before each template is rendered. It would have the opportunity to modify that context. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/227/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
316031566 | MDU6SXNzdWUzMTYwMzE1NjY= | 228 | If spatialite detected, mark idx_XXX_Geometry tables as hidden | simonw 9599 | closed | 0 | 1 | 2018-04-19T20:37:24Z | 2018-04-26T03:25:39Z | 2018-04-26T03:25:39Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/228/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
316123256 | MDU6SXNzdWUzMTYxMjMyNTY= | 229 | Table view should support ?_size=400 parameter | simonw 9599 | closed | 0 | 1 | 2018-04-20T04:23:18Z | 2018-04-26T04:49:46Z | 2018-04-26T04:48:32Z | OWNER | Allows callers to request more rows at once. The limit will still be |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/229/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
316128955 | MDU6SXNzdWUzMTYxMjg5NTU= | 230 | Setting page size AND max returned rows to 1000 doesn't seem to work | simonw 9599 | closed | 0 | 1 | 2018-04-20T05:05:11Z | 2018-04-26T04:04:25Z | 2018-04-26T04:04:25Z | OWNER | It appears that if the two settings are the same Datasette fails to return any results, probably because of the trick where we try to fetch 1001 rows so we know if there's a next page. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/230/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
316323336 | MDU6SXNzdWUzMTYzMjMzMzY= | 231 | metadata.json support for plugin configuration options | simonw 9599 | closed | 0 | 4 | 2018-04-20T15:58:47Z | 2019-05-13T18:56:21Z | 2019-05-13T18:56:21Z | OWNER | My datasette-cluster-map plugin currently works by detecting One way to do this could be to support optional plugin configuration as part of
These settings should be supported at the root level or at the individual database or table level. They could also be exposed in the https://datasette-cluster-map-demo.now.sh/-/plugins debug tool. Refs #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/231/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
316444720 | MDU6SXNzdWUzMTY0NDQ3MjA= | 233 | Option to expose expanded foreign keys in JSON/CSV | simonw 9599 | closed | 0 | 11 | 2018-04-21T00:18:25Z | 2018-06-16T22:26:21Z | 2018-06-16T22:20:14Z | OWNER | https://datasette-cluster-map-demo.datasettes.com/sf-trees-02c8ef1/Street_Tree_List?qCareAssistant=1 It would be nice if the info bubbles there could expose more than just the IDs, and if the title showed the expanded name of the selected qCareAssistant. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/233/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
316526433 | MDU6SXNzdWUzMTY1MjY0MzM= | 234 | label_column option in metadata.json | simonw 9599 | closed | 0 | 3 | 2018-04-21T21:19:08Z | 2018-04-22T20:47:12Z | 2018-04-22T20:47:12Z | OWNER | Currently the column used for displaying a foreign key relationship is automatically detected by This doesn't work for tables with more than two columns. Let's allow the table section in |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/234/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
317475156 | MDU6SXNzdWUzMTc0NzUxNTY= | 237 | Support for ?_search_colname=blah searches | simonw 9599 | closed | 0 | 2 | 2018-04-25T04:29:53Z | 2018-05-05T22:56:42Z | 2018-05-05T22:33:23Z | OWNER | Right now the SQLite FTS also supports searches within a specified field, for example:
The This should also be able to support columns with spaces and special characters in their names, something like this:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/237/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
317714268 | MDU6SXNzdWUzMTc3MTQyNjg= | 238 | External metadata.json | simonw 9599 | closed | 0 | 3 | 2018-04-25T17:02:30Z | 2019-06-24T06:52:55Z | 2019-06-24T06:52:45Z | OWNER | A frustration I'm having with https://register-of-members-interests.datasettes.com/ is that I keep coming up with new canned queries but I don't want to redeploy the whole thing just to add them to Maybe Datasette could optionally take a |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/238/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
317760361 | MDU6SXNzdWUzMTc3NjAzNjE= | 239 | Support for hidden tables in metadata.json | simonw 9599 | closed | 0 | 2 | 2018-04-25T19:21:17Z | 2018-04-26T03:45:12Z | 2018-04-26T03:43:10Z | OWNER | Since we already have a hidden feature, let's expose it more to our users |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/239/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
317900587 | MDU6SXNzdWUzMTc5MDA1ODc= | 240 | FTS table detection should be part of .inspect() | simonw 9599 | closed | 0 | 0 | 2018-04-26T06:58:10Z | 2018-04-29T00:04:44Z | 2018-04-29T00:04:44Z | OWNER | The code that detects if specific tables have a corresponding FTS column is currently called from TableView - it should instead be handled as part of Current code: |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/240/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
318692953 | MDU6SXNzdWUzMTg2OTI5NTM= | 242 | Rename ?_sql_time_limit_ms= to ?_timelimit= | simonw 9599 | closed | 0 | 0 | 2018-04-29T06:11:35Z | 2018-05-02T00:20:42Z | 2018-05-02T00:20:42Z | OWNER | It's a bit of a mouthful at the moment. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/242/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
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]);