issue_comments
10,495 rows sorted by body
This data as json, CSV (advanced)
issue >30
- ?_extra= support (draft) 41
- Redesign default .json format 39
- JavaScript plugin hooks mechanism similar to pluggy 37
- Show column metadata plus links for foreign keys on arbitrary query results 37
- Rethink how .ext formats (v.s. ?_format=) works before 1.0 37
- Port Datasette to ASGI 36
- Authentication (and permissions) as a core concept 36
- Updated Dockerfile with SpatiaLite version 5.0 34
- Complete refactor of TableView and table.html template 33
- Maintain an in-memory SQLite table of connected databases and their tables 31
- Upgrade to CodeMirror 6, add SQL autocomplete 31
- invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 31
- Server hang on parallel execution of queries to named in-memory databases 29
- Research: demonstrate if parallel SQL queries are worthwhile 28
- await datasette.client.get(path) mechanism for executing internal requests 26
- Port as many tests as possible to async def tests against ds_client 26
- Add ?_extra= mechanism for requesting extra properties in JSON 24
- New pattern for views that return either JSON or HTML, available for plugins 24
- Deploy a live instance of demos/apache-proxy 24
- Ability to sort (and paginate) by column 22
- base_url configuration setting 22
- Ability for a canned query to write to the database 22
- Optimize all those calls to index_list and foreign_key_list 22
- DeprecationWarning: pkg_resources is deprecated as an API 22
- Stream all results for arbitrary SQL and canned queries 21
- Redesign register_output_renderer callback 21
- Proof of concept for Datasette on AWS Lambda with EFS 21
- Export to CSV 20
- Support cross-database joins 20
- link_or_copy_directory() error - Invalid cross-device link 20
- …
id | html_url | issue_url | node_id | user | created_at | updated_at | author_association | body ▼ | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1000461275 | https://github.com/simonw/datasette/issues/1577#issuecomment-1000461275 | https://api.github.com/repos/simonw/datasette/issues/1577 | IC_kwDOBm6k_c47odPb | simonw 9599 | 2021-12-23T18:18:11Z | 2021-12-23T18:18:11Z | OWNER | From the Twitter thread, there are still a decent amount of LTS Linux releases out there that are stuck on pre-3.7 Python. Though many of those are 3.5 and Datasette dropped support for 3.5 in November 2019: cf7776d36fbacefa874cbd6e5fcdc9fff7661203 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Drop support for Python 3.6 1087913724 | |
603547065 | https://github.com/simonw/datasette/issues/701#issuecomment-603547065 | https://api.github.com/repos/simonw/datasette/issues/701 | MDEyOklzc3VlQ29tbWVudDYwMzU0NzA2NQ== | simonw 9599 | 2020-03-24T22:56:47Z | 2020-03-24T22:56:47Z | OWNER | From the comments on that css-tricks article, this appears to work:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Search box CSS doesn't look great on OS X Safari 583970196 | |
787190562 | https://github.com/simonw/sqlite-utils/issues/242#issuecomment-787190562 | https://api.github.com/repos/simonw/sqlite-utils/issues/242 | MDEyOklzc3VlQ29tbWVudDc4NzE5MDU2Mg== | simonw 9599 | 2021-02-27T22:04:00Z | 2021-02-27T22:04:00Z | OWNER | From the poster here: https://github.com/sethmlarson/pycon-async-sync-poster/blob/master/poster.pdf |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Async support 817989436 | |
859898736 | https://github.com/simonw/sqlite-utils/issues/268#issuecomment-859898736 | https://api.github.com/repos/simonw/sqlite-utils/issues/268 | MDEyOklzc3VlQ29tbWVudDg1OTg5ODczNg== | simonw 9599 | 2021-06-11T20:37:44Z | 2021-06-11T20:37:44Z | OWNER | From the prototype:
I don't think this matters. I see this tool as more for introspection than for recreating table structures. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.schema property and sqlite-utils schema command 919181559 | |
1292654522 | https://github.com/simonw/datasette/issues/1849#issuecomment-1292654522 | https://api.github.com/repos/simonw/datasette/issues/1849 | IC_kwDOBm6k_c5NDFe6 | simonw 9599 | 2022-10-26T21:08:20Z | 2022-10-26T21:08:20Z | OWNER | From the stack trace in Sentry: So this happened because a custom plugin tried to render |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
NoneType' object has no attribute 'actor' 1420174670 | |
997081673 | https://github.com/simonw/datasette/pull/1562#issuecomment-997081673 | https://api.github.com/repos/simonw/datasette/issues/1562 | IC_kwDOBm6k_c47bkJJ | simonw 9599 | 2021-12-17T23:06:38Z | 2021-12-17T23:06:38Z | OWNER | From this diff between It looks like the only change relevant to compatibility is |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update janus requirement from <0.8,>=0.6.2 to >=0.6.2,<1.1 1083246400 | |
974327812 | https://github.com/simonw/datasette/issues/1521#issuecomment-974327812 | https://api.github.com/repos/simonw/datasette/issues/1521 | IC_kwDOBm6k_c46ExAE | simonw 9599 | 2021-11-19T18:58:49Z | 2021-11-19T18:59:55Z | OWNER | From this example: https://github.com/tigelane/dockerfiles/blob/06cff2ac8cdc920ebd64f50965115eaa3d0afb84/Alpine-Apache2/Dockerfile#L25-L31 it looks like running ``` APACHE - AlpineRUN apk --update add apache2 php5-apache2 && \ #apk add openrc --no-cache && \ rm -rf /var/cache/apk/* && \ sed -i 's/#ServerName www.example.com:80/ServerName localhost/' /etc/apache2/httpd.conf && \ mkdir -p /run/apache2/ Upload our files from folder "dist".COPY dist /var/www/localhost/htdocs Manually set up the apache environment variablesENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 ENV APACHE_PID_FILE /var/run/apache2.pid Execute apache2 on runEXPOSE 80 ENTRYPOINT ["httpd"] CMD ["-D", "FOREGROUND"] ``` I think I'll create my own separate copy and modify that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker configuration for exercising Datasette behind Apache mod_proxy 1058815557 | |
1538801855 | https://github.com/simonw/sqlite-utils/issues/538#issuecomment-1538801855 | https://api.github.com/repos/simonw/sqlite-utils/issues/538 | IC_kwDOCGYnMM5buEC_ | simonw 9599 | 2023-05-08T18:00:17Z | 2023-05-08T18:00:17Z | OWNER | From time in the debugger, after creating the table it ends up doing this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.upsert_all` fails to write rows when `not_null` is present 1695428235 | |
626396379 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626396379 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5NjM3OQ== | RhetTbull 41546558 | 2020-05-10T22:01:48Z | 2020-05-10T22:01:48Z | CONTRIBUTOR | Frustrates me when package authors create a "drop in" replacement with the same import name...this kind of thing has bitten me more than once! Would've been nicer I think for bpylist2 to do "import bpylist2 as bpylist" |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990 | |
1722257328 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722257328 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mp4-w | simonw 9599 | 2023-09-16T15:47:32Z | 2023-09-16T15:47:32Z | OWNER | Frustrating that this warning doesn't show up in the Datasette test suite itself. It shows up in plugin test suites that run this test:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1246971764 | https://github.com/simonw/sqlite-utils/issues/488#issuecomment-1246971764 | https://api.github.com/repos/simonw/sqlite-utils/issues/488 | IC_kwDOCGYnMM5KU0d0 | simonw 9599 | 2022-09-14T15:52:14Z | 2022-09-14T15:52:14Z | OWNER | Frustratingly I think this counts as a backwards-incompatible change. Could have it be opt-in with a new option / method parameter, and then change it to the default if I release a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils transform` should set empty strings to null when converting text columns to integer/float 1373224657 | |
663143160 | https://github.com/dogsheep/twitter-to-sqlite/issues/48#issuecomment-663143160 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/48 | MDEyOklzc3VlQ29tbWVudDY2MzE0MzE2MA== | simonw 9599 | 2020-07-23T17:46:07Z | 2020-07-23T17:46:07Z | MEMBER | Frustratingly, these links don't work on PyPI: https://pypi.org/project/twitter-to-sqlite/ There's an issue about that here: https://github.com/pypa/readme_renderer/issues/169 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add a table of contents to the README 663976976 | |
880256058 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-880256058 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | MDEyOklzc3VlQ29tbWVudDg4MDI1NjA1OA== | simonw 9599 | 2021-07-14T22:40:01Z | 2021-07-14T22:40:47Z | OWNER | Full docs here: https://www.sqlite.org/draft/cli.html#csv One catch: how this works has changed in recent SQLite versions: https://www.sqlite.org/changes.html
The "skip" feature is particularly important to understand. https://www.sqlite.org/draft/cli.html#csv says:
But the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option for importing CSV data using the SQLite .import mechanism 944846776 | |
1683112857 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683112857 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUkOZ | simonw 9599 | 2023-08-17T23:33:58Z | 2023-08-17T23:33:58Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | ||
609905777 | https://github.com/simonw/datasette/issues/717#issuecomment-609905777 | https://api.github.com/repos/simonw/datasette/issues/717 | MDEyOklzc3VlQ29tbWVudDYwOTkwNTc3Nw== | simonw 9599 | 2020-04-06T16:41:04Z | 2020-04-06T16:43:05Z | OWNER | Full traceback from Zeit Now logs:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
See if I can get Datasette working on Zeit Now v2 594189527 | |
693788387 | https://github.com/dogsheep/github-to-sqlite/issues/50#issuecomment-693788387 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/50 | MDEyOklzc3VlQ29tbWVudDY5Mzc4ODM4Nw== | simonw 9599 | 2020-09-17T03:36:47Z | 2020-09-17T03:36:58Z | MEMBER | Fun demo of the
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Commands for making authenticated API calls 703218756 | |
749176936 | https://github.com/simonw/datasette/issues/1155#issuecomment-749176936 | https://api.github.com/repos/simonw/datasette/issues/1155 | MDEyOklzc3VlQ29tbWVudDc0OTE3NjkzNg== | simonw 9599 | 2020-12-21T20:18:15Z | 2020-12-21T20:18:15Z | OWNER | Fun query:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better internal database_name for _internal database 771216293 | |
695877627 | https://github.com/dogsheep/dogsheep-beta/issues/16#issuecomment-695877627 | https://api.github.com/repos/dogsheep/dogsheep-beta/issues/16 | MDEyOklzc3VlQ29tbWVudDY5NTg3NzYyNw== | simonw 9599 | 2020-09-21T02:42:29Z | 2020-09-21T02:42:29Z | MEMBER | Fun twist: assuming |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Timeline view 694493566 | |
393003340 | https://github.com/simonw/datasette/issues/265#issuecomment-393003340 | https://api.github.com/repos/simonw/datasette/issues/265 | MDEyOklzc3VlQ29tbWVudDM5MzAwMzM0MA== | simonw 9599 | 2018-05-30T01:44:22Z | 2018-05-30T01:44:22Z | OWNER | Funny you should mention that... I'm planning on doing that as part of the official Datasette website at some point soon. A Datasette instance that lists other Datasette instances feels pleasingly appropriate. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add links to example Datasette instances to appropiate places in docs 323677499 | |
701153822 | https://github.com/simonw/datasette/issues/981#issuecomment-701153822 | https://api.github.com/repos/simonw/datasette/issues/981 | MDEyOklzc3VlQ29tbWVudDcwMTE1MzgyMg== | simonw 9599 | 2020-09-30T04:47:10Z | 2020-09-30T04:47:10Z | OWNER | Future version could have expanding out nested side menus that let you do things like "calculate sum/avg for this column against this-other-column". |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Action menu for table columns 711627628 | |
342521344 | https://github.com/simonw/datasette/issues/47#issuecomment-342521344 | https://api.github.com/repos/simonw/datasette/issues/47 | MDEyOklzc3VlQ29tbWVudDM0MjUyMTM0NA== | simonw 9599 | 2017-11-07T15:37:45Z | 2017-11-07T15:37:45Z | OWNER | GDS Registries could be fun too: https://registers.cloudapps.digital/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Create neat example database 271831408 | |
1292654852 | https://github.com/simonw/datasette/issues/1849#issuecomment-1292654852 | https://api.github.com/repos/simonw/datasette/issues/1849 | IC_kwDOBm6k_c5NDFkE | simonw 9599 | 2022-10-26T21:08:44Z | 2022-10-26T21:08:44Z | OWNER | Generally though we should expect that people might try to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
NoneType' object has no attribute 'actor' 1420174670 | |
735995695 | https://github.com/simonw/datasette/issues/1116#issuecomment-735995695 | https://api.github.com/repos/simonw/datasette/issues/1116 | MDEyOklzc3VlQ29tbWVudDczNTk5NTY5NQ== | simonw 9599 | 2020-11-30T19:34:15Z | 2020-11-30T19:34:15Z | OWNER | Generated column support was added in SQLite 3.31.0, so any unit tests I write for this should use skipIf to only run on that version or later. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GENERATED column support 753668177 | |
1073448904 | https://github.com/simonw/sqlite-utils/issues/416#issuecomment-1073448904 | https://api.github.com/repos/simonw/sqlite-utils/issues/416 | IC_kwDOCGYnMM4_-4fI | simonw 9599 | 2022-03-21T03:28:12Z | 2022-03-21T03:30:37Z | OWNER | Generating a test database using a pattern from https://www.geekytidbits.com/date-range-table-sqlite/
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Options for how `r.parsedate()` should handle invalid dates 1173023272 | |
482638695 | https://github.com/simonw/datasette/issues/429#issuecomment-482638695 | https://api.github.com/repos/simonw/datasette/issues/429 | MDEyOklzc3VlQ29tbWVudDQ4MjYzODY5NQ== | simonw 9599 | 2019-04-12T16:29:25Z | 2019-04-13T01:14:17Z | OWNER | Getting a prototype working was hardly any code at all: http://127.0.0.1:8001/fixtures/facetable?_where=city_id+in+(select+id+from+facet_cities+where+name+like+%22%25an%25%22) ``` diff --git a/datasette/views/table.py b/datasette/views/table.py index b7c9a4b..7ca9572 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -295,6 +295,10 @@ class TableView(RowTableShared): filters = Filters(sorted(other_args.items()), units, ureg) where_clauses, params = filters.build_where_clauses(table)
Still needed:
I'm going to leave the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_where=sql-fragment parameter for table views 432636432 | |
748351350 | https://github.com/simonw/datasette/issues/1150#issuecomment-748351350 | https://api.github.com/repos/simonw/datasette/issues/1150 | MDEyOklzc3VlQ29tbWVudDc0ODM1MTM1MA== | simonw 9599 | 2020-12-18T22:32:13Z | 2020-12-18T22:32:13Z | OWNER | Getting all the tests to pass is tricky because this adds a whole extra database to Datasette - and there's various code that loops through |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Maintain an in-memory SQLite table of connected databases and their tables 770436876 | |
1480163485 | https://github.com/simonw/datasette/pull/1999#issuecomment-1480163485 | https://api.github.com/repos/simonw/datasette/issues/1999 | IC_kwDOBm6k_c5YOYCd | simonw 9599 | 2023-03-22T19:48:00Z | 2023-03-22T19:48:00Z | OWNER | Getting close now! Only 13 failures left, mostly relating to CSV.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_extra= support (draft) 1551694938 | |
1110279869 | https://github.com/simonw/datasette/issues/1723#issuecomment-1110279869 | https://api.github.com/repos/simonw/datasette/issues/1723 | IC_kwDOBm6k_c5CLYa9 | simonw 9599 | 2022-04-26T21:45:39Z | 2022-04-26T21:45:39Z | OWNER | Getting some nice traces out of this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research running SQL in table view in parallel using `asyncio.gather()` 1216508080 | |
1652723029 | https://github.com/simonw/datasette/issues/2112#issuecomment-1652723029 | https://api.github.com/repos/simonw/datasette/issues/2112 | IC_kwDOBm6k_c5igo1V | simonw 9599 | 2023-07-27T00:25:49Z | 2023-07-27T00:25:49Z | OWNER | Getting the query page working with all of the necessary HTML context variables is a slog. I uploaded
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Build HTML version of /content?sql=... 1822938661 | |
1155358637 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155358637 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E3V-t | simonw 9599 | 2022-06-14T15:31:34Z | 2022-06-14T15:31:34Z | OWNER | Getting this past
Which is legit here - we have a dictionary where one of the keys is |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
504697742 | https://github.com/simonw/datasette/issues/272#issuecomment-504697742 | https://api.github.com/repos/simonw/datasette/issues/272 | MDEyOklzc3VlQ29tbWVudDUwNDY5Nzc0Mg== | simonw 9599 | 2019-06-22T20:55:59Z | 2019-06-22T20:56:22Z | OWNER | Getting this to work with both Sanic AND ASGI at the same time (via the classes described previously with an I'm going to drop the compatibility path for a bit and see if I can make progress on a pure-ASGI port. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Port Datasette to ASGI 324188953 | |
671075764 | https://github.com/simonw/datasette/issues/918#issuecomment-671075764 | https://api.github.com/repos/simonw/datasette/issues/918 | MDEyOklzc3VlQ29tbWVudDY3MTA3NTc2NA== | simonw 9599 | 2020-08-09T16:56:48Z | 2020-08-09T16:56:48Z | OWNER | GitHub security advisory: https://github.com/simonw/datasette/security/advisories/GHSA-q6j3-c4wc-63vw |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Security issue: read-only canned queries leak CSRF token in URL 675724951 | |
696307922 | https://github.com/simonw/datasette/issues/971#issuecomment-696307922 | https://api.github.com/repos/simonw/datasette/issues/971 | MDEyOklzc3VlQ29tbWVudDY5NjMwNzkyMg== | simonw 9599 | 2020-09-21T18:59:52Z | 2020-09-21T19:00:02Z | OWNER | Given The experience of exploring |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support the dbstat table 705827457 | |
376981291 | https://github.com/simonw/datasette/issues/189#issuecomment-376981291 | https://api.github.com/repos/simonw/datasette/issues/189 | MDEyOklzc3VlQ29tbWVudDM3Njk4MTI5MQ== | simonw 9599 | 2018-03-28T18:06:08Z | 2018-03-28T18:06:08Z | OWNER | Given how unlikely it is that this will pose a real problem I think I like option 1: enable sort-by-column by default for all tables, then allow power users to instead switch to explicit enabling of the functionality in their |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to sort (and paginate) by column 309471814 | |
735485677 | https://github.com/dogsheep/github-to-sqlite/issues/53#issuecomment-735485677 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/53 | MDEyOklzc3VlQ29tbWVudDczNTQ4NTY3Nw== | simonw 9599 | 2020-11-30T00:36:09Z | 2020-11-30T00:36:09Z | MEMBER | Given rate limits (see #51) this command might be better implemented by running a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command for fetching file contents 753000405 | |
751947991 | https://github.com/simonw/datasette/issues/1160#issuecomment-751947991 | https://api.github.com/repos/simonw/datasette/issues/1160 | MDEyOklzc3VlQ29tbWVudDc1MTk0Nzk5MQ== | simonw 9599 | 2020-12-29T05:06:50Z | 2020-12-29T05:07:03Z | OWNER | Given the URL option could it be possible for plugins to "subscribe" to URLs that keep on streaming?
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette insert" command and plugin hook 775666296 | |
969449772 | https://github.com/simonw/datasette/issues/448#issuecomment-969449772 | https://api.github.com/repos/simonw/datasette/issues/448 | IC_kwDOBm6k_c45yKEs | simonw 9599 | 2021-11-15T23:48:37Z | 2021-11-15T23:48:37Z | OWNER | Given this query: https://json-view-facet-bug-demo-j7hipcg4aq-uc.a.run.app/russian-ads?sql=select%0D%0A++j.value+as+value%2C%0D%0A++count%28*%29+as+count%0D%0Afrom%0D%0A++%28%0D%0A++++select%0D%0A++++++id%2C%0D%0A++++++file%2C%0D%0A++++++clicks%2C%0D%0A++++++impressions%2C%0D%0A++++++text%2C%0D%0A++++++url%2C%0D%0A++++++spend_amount%2C%0D%0A++++++spend_currency%2C%0D%0A++++++created%2C%0D%0A++++++ended%2C%0D%0A++++++target_names%0D%0A++++from%0D%0A++++++ads_with_targets%0D%0A++++where%0D%0A++++++%3Ap0+in+%28%0D%0A++++++++select%0D%0A++++++++++value%0D%0A++++++++from%0D%0A++++++++++json_each%28%5Bads_with_targets%5D.%5Btarget_names%5D%29%0D%0A++++++%29%0D%0A++%29%0D%0A++join+json_each%28target_names%29+j%0D%0Agroup+by%0D%0A++j.value%0D%0Aorder+by%0D%0A++count+desc%2C%0D%0A++value%0D%0Alimit%0D%0A++31&p0=people_who_match%3Ainterests%3AAfrican-American+culture
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
_facet_array should work against views 440222719 | |
391754506 | https://github.com/simonw/datasette/issues/283#issuecomment-391754506 | https://api.github.com/repos/simonw/datasette/issues/283 | MDEyOklzc3VlQ29tbWVudDM5MTc1NDUwNg== | simonw 9599 | 2018-05-24T15:21:37Z | 2018-05-24T15:21:53Z | OWNER | Giving it Or maybe it should still have a content hash (to enable far-future cache expiry headers on query results) but the hash should be constructed out of all of the other database hashes concatenated together. That way the URLs would be Only downside: this would make it impossible to have a database file with the name How about |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support cross-database joins 325958506 | |
552275668 | https://github.com/simonw/datasette/pull/595#issuecomment-552275668 | https://api.github.com/repos/simonw/datasette/issues/595 | MDEyOklzc3VlQ29tbWVudDU1MjI3NTY2OA== | simonw 9599 | 2019-11-11T03:09:43Z | 2019-11-11T03:09:43Z | OWNER | Glitch has been upgraded to Python 3.7. I think I'm happy to drop 3.5 support now - users who want Python 3.5 can get it by installing |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bump uvicorn to 0.9.0 to be Python-3.8 friendly 506300941 | |
1672353428 | https://github.com/simonw/datasette/issues/2138#issuecomment-1672353428 | https://api.github.com/repos/simonw/datasette/issues/2138 | IC_kwDOBm6k_c5jrhaU | simonw 9599 | 2023-08-10T00:20:56Z | 2023-08-10T00:20:56Z | OWNER | Goal here is to customize the message displayed after a query has succeeded. e.g.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
on_success_message_sql option for writable canned queries 1844213115 | |
997249563 | https://github.com/simonw/datasette/issues/1569#issuecomment-997249563 | https://api.github.com/repos/simonw/datasette/issues/1569 | IC_kwDOBm6k_c47cNIb | simonw 9599 | 2021-12-18T18:21:23Z | 2021-12-18T18:21:23Z | OWNER | Goal here is to gain the ability to use https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.executescript |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.execute_write(..., executescript=True) parameter 1083895395 | |
636330023 | https://github.com/simonw/datasette/issues/519#issuecomment-636330023 | https://api.github.com/repos/simonw/datasette/issues/519 | MDEyOklzc3VlQ29tbWVudDYzNjMzMDAyMw== | simonw 9599 | 2020-05-30T13:19:24Z | 2020-05-30T13:19:24Z | OWNER | Goals for Datasette 1.0:
I think I'm very nearly there for the plugin API. The harder ones are JSON APIs and template authors. For JSON APIs: The default JSON just isn't right. I find myself using The template part is harder. I think I need to fully document the template variables for every view - and add protective unit tests that match that documentation. The CSS theme part is so hard it may not be possible. How do you guarantee stable HTML that won't break with custom CSS when you'll be adding new features during the 1.x release run? The pattern portfolio from #151 should hopefully help a lot there, but I still don't have a complete idea of what this entails or how feasible it is. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Decide what goes into Datasette 1.0 459590021 | |
1012546223 | https://github.com/simonw/datasette/issues/1466#issuecomment-1012546223 | https://api.github.com/repos/simonw/datasette/issues/1466 | IC_kwDOBm6k_c48Wjqv | simonw 9599 | 2022-01-13T21:54:51Z | 2022-01-13T21:54:51Z | OWNER | Going with this for the copy:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Datasette Desktop to installation documentation 991467558 | |
691379980 | https://github.com/simonw/datasette/issues/963#issuecomment-691379980 | https://api.github.com/repos/simonw/datasette/issues/963 | MDEyOklzc3VlQ29tbWVudDY5MTM3OTk4MA== | simonw 9599 | 2020-09-12T01:50:56Z | 2020-09-12T01:50:56Z | OWNER | Good bug - looks like a problem with the hidden form fields. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Currently selected array facets are not correctly persisted through hidden form fields 699947574 | |
1065477258 | https://github.com/simonw/sqlite-utils/issues/411#issuecomment-1065477258 | https://api.github.com/repos/simonw/sqlite-utils/issues/411 | IC_kwDOCGYnMM4_geSK | eyeseast 25778 | 2022-03-11T20:14:59Z | 2022-03-11T20:14:59Z | CONTRIBUTOR | Good call on adding this to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for generated columns 1160034488 | |
991754794 | https://github.com/simonw/datasette/issues/1549#issuecomment-991754794 | https://api.github.com/repos/simonw/datasette/issues/1549 | IC_kwDOBm6k_c47HPoq | simonw 9599 | 2021-12-11T19:16:33Z | 2021-12-11T19:16:33Z | OWNER | Good call! I'm doing a refactor #1518 right now which will hopefully bring the functionality of those two much closer - I'll make a note to consider this there too. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign CSV export to improve usability 1077620955 | |
1072833174 | https://github.com/simonw/sqlite-utils/issues/416#issuecomment-1072833174 | https://api.github.com/repos/simonw/sqlite-utils/issues/416 | IC_kwDOCGYnMM4_8iKW | simonw 9599 | 2022-03-18T21:34:06Z | 2022-03-18T21:34:06Z | OWNER | Good call-out: right now the It would be better if this was configurable by the user (and properly documented) - options could include "set null if date is invalid" and "leave the value as it is if invalid" in addition to throwing an error. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Options for how `r.parsedate()` should handle invalid dates 1173023272 | |
552131798 | https://github.com/dogsheep/twitter-to-sqlite/issues/30#issuecomment-552131798 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/30 | MDEyOklzc3VlQ29tbWVudDU1MjEzMTc5OA== | simonw 9599 | 2019-11-09T19:54:45Z | 2019-11-09T19:54:45Z | MEMBER | Good catch - not sure how that bug crept in. Removing line 116 looks like the right fix to me. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`followers` fails because `transform_user` is called twice 518739697 | |
769455370 | https://github.com/simonw/datasette/issues/1209#issuecomment-769455370 | https://api.github.com/repos/simonw/datasette/issues/1209 | MDEyOklzc3VlQ29tbWVudDc2OTQ1NTM3MA== | simonw 9599 | 2021-01-28T23:00:21Z | 2021-01-28T23:00:21Z | OWNER | Good catch on the workaround here. The root problem is that Is this a bug? I think it is - because the documented behaviour on https://docs.datasette.io/en/stable/internals.html#get-database-name is this:
Since the new behaviour differs from what was in the documentation I'm going to treat this as a bug and fix it. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
v0.54 500 error from sql query in custom template; code worked in v0.53; found a workaround 795367402 | |
708718475 | https://github.com/simonw/datasette/pull/1022#issuecomment-708718475 | https://api.github.com/repos/simonw/datasette/issues/1022 | MDEyOklzc3VlQ29tbWVudDcwODcxODQ3NQ== | simonw 9599 | 2020-10-14T23:46:38Z | 2020-10-14T23:46:38Z | OWNER | Good catch, thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fix table name in spatialite example command 721830990 | |
905097468 | https://github.com/simonw/datasette/pull/1447#issuecomment-905097468 | https://api.github.com/repos/simonw/datasette/issues/1447 | IC_kwDOBm6k_c418rD8 | simonw 9599 | 2021-08-25T01:28:53Z | 2021-08-25T01:28:53Z | OWNER | Good catch, thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Remove underscore from search mode parameter name 978614898 | |
925292384 | https://github.com/simonw/sqlite-utils/issues/328#issuecomment-925292384 | https://api.github.com/repos/simonw/sqlite-utils/issues/328 | IC_kwDOCGYnMM43Jtdg | simonw 9599 | 2021-09-22T20:09:53Z | 2021-09-22T20:09:53Z | OWNER | Good catch, thanks. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Invalid JSON output when no rows 1004613267 | |
1462921010 | https://github.com/simonw/datasette/pull/2034#issuecomment-1462921010 | https://api.github.com/repos/simonw/datasette/issues/2034 | IC_kwDOBm6k_c5XMmcy | simonw 9599 | 2023-03-09T22:34:29Z | 2023-03-09T22:34:29Z | OWNER | Good catch, thanks. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
remove an unused `app` var in cli.py 1613974869 | |
1319482791 | https://github.com/simonw/datasette/issues/1901#issuecomment-1319482791 | https://api.github.com/repos/simonw/datasette/issues/1901 | IC_kwDOBm6k_c5OpbWn | simonw 9599 | 2022-11-18T03:01:36Z | 2022-11-18T03:01:36Z | OWNER | Good catch. Looks like that bug was introduced by this change: https://github.com/simonw/datasette/commit/1a5e5f2aa951e5bd731067a49819efba68fbe8ef From: The search all plugin includes this code which interacts poorly with that refactor:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Some plugins show "home" breadcrumbs twice in the top left 1453813400 | |
522236053 | https://github.com/simonw/sqlite-utils/issues/54#issuecomment-522236053 | https://api.github.com/repos/simonw/sqlite-utils/issues/54 | MDEyOklzc3VlQ29tbWVudDUyMjIzNjA1Mw== | simonw 9599 | 2019-08-17T13:22:26Z | 2019-08-17T13:22:26Z | OWNER | Good catch: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to list views, and to access db["view_name"].rows / rows_where / etc 480961330 | |
623598224 | https://github.com/simonw/datasette/issues/752#issuecomment-623598224 | https://api.github.com/repos/simonw/datasette/issues/752 | MDEyOklzc3VlQ29tbWVudDYyMzU5ODIyNA== | simonw 9599 | 2020-05-04T17:28:11Z | 2020-05-04T17:28:20Z | OWNER | Good catch: it looks like we're not specifying the charset for those pages: ``` $ curl -i 'https://latest.datasette.io/404' HTTP/1.1 404 Not Found access-control-allow-origin: * content-type: text/html Date: Mon, 04 May 2020 16:23:25 GMT Server: Google Frontend Content-Length: 605 <html> <head> <title>Error 404</title> ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Non-utf8 encoding in exceptionhandlers and custom-pages 611835285 | |
1016637722 | https://github.com/simonw/datasette/issues/1601#issuecomment-1016637722 | https://api.github.com/repos/simonw/datasette/issues/1601 | IC_kwDOBm6k_c48mKka | simonw 9599 | 2022-01-19T16:25:07Z | 2022-01-19T16:25:07Z | OWNER | Good idea - though I'm nervous about accidentally hiding a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add KNN and data_licenses to hidden tables list 1105916061 | |
714908859 | https://github.com/simonw/datasette/issues/1012#issuecomment-714908859 | https://api.github.com/repos/simonw/datasette/issues/1012 | MDEyOklzc3VlQ29tbWVudDcxNDkwODg1OQ== | bollwyvl 45380 | 2020-10-23T04:49:20Z | 2020-10-23T04:49:20Z | CONTRIBUTOR | Good luck on 1.0! It may also be worth lobbying for a I was surprised to see the PR for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
For 1.0 update trove classifier in setup.py 718540751 | |
996150904 | https://github.com/simonw/datasette/issues/625#issuecomment-996150904 | https://api.github.com/repos/simonw/datasette/issues/625 | IC_kwDOBm6k_c47YA54 | simonw 9599 | 2021-12-16T19:57:52Z | 2021-12-16T19:57:52Z | OWNER | Good news - GitHub's new code search doesn't show ANYONE using that plugin hook - not surprising since it has that documentation warning plus it's just not a very clearly usable hook: https://cs.github.com/?scopeName=All+repos&scope=&q=register_facet_classes%20-repo%3Asimonw%2Fdatasette |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741 | |
722062449 | https://github.com/simonw/sqlite-utils/issues/196#issuecomment-722062449 | https://api.github.com/repos/simonw/sqlite-utils/issues/196 | MDEyOklzc3VlQ29tbWVudDcyMjA2MjQ0OQ== | simonw 9599 | 2020-11-05T01:12:14Z | 2020-11-05T01:12:14Z | OWNER | Good news: I don't think I have to deal with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Introspect if table is FTS4 or FTS5 736520310 | |
894882123 | https://github.com/simonw/datasette/issues/1425#issuecomment-894882123 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41VtFL | simonw 9599 | 2021-08-09T00:27:43Z | 2021-08-09T00:27:43Z | OWNER | Good news: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
696443845 | https://github.com/simonw/sqlite-utils/pull/161#issuecomment-696443845 | https://api.github.com/repos/simonw/sqlite-utils/issues/161 | MDEyOklzc3VlQ29tbWVudDY5NjQ0Mzg0NQ== | simonw 9599 | 2020-09-22T00:04:31Z | 2020-09-22T00:04:44Z | OWNER | Good news: the <Table foo (id, name, age)> >>> db["foo"] <Table foo (id, name, age)> >>> print(db["foo"].schema) CREATE TABLE [foo] ( [id] INTEGER, [name] TEXT NOT NULL, [age] INTEGER NOT NULL DEFAULT 1 ) >>> db["foo"].columns [Column(cid=0, name='id', type='INTEGER', notnull=0, default_value=None, is_pk=0), Column(cid=1, name='name', type='TEXT', notnull=1, default_value=None, is_pk=0), Column(cid=2, name='age', type='INTEGER', notnull=1, default_value='1', is_pk=0)] ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
table.transform() method 705975133 | |
1296131343 | https://github.com/simonw/datasette/issues/1872#issuecomment-1296131343 | https://api.github.com/repos/simonw/datasette/issues/1872 | IC_kwDOBm6k_c5NQWUP | simonw 9599 | 2022-10-30T06:26:01Z | 2022-10-30T06:26:01Z | OWNER | Good spot fixing that! Sorry about this - it was a change in Datasette 0.63 which should have been better called out. My goal for Datasette 1.0 (which I aim to have out by the end of the year) is to introduce a formal process for avoiding problems like this, with very clear documentation when something like this might happen. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
SITE-BUSTING ERROR: "render_template() called before await ds.invoke_startup()" 1428560020 | |
527090411 | https://github.com/simonw/sqlite-utils/pull/56#issuecomment-527090411 | https://api.github.com/repos/simonw/sqlite-utils/issues/56 | MDEyOklzc3VlQ29tbWVudDUyNzA5MDQxMQ== | simonw 9599 | 2019-09-02T10:10:48Z | 2019-09-02T10:10:48Z | OWNER | Good spot, thanks! Would be useful to add a test as well, derived from your above example. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escape the table name in populate_fts and search. 487847945 | |
689735140 | https://github.com/simonw/sqlite-utils/pull/156#issuecomment-689735140 | https://api.github.com/repos/simonw/sqlite-utils/issues/156 | MDEyOklzc3VlQ29tbWVudDY4OTczNTE0MA== | simonw 9599 | 2020-09-09T18:21:06Z | 2020-09-09T18:21:06Z | OWNER | Good spot, thanks. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Typos in tests 697030843 | |
684425714 | https://github.com/dogsheep/pocket-to-sqlite/issues/5#issuecomment-684425714 | https://api.github.com/repos/dogsheep/pocket-to-sqlite/issues/5 | MDEyOklzc3VlQ29tbWVudDY4NDQyNTcxNA== | simonw 9599 | 2020-09-01T06:18:32Z | 2020-09-01T06:18:32Z | MEMBER | Good suggestion, I'll setup a demo somewhere. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up a demo 629473827 | |
804471733 | https://github.com/simonw/datasette/issues/88#issuecomment-804471733 | https://api.github.com/repos/simonw/datasette/issues/88 | MDEyOklzc3VlQ29tbWVudDgwNDQ3MTczMw== | mroswell 192568 | 2021-03-22T23:46:36Z | 2021-03-22T23:46:36Z | CONTRIBUTOR | Google Map API limits seem to prevent https://nhs-england-map.netlify.com from being a working demo. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add NHS England Hospitals example to wiki 273775212 | |
1652746185 | https://github.com/simonw/datasette/issues/2112#issuecomment-1652746185 | https://api.github.com/repos/simonw/datasette/issues/2112 | IC_kwDOBm6k_c5igufJ | simonw 9599 | 2023-07-27T00:46:37Z | 2023-07-27T00:46:37Z | OWNER | Got Claude to generate this code: ```python from dataclasses import dataclass, field @dataclass
class QueryContext:
database: str = field(metadata={"help": "The name of the database being queried"})
query: dict = field(metadata={"help": "The SQL query object containing the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Build HTML version of /content?sql=... 1822938661 | |
1097115034 | https://github.com/simonw/datasette/issues/1712#issuecomment-1097115034 | https://api.github.com/repos/simonw/datasette/issues/1712 | IC_kwDOBm6k_c5BZKWa | simonw 9599 | 2022-04-12T19:12:21Z | 2022-04-12T19:12:21Z | OWNER | Got a TIL out of this too: https://til.simonwillison.net/spatialite/gunion-to-combine-geometries |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make "<Binary: 2427344 bytes>" easier to read 1202227104 | |
886241674 | https://github.com/dogsheep/hacker-news-to-sqlite/issues/3#issuecomment-886241674 | https://api.github.com/repos/dogsheep/hacker-news-to-sqlite/issues/3 | IC_kwDODtX3eM400vmK | simonw 9599 | 2021-07-25T18:41:17Z | 2021-07-25T18:41:17Z | MEMBER | Got a TIL out of this: https://til.simonwillison.net/jq/extracting-objects-recursively |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use HN algolia endpoint to retrieve trees 952189173 | |
996272906 | https://github.com/simonw/datasette/issues/1518#issuecomment-996272906 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c47YesK | simonw 9599 | 2021-12-16T23:27:42Z | 2021-12-16T23:27:42Z | OWNER | Got a TIL out of this: https://til.simonwillison.net/pluggy/multiple-hooks-same-file |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
1018017637 | https://github.com/simonw/datasette/issues/1608#issuecomment-1018017637 | https://api.github.com/repos/simonw/datasette/issues/1608 | IC_kwDOBm6k_c48rbdl | simonw 9599 | 2022-01-20T23:27:59Z | 2022-01-20T23:27:59Z | OWNER | Got a couple of TILs out of this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation should clarify /stable/ vs /latest/ 1109808154 | |
1030525218 | https://github.com/simonw/datasette/issues/1576#issuecomment-1030525218 | https://api.github.com/repos/simonw/datasette/issues/1576 | IC_kwDOBm6k_c49bJEi | simonw 9599 | 2022-02-05T04:45:11Z | 2022-02-05T04:45:11Z | OWNER | Got a prototype working with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Traces should include SQL executed by subtasks created with `asyncio.gather` 1087181951 | |
862040906 | https://github.com/simonw/sqlite-utils/issues/272#issuecomment-862040906 | https://api.github.com/repos/simonw/sqlite-utils/issues/272 | MDEyOklzc3VlQ29tbWVudDg2MjA0MDkwNg== | simonw 9599 | 2021-06-16T05:02:47Z | 2021-06-16T05:02:47Z | OWNER | Got a prototype working!
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Idea: import CSV to memory, run SQL, export in a single command 921878733 | |
1460664619 | https://github.com/simonw/datasette/issues/2035#issuecomment-1460664619 | https://api.github.com/repos/simonw/datasette/issues/2035 | IC_kwDOBm6k_c5XD_kr | simonw 9599 | 2023-03-08T18:32:29Z | 2023-03-08T18:32:29Z | OWNER | Got a prototype working: ```diff diff --git a/datasette/views/database.py b/datasette/views/database.py index 8d289105..6f9d8a44 100644 --- a/datasette/views/database.py +++ b/datasette/views/database.py @@ -226,6 +226,12 @@ class QueryView(DataView): ): db = await self.ds.resolve_database(request) database = db.name + # Disallow x__list query string parameters + invalid_params = [k for k in request.args if k.endswith("__list")] + if invalid_params: + raise DatasetteError( + "Invalid query string parameters: {}".format(", ".join(invalid_params)) + ) params = {key: request.args.get(key) for key in request.args} if "sql" in params: params.pop("sql") @@ -258,6 +264,11 @@ class QueryView(DataView): for named_parameter in named_parameters if not named_parameter.startswith("_") } + # Handle any __list parameters + for named_parameter in named_parameters: + if named_parameter.endswith("__list"): + list_values = request.args.getlist(named_parameter[:-6]) + params[named_parameter] = json.dumps(list_values)
That was this URL: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Potential feature: special support for `?a=1&a=2` on the query page 1615692818 | |
1349974287 | https://github.com/simonw/datasette/issues/1947#issuecomment-1349974287 | https://api.github.com/repos/simonw/datasette/issues/1947 | IC_kwDOBm6k_c5QdvkP | simonw 9599 | 2022-12-13T22:59:44Z | 2022-12-13T22:59:44Z | OWNER | Got an option group thing working: But... it strikes me that any time you're considering a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
UI to create reduced scope tokens from the `/-/create-token` page 1493390939 | |
1399145981 | https://github.com/simonw/datasette/issues/262#issuecomment-1399145981 | https://api.github.com/repos/simonw/datasette/issues/262 | IC_kwDOBm6k_c5TZUX9 | simonw 9599 | 2023-01-21T01:56:52Z | 2023-01-21T01:56:52Z | OWNER | Got first prototype working using +from asyncinject import Registry import markupsafe from datasette.plugins import pm @@ -538,57 +539,60 @@ class TableView(DataView): # Execute the main query! results = await db.execute(sql, params, truncate=True, **extra_args)
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add ?_extra= mechanism for requesting extra properties in JSON 323658641 | |
1335870889 | https://github.com/simonw/datasette/issues/1928#issuecomment-1335870889 | https://api.github.com/repos/simonw/datasette/issues/1928 | IC_kwDOBm6k_c5Pn8Wp | simonw 9599 | 2022-12-02T21:41:09Z | 2022-12-02T21:41:09Z | OWNER | Got it working! https://simon.datasette.cloud/data/hacker_news_posts https://github.com/simonw/scrape-hacker-news-by-domain/blob/main/submit-to-datasette-cloud.sh |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Hacker News Datasette write demo 1473481262 | |
974380798 | https://github.com/simonw/datasette/issues/1521#issuecomment-974380798 | https://api.github.com/repos/simonw/datasette/issues/1521 | IC_kwDOBm6k_c46E97- | simonw 9599 | 2021-11-19T19:54:26Z | 2021-11-19T19:54:26Z | OWNER | Got it working! Here's a ```Dockerfile FROM python:3-alpine RUN apk add --no-cache \ apache2 \ apache2-proxy \ bash RUN pip install datasette ENV TINI_VERSION v0.18.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static /tini RUN chmod +x /tini Append this to the end of the default httpd.conf fileRUN echo $'ServerName localhost\n\ \n\ <Proxy *>\n\ Order deny,allow\n\ Allow from all\n\ </Proxy>\n\ \n\ ProxyPass / http://localhost:9000/\n\ ProxyPassReverse / http://localhost:9000/\n\ Header add X-Proxied-By "Apache2"' >> /etc/apache2/httpd.conf WORKDIR /app RUN echo $'#!/usr/bin/env bash\n\ set -e\n\ \n\ httpd -D FOREGROUND &\n\ datasette -p 9000 &\n\ \n\ wait -n' > /app/start.sh RUN chmod +x /app/start.sh EXPOSE 80 ENTRYPOINT ["/tini", "--", "/app/start.sh"] ``` Run it like this:
{"python": {"version": "3.10.0", "full": "3.10.0 (default, Nov 13 2021, 03:23:03) [GCC 10.3.1 20210424]"}, "datasette": {"version": "0.59.2"}, "asgi": "3.0", "uvicorn": "0.15.0", "sqlite": {"version": "3.35.5", "fts_versions": ["FTS5", "FTS4", "FTS3"], "extensions": {"json1": null}, "compile_options": ["COMPILER=gcc-10.3.1 20210424", "ENABLE_COLUMN_METADATA", "ENABLE_DBSTAT_VTAB", "ENABLE_FTS3", "ENABLE_FTS3_PARENTHESIS", "ENABLE_FTS4", "ENABLE_FTS5", "ENABLE_GEOPOLY", "ENABLE_JSON1", "ENABLE_MATH_FUNCTIONS", "ENABLE_RTREE", "ENABLE_UNLOCK_NOTIFY", "MAX_VARIABLE_NUMBER=250000", "SECURE_DELETE", "THREADSAFE=1", "USE_URI"]}} ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker configuration for exercising Datasette behind Apache mod_proxy 1058815557 | |
388497467 | https://github.com/simonw/datasette/issues/254#issuecomment-388497467 | https://api.github.com/repos/simonw/datasette/issues/254 | MDEyOklzc3VlQ29tbWVudDM4ODQ5NzQ2Nw== | simonw 9599 | 2018-05-11T22:06:00Z | 2018-05-11T22:06:34Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escaping named parameters in canned queries 322283067 | ||
1355313058 | https://github.com/simonw/datasette/pull/1960#issuecomment-1355313058 | https://api.github.com/repos/simonw/datasette/issues/1960 | IC_kwDOBm6k_c5QyG-i | simonw 9599 | 2022-12-16T17:53:17Z | 2022-12-16T17:53:17Z | OWNER | Got some surprising test failures here: https://github.com/simonw/datasette/actions/runs/3715317653/jobs/6300336626 ```
I tried adding |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Port as many tests as possible to async def tests against ds_client 1499150951 | |
1354148139 | https://github.com/simonw/datasette/pull/1960#issuecomment-1354148139 | https://api.github.com/repos/simonw/datasette/issues/1960 | IC_kwDOBm6k_c5Qtqkr | simonw 9599 | 2022-12-16T03:32:52Z | 2022-12-16T03:32:52Z | OWNER | Got that done to: 68 passed in 14.92s By implementing my own global variable - since |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Port as many tests as possible to async def tests against ds_client 1499150951 | |
1006311742 | https://github.com/simonw/sqlite-utils/pull/361#issuecomment-1006311742 | https://api.github.com/repos/simonw/sqlite-utils/issues/361 | IC_kwDOCGYnMM47-xk- | simonw 9599 | 2022-01-06T06:12:19Z | 2022-01-06T06:12:19Z | OWNER | Got that working:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--lines and --text and --convert and --import 1094890366 | |
585962849 | https://github.com/simonw/datasette/issues/670#issuecomment-585962849 | https://api.github.com/repos/simonw/datasette/issues/670 | MDEyOklzc3VlQ29tbWVudDU4NTk2Mjg0OQ== | simonw 9599 | 2020-02-13T20:44:18Z | 2020-02-13T20:46:53Z | OWNER | Got the database page working! It lists tables, their columns and their row count. Got the table page partially working! It can list rows. It can't apply filters yet (because PostgreSQL |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Prototoype for Datasette on PostgreSQL 564833696 | |
1460840620 | https://github.com/simonw/datasette/issues/2037#issuecomment-1460840620 | https://api.github.com/repos/simonw/datasette/issues/2037 | IC_kwDOBm6k_c5XEqis | simonw 9599 | 2023-03-08T20:33:00Z | 2023-03-08T20:33:00Z | OWNER | Got the same failure again for a recent commit: https://github.com/simonw/datasette/actions/runs/4368239376/jobs/7640567282 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failure: FAILED tests/test_cli.py::test_install_requirements - FileNotFoundError 1615891776 | |
855278540 | https://github.com/simonw/datasette/issues/1238#issuecomment-855278540 | https://api.github.com/repos/simonw/datasette/issues/1238 | MDEyOklzc3VlQ29tbWVudDg1NTI3ODU0MA== | simonw 9599 | 2021-06-05T18:33:25Z | 2021-06-05T18:33:25Z | OWNER | Got the test to pass by ensuring the tests don't accidentally double-rewrite the path. Ran into a new problem: ``` @pytest.mark.asyncio @pytest.mark.parametrize( "prefix,expected_path", [(None, "/asgi-scope"), ("/prefix/", "/prefix/asgi-scope")] ) async def test_client_path(datasette, prefix, expected_path): original_base_url = datasette._settings["base_url"] try: if prefix is not None: datasette._settings["base_url"] = prefix response = await datasette.client.get("/asgi-scope") path = response.json()["path"]
The question raised here is: should the ASGI scope stay unmodified when I think it should. It doesn't make sense to obscure the "real" path just to get custom pages to work properly. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom pages don't work with base_url setting 813899472 | |
803750617 | https://github.com/simonw/datasette/issues/1249#issuecomment-803750617 | https://api.github.com/repos/simonw/datasette/issues/1249 | MDEyOklzc3VlQ29tbWVudDgwMzc1MDYxNw== | simonw 9599 | 2021-03-22T04:25:14Z | 2021-03-22T04:25:14Z | OWNER | Got this error attempting to run Datasette (with or without SpatiaLite):
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Updated Dockerfile with SpatiaLite version 5.0 824064069 | |
1353728682 | https://github.com/simonw/datasette/issues/1959#issuecomment-1353728682 | https://api.github.com/repos/simonw/datasette/issues/1959 | IC_kwDOBm6k_c5QsEKq | simonw 9599 | 2022-12-15T21:28:35Z | 2022-12-15T21:28:35Z | OWNER | Got this error trying to have two tests use the same Adding this to
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor test suite to use mostly `async def` tests 1499081664 | |
809008760 | https://github.com/simonw/datasette/issues/1281#issuecomment-809008760 | https://api.github.com/repos/simonw/datasette/issues/1281 | MDEyOklzc3VlQ29tbWVudDgwOTAwODc2MA== | simonw 9599 | 2021-03-29T01:38:21Z | 2021-03-29T01:38:21Z | OWNER | Got this error: ``` "docker tag" requires exactly 2 arguments. See 'docker tag --help'. Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Latest Datasette tags missing from Docker Hub 842881221 | |
615957385 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615957385 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk1NzM4NQ== | simonw 9599 | 2020-04-18T21:56:16Z | 2020-04-18T21:58:11Z | MEMBER | Got this working! I'll do EXIF in a separate ticket #3. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
864330508 | https://github.com/simonw/sqlite-utils/issues/279#issuecomment-864330508 | https://api.github.com/repos/simonw/sqlite-utils/issues/279 | MDEyOklzc3VlQ29tbWVudDg2NDMzMDUwOA== | simonw 9599 | 2021-06-19T00:34:24Z | 2021-06-19T00:34:24Z | OWNER | Got this working:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils memory should handle TSV and JSON in addition to CSV 924990677 | |
1610040517 | https://github.com/simonw/sqlite-utils/issues/561#issuecomment-1610040517 | https://api.github.com/repos/simonw/sqlite-utils/issues/561 | IC_kwDOCGYnMM5f90TF | simonw 9599 | 2023-06-27T18:44:31Z | 2023-06-27T18:44:38Z | OWNER | Got this working:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`--stop-after` option for `insert` and `upsert` commands 1777548699 | |
803782705 | https://github.com/simonw/datasette/issues/1268#issuecomment-803782705 | https://api.github.com/repos/simonw/datasette/issues/1268 | MDEyOklzc3VlQ29tbWVudDgwMzc4MjcwNQ== | simonw 9599 | 2021-03-22T05:54:19Z | 2021-03-22T05:54:19Z | OWNER | Got two new TILs out of this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out why SpatiaLite 5.0 hangs the database page on Linux 837308703 | |
747767499 | https://github.com/simonw/datasette/issues/1150#issuecomment-747767499 | https://api.github.com/repos/simonw/datasette/issues/1150 | MDEyOklzc3VlQ29tbWVudDc0Nzc2NzQ5OQ== | simonw 9599 | 2020-12-17T23:23:44Z | 2020-12-17T23:23:44Z | OWNER | Grabbing the schema version of 380 files in the root directory takes 70ms. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Maintain an in-memory SQLite table of connected databases and their tables 770436876 | |
623010272 | https://github.com/dogsheep/github-to-sqlite/issues/4#issuecomment-623010272 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/4 | MDEyOklzc3VlQ29tbWVudDYyMzAxMDI3Mg== | simonw 9599 | 2020-05-02T20:39:14Z | 2020-05-02T20:39:14Z | MEMBER | Stars per day (as a label bar chart, so very wide): |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Command to fetch stargazers for one or more repos 493670730 | |
603849245 | https://github.com/simonw/datasette/issues/394#issuecomment-603849245 | https://api.github.com/repos/simonw/datasette/issues/394 | MDEyOklzc3VlQ29tbWVudDYwMzg0OTI0NQ== | terrycojones 132978 | 2020-03-25T13:48:13Z | 2020-03-25T13:48:13Z | NONE | Great - thanks again. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
base_url configuration setting 396212021 | |
710768396 | https://github.com/simonw/sqlite-utils/issues/69#issuecomment-710768396 | https://api.github.com/repos/simonw/sqlite-utils/issues/69 | MDEyOklzc3VlQ29tbWVudDcxMDc2ODM5Ng== | aborruso 30607 | 2020-10-17T07:46:59Z | 2020-10-17T07:46:59Z | NONE | Great @simonw thank you very much |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Feature request: enable extensions loading 534507142 | |
1030940407 | https://github.com/simonw/datasette/issues/932#issuecomment-1030940407 | https://api.github.com/repos/simonw/datasette/issues/932 | IC_kwDOBm6k_c49cub3 | simonw 9599 | 2022-02-06T23:31:22Z | 2022-02-06T23:31:22Z | OWNER | Great argument for doing this from a conversation on Twitter about documentation-driven development:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
End-user documentation 678760988 | |
740796067 | https://github.com/simonw/sqlite-utils/pull/204#issuecomment-740796067 | https://api.github.com/repos/simonw/sqlite-utils/issues/204 | MDEyOklzc3VlQ29tbWVudDc0MDc5NjA2Nw== | simonw 9599 | 2020-12-08T17:49:22Z | 2020-12-08T17:49:22Z | OWNER | Great catch, thank you. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
use jsonify_if_need for sql updates 752888228 | |
1311273461 | https://github.com/simonw/datasette/issues/1883#issuecomment-1311273461 | https://api.github.com/repos/simonw/datasette/issues/1883 | IC_kwDOBm6k_c5OKHH1 | simonw 9599 | 2022-11-11T06:16:08Z | 2022-11-11T06:16:08Z | OWNER | Great catch, thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Errors when using table filters behind a proxy 1435917503 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user >30