issue_comments
8,883 rows where user = 9599 sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw · 4,950 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
850057694 | https://github.com/simonw/datasette/issues/619#issuecomment-850057694 | https://api.github.com/repos/simonw/datasette/issues/619 | MDEyOklzc3VlQ29tbWVudDg1MDA1NzY5NA== | simonw 9599 | 2021-05-28T02:03:05Z | 2021-05-28T02:03:05Z | OWNER | I nearly got this working, but I ran into one last problem: the code path for when an error is raised but the user specified |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Invalid SQL" page should let you edit the SQL 520655983 | |
850025106 | https://github.com/simonw/datasette/issues/619#issuecomment-850025106 | https://api.github.com/repos/simonw/datasette/issues/619 | MDEyOklzc3VlQ29tbWVudDg1MDAyNTEwNg== | simonw 9599 | 2021-05-28T00:18:30Z | 2021-05-28T00:18:30Z | OWNER | I'm going to return a 400 HTTP status code for "bad request", under the assumption that the client sent bad SQL. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Invalid SQL" page should let you edit the SQL 520655983 | |
850019486 | https://github.com/simonw/datasette/issues/619#issuecomment-850019486 | https://api.github.com/repos/simonw/datasette/issues/619 | MDEyOklzc3VlQ29tbWVudDg1MDAxOTQ4Ng== | simonw 9599 | 2021-05-28T00:05:50Z | 2021-05-28T00:05:50Z | OWNER | Came up on discussions here: https://github.com/simonw/datasette/discussions/1334 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Invalid SQL" page should let you edit the SQL 520655983 | |
849820019 | https://github.com/simonw/datasette/issues/1344#issuecomment-849820019 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTgyMDAxOQ== | simonw 9599 | 2021-05-27T17:44:39Z | 2021-05-27T17:52:58Z | OWNER | This pattern appears to work, executed at the root of a checkout of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849815361 | https://github.com/simonw/datasette/issues/1344#issuecomment-849815361 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTgxNTM2MQ== | simonw 9599 | 2021-05-27T17:36:51Z | 2021-05-27T17:36:51Z | OWNER | To run the test suite... need to install a few more dependencies: https://github.com/simonw/datasette/blob/7b106e106000713bbee31b34d694b3dadbd4818c/setup.py#L71-L79 And then mount the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849806581 | https://github.com/simonw/datasette/issues/1344#issuecomment-849806581 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTgwNjU4MQ== | simonw 9599 | 2021-05-27T17:22:37Z | 2021-05-27T17:34:27Z | OWNER |
OK! Now I need to figure out how to run the full test suite on each one, then I can call this done. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849805778 | https://github.com/simonw/datasette/issues/1344#issuecomment-849805778 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTgwNTc3OA== | simonw 9599 | 2021-05-27T17:21:11Z | 2021-05-27T17:21:22Z | OWNER | This helps:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849804684 | https://github.com/simonw/datasette/issues/1344#issuecomment-849804684 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTgwNDY4NA== | simonw 9599 | 2021-05-27T17:19:16Z | 2021-05-27T17:19:16Z | OWNER | Having pushed that to Docker Hub the following seems to work on my laptop:
I'd like to confirm that this is correctly emulating the architecture and running the correct published image though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849801969 | https://github.com/simonw/datasette/issues/1344#issuecomment-849801969 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTgwMTk2OQ== | simonw 9599 | 2021-05-27T17:14:49Z | 2021-05-27T17:14:49Z | OWNER | Job completed in 13m38s - results are here: https://hub.docker.com/r/datasetteproject/datasette/tags?page=1&ordering=last_updated&name=0.57a1 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849797767 | https://github.com/simonw/datasette/issues/1344#issuecomment-849797767 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTc5Nzc2Nw== | simonw 9599 | 2021-05-27T17:08:13Z | 2021-05-27T17:08:13Z | OWNER | Related issue: #1272 - being able to run the test suite inside Docker inside GitHub Actions would be incredibly helpful here. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849793312 | https://github.com/simonw/datasette/issues/1344#issuecomment-849793312 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTc5MzMxMg== | simonw 9599 | 2021-05-27T17:01:16Z | 2021-05-27T17:01:16Z | OWNER | https://github.com/simonw/datasette/runs/2687196350 is a run of https://github.com/simonw/datasette/blob/main/.github/workflows/push_docker_tag.yml to publish the new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849788412 | https://github.com/simonw/datasette/issues/1344#issuecomment-849788412 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTc4ODQxMg== | simonw 9599 | 2021-05-27T16:53:28Z | 2021-05-27T16:53:28Z | OWNER | (Should also update https://docs.datasette.io/en/stable/contributing.html#release-process with notes on how this works) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849788159 | https://github.com/simonw/datasette/issues/1344#issuecomment-849788159 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTc4ODE1OQ== | simonw 9599 | 2021-05-27T16:53:04Z | 2021-05-27T16:53:04Z | OWNER | I'm going to release a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
849785098 | https://github.com/simonw/datasette/pull/1319#issuecomment-849785098 | https://api.github.com/repos/simonw/datasette/issues/1319 | MDEyOklzc3VlQ29tbWVudDg0OTc4NTA5OA== | simonw 9599 | 2021-05-27T16:48:21Z | 2021-05-27T16:48:21Z | OWNER | OK, since I have a mechanism for deploying alpha versions now I'm going to merge this and use it to publish 0.57a1. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Docker multi-arch support with Buildx 881219362 | |
849784005 | https://github.com/simonw/datasette/issues/1343#issuecomment-849784005 | https://api.github.com/repos/simonw/datasette/issues/1343 | MDEyOklzc3VlQ29tbWVudDg0OTc4NDAwNQ== | simonw 9599 | 2021-05-27T16:46:37Z | 2021-05-27T16:46:37Z | OWNER | That worked:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out how to publish alpha/beta releases to Docker Hub 903978133 | |
849783398 | https://github.com/simonw/datasette/issues/1343#issuecomment-849783398 | https://api.github.com/repos/simonw/datasette/issues/1343 | MDEyOklzc3VlQ29tbWVudDg0OTc4MzM5OA== | simonw 9599 | 2021-05-27T16:45:41Z | 2021-05-27T16:45:41Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out how to publish alpha/beta releases to Docker Hub 903978133 | ||
849782098 | https://github.com/simonw/datasette/issues/1343#issuecomment-849782098 | https://api.github.com/repos/simonw/datasette/issues/1343 | MDEyOklzc3VlQ29tbWVudDg0OTc4MjA5OA== | simonw 9599 | 2021-05-27T16:43:40Z | 2021-05-27T16:43:55Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out how to publish alpha/beta releases to Docker Hub 903978133 | ||
849781747 | https://github.com/simonw/datasette/issues/1343#issuecomment-849781747 | https://api.github.com/repos/simonw/datasette/issues/1343 | MDEyOklzc3VlQ29tbWVudDg0OTc4MTc0Nw== | simonw 9599 | 2021-05-27T16:43:04Z | 2021-05-27T16:43:04Z | OWNER | I'm going to try pushing an alpha of https://github.com/simonw/datasette/releases/tag/0.57a0 using this workflow I built a few months ago: https://github.com/simonw/datasette/blob/1a8972f9c012cd22b088c6b70661a9c3d3847853/.github/workflows/push_docker_tag.yml |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out how to publish alpha/beta releases to Docker Hub 903978133 | |
849780481 | https://github.com/simonw/datasette/pull/1319#issuecomment-849780481 | https://api.github.com/repos/simonw/datasette/issues/1319 | MDEyOklzc3VlQ29tbWVudDg0OTc4MDQ4MQ== | simonw 9599 | 2021-05-27T16:41:03Z | 2021-05-27T16:41:03Z | OWNER | It looks like all I need to do to ship an alpha version to Docker Hub is NOT point the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Docker multi-arch support with Buildx 881219362 | |
849778373 | https://github.com/simonw/datasette/pull/1319#issuecomment-849778373 | https://api.github.com/repos/simonw/datasette/issues/1319 | MDEyOklzc3VlQ29tbWVudDg0OTc3ODM3Mw== | simonw 9599 | 2021-05-27T16:37:50Z | 2021-05-27T16:37:50Z | OWNER | Started a conversation about this on Twitter. Ideally I'd like to push an alpha release to Docker Hub so people can start testing these out before they make it into an official non-alpha release. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Docker multi-arch support with Buildx 881219362 | |
849762735 | https://github.com/simonw/datasette/issues/1337#issuecomment-849762735 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0OTc2MjczNQ== | simonw 9599 | 2021-05-27T16:14:14Z | 2021-05-27T16:14:14Z | OWNER | Here's a demo showing that once you get above 1,000 results you still get the "..." but it no longer links to anything: https://fivethirtyeight.datasettes.com/fivethirtyeight/births%2FUS_births_2000-2014_SSA?_facet=births&_facet_size=max |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | |
849761894 | https://github.com/simonw/datasette/issues/1332#issuecomment-849761894 | https://api.github.com/repos/simonw/datasette/issues/1332 | MDEyOklzc3VlQ29tbWVudDg0OTc2MTg5NA== | simonw 9599 | 2021-05-27T16:13:07Z | 2021-05-27T16:13:07Z | OWNER | Added |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_facet_size=X to increase number of facets results on the page 893890496 | |
849761508 | https://github.com/simonw/datasette/issues/1337#issuecomment-849761508 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0OTc2MTUwOA== | simonw 9599 | 2021-05-27T16:12:31Z | 2021-05-27T16:12:31Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | ||
849759440 | https://github.com/simonw/datasette/issues/1337#issuecomment-849759440 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0OTc1OTQ0MA== | simonw 9599 | 2021-05-27T16:09:34Z | 2021-05-27T16:09:34Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | ||
849725291 | https://github.com/simonw/datasette/issues/1337#issuecomment-849725291 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0OTcyNTI5MQ== | simonw 9599 | 2021-05-27T15:23:33Z | 2021-05-27T15:23:33Z | OWNER | Turns out |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | |
849724915 | https://github.com/simonw/datasette/issues/1342#issuecomment-849724915 | https://api.github.com/repos/simonw/datasette/issues/1342 | MDEyOklzc3VlQ29tbWVudDg0OTcyNDkxNQ== | simonw 9599 | 2021-05-27T15:23:01Z | 2021-05-27T15:23:01Z | OWNER | Since they are already exposed (but undocumented) this isn't actually a blocker on #1337 like I thought it was. Should still clean this up in the future though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Improve `path_with_replaced_args()` and friends and document them 903902495 | |
849724108 | https://github.com/simonw/datasette/issues/1342#issuecomment-849724108 | https://api.github.com/repos/simonw/datasette/issues/1342 | MDEyOklzc3VlQ29tbWVudDg0OTcyNDEwOA== | simonw 9599 | 2021-05-27T15:21:54Z | 2021-05-27T15:21:54Z | OWNER | Turns out some of these are already being exposed to the template context on an ad-hoc basis. In In |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Improve `path_with_replaced_args()` and friends and document them 903902495 | |
849722218 | https://github.com/simonw/datasette/issues/1342#issuecomment-849722218 | https://api.github.com/repos/simonw/datasette/issues/1342 | MDEyOklzc3VlQ29tbWVudDg0OTcyMjIxOA== | simonw 9599 | 2021-05-27T15:19:23Z | 2021-05-27T15:19:23Z | OWNER | Current implementations: https://github.com/simonw/datasette/blob/51d788114035458d8f860d9ea6d74078e6c0ea0d/datasette/utils/init.py#L214-L272 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Improve `path_with_replaced_args()` and friends and document them 903902495 | |
849721280 | https://github.com/simonw/datasette/issues/1337#issuecomment-849721280 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0OTcyMTI4MA== | simonw 9599 | 2021-05-27T15:18:08Z | 2021-05-27T15:18:08Z | OWNER | In order to cleanly implement this I need to expose the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | |
849695117 | https://github.com/simonw/datasette/issues/1337#issuecomment-849695117 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0OTY5NTExNw== | simonw 9599 | 2021-05-27T14:44:13Z | 2021-05-27T14:44:13Z | OWNER | Here's a much easier way to implement this: implement |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | |
849311884 | https://github.com/simonw/datasette/pull/1319#issuecomment-849311884 | https://api.github.com/repos/simonw/datasette/issues/1319 | MDEyOklzc3VlQ29tbWVudDg0OTMxMTg4NA== | simonw 9599 | 2021-05-27T04:33:51Z | 2021-05-27T04:33:51Z | OWNER | This is so cool! I wonder how I can best test it? I have a Raspberry Pi I should dig out to try this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Docker multi-arch support with Buildx 881219362 | |
849310294 | https://github.com/simonw/datasette/issues/1341#issuecomment-849310294 | https://api.github.com/repos/simonw/datasette/issues/1341 | MDEyOklzc3VlQ29tbWVudDg0OTMxMDI5NA== | simonw 9599 | 2021-05-27T04:29:04Z | 2021-05-27T04:29:04Z | OWNER | For implementation simplicity I'm going to show the item even if all of the columns are visible because |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Show all columns" cog menu item should show if ?_col= is used 903200328 | |
849309330 | https://github.com/simonw/datasette/issues/615#issuecomment-849309330 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0OTMwOTMzMA== | simonw 9599 | 2021-05-27T04:26:10Z | 2021-05-27T04:26:10Z | OWNER | Demos:
Also try the column cog menu on that page. Documentation: https://docs.datasette.io/en/latest/json_api.html#special-table-arguments |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
849308907 | https://github.com/simonw/datasette/issues/292#issuecomment-849308907 | https://api.github.com/repos/simonw/datasette/issues/292 | MDEyOklzc3VlQ29tbWVudDg0OTMwODkwNw== | simonw 9599 | 2021-05-27T04:25:01Z | 2021-05-27T04:25:01Z | OWNER | Now that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for customizing the SQL used to select specific columns in the table view 326800219 | |
849022714 | https://github.com/simonw/datasette/issues/670#issuecomment-849022714 | https://api.github.com/repos/simonw/datasette/issues/670 | MDEyOklzc3VlQ29tbWVudDg0OTAyMjcxNA== | simonw 9599 | 2021-05-26T18:33:47Z | 2021-05-26T18:33:58Z | OWNER | Worth mentioning here: I've been doing a tun of research around running Datasette-like functionality against PostgreSQL in my https://github.com/simonw/django-sql-dashboard project - which will definitely inform the Datasette implementation. |
{ "total_count": 3, "+1": 3, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Prototoype for Datasette on PostgreSQL 564833696 | |
847987346 | https://github.com/simonw/datasette/issues/1340#issuecomment-847987346 | https://api.github.com/repos/simonw/datasette/issues/1340 | MDEyOklzc3VlQ29tbWVudDg0Nzk4NzM0Ng== | simonw 9599 | 2021-05-25T15:49:55Z | 2021-05-25T15:49:55Z | OWNER | Usual problem with this kind of UI: what would it do on mobile where hover isn't a thing? Plenty of other questions: if it opens a menu, what options might I put in there other than "Show more like this"? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research: Cell action menu (like column action but for individual cells) 901009787 | |
847240470 | https://github.com/simonw/datasette/issues/1327#issuecomment-847240470 | https://api.github.com/repos/simonw/datasette/issues/1327 | MDEyOklzc3VlQ29tbWVudDg0NzI0MDQ3MA== | simonw 9599 | 2021-05-24T18:21:44Z | 2021-05-24T18:21:44Z | OWNER | I'm having trouble replicating this - I tried the following |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support Unicode characters in metadata.json 892457208 | |
847237524 | https://github.com/simonw/datasette/issues/1320#issuecomment-847237524 | https://api.github.com/repos/simonw/datasette/issues/1320 | MDEyOklzc3VlQ29tbWVudDg0NzIzNzUyNA== | simonw 9599 | 2021-05-24T18:15:56Z | 2021-05-24T18:15:56Z | OWNER | Added some new documentation about that here: https://github.com/simonw/datasette/blob/c0a748e5c3f498fa8c139b420d07dd3dea612379/docs/installation.rst#installing-plugins |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Can't use apt-get in Dockerfile when using datasetteproj/datasette as base 884952179 | |
847232547 | https://github.com/simonw/datasette/issues/1320#issuecomment-847232547 | https://api.github.com/repos/simonw/datasette/issues/1320 | MDEyOklzc3VlQ29tbWVudDg0NzIzMjU0Nw== | simonw 9599 | 2021-05-24T18:06:32Z | 2021-05-24T18:06:32Z | OWNER | I'm testing tweaks to the Dockerfile by editing it and running:
apt-get updateapt-get install ripgreprg --versionripgrep 12.1.1 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Can't use apt-get in Dockerfile when using datasetteproj/datasette as base 884952179 | |
847230866 | https://github.com/simonw/datasette/issues/1320#issuecomment-847230866 | https://api.github.com/repos/simonw/datasette/issues/1320 | MDEyOklzc3VlQ29tbWVudDg0NzIzMDg2Ng== | simonw 9599 | 2021-05-24T18:03:29Z | 2021-05-24T18:03:29Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Can't use apt-get in Dockerfile when using datasetteproj/datasette as base 884952179 | |
847223853 | https://github.com/simonw/datasette/issues/1320#issuecomment-847223853 | https://api.github.com/repos/simonw/datasette/issues/1320 | MDEyOklzc3VlQ29tbWVudDg0NzIyMzg1Mw== | simonw 9599 | 2021-05-24T17:51:12Z | 2021-05-24T17:51:12Z | OWNER | This is a good catch, thank you. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Can't use apt-get in Dockerfile when using datasetteproj/datasette as base 884952179 | |
846592583 | https://github.com/simonw/datasette/issues/615#issuecomment-846592583 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjU5MjU4Mw== | simonw 9599 | 2021-05-23T16:50:45Z | 2021-05-24T17:15:48Z | OWNER | Still needed:
And maybe a UI mechanism for this? I could at least add a "remove this column" item to the cog menu on columns. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846668419 | https://github.com/simonw/datasette/issues/615#issuecomment-846668419 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjY2ODQxOQ== | simonw 9599 | 2021-05-24T01:14:27Z | 2021-05-24T01:14:27Z | OWNER | I tried allowing the removal of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846660103 | https://github.com/simonw/datasette/issues/615#issuecomment-846660103 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjY2MDEwMw== | simonw 9599 | 2021-05-24T00:47:00Z | 2021-05-24T00:47:00Z | OWNER |
Removing the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846659272 | https://github.com/simonw/datasette/issues/615#issuecomment-846659272 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjY1OTI3Mg== | simonw 9599 | 2021-05-24T00:44:47Z | 2021-05-24T00:44:47Z | OWNER | I can't think of any good reasons to support passing the same column twice |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846627322 | https://github.com/simonw/datasette/issues/615#issuecomment-846627322 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjYyNzMyMg== | simonw 9599 | 2021-05-23T21:31:22Z | 2021-05-23T21:31:22Z | OWNER | Would it be useful to allow this mechanism to alias columns, for example supporting one of the following:
This could be handy for renaming columns to match a specific expected JSON output. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846627163 | https://github.com/simonw/datasette/issues/615#issuecomment-846627163 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjYyNzE2Mw== | simonw 9599 | 2021-05-23T21:30:01Z | 2021-05-23T21:30:01Z | OWNER | Interesting side-effect of this implementation is that you can both control column order and request the same column multiple times:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846626871 | https://github.com/simonw/datasette/issues/615#issuecomment-846626871 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjYyNjg3MQ== | simonw 9599 | 2021-05-23T21:27:36Z | 2021-05-23T21:27:36Z | OWNER | A better interface for this would be a full list of columns each with a checkbox for making it visible on invisible - this could then be used to apply a bulk change (rather than refreshing the interface after every removed column) and it could also be easily designed to work on narrow mobile screens where the cog icon is not visible. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846626567 | https://github.com/simonw/datasette/issues/615#issuecomment-846626567 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjYyNjU2Nw== | simonw 9599 | 2021-05-23T21:25:19Z | 2021-05-23T21:25:19Z | OWNER | Here's a bug: removing the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846599732 | https://github.com/simonw/datasette/issues/615#issuecomment-846599732 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjU5OTczMg== | simonw 9599 | 2021-05-23T17:46:45Z | 2021-05-23T17:46:45Z | OWNER | I've changed my mind about forbidding |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846595473 | https://github.com/simonw/datasette/issues/615#issuecomment-846595473 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjU5NTQ3Mw== | simonw 9599 | 2021-05-23T17:13:09Z | 2021-05-23T17:13:09Z | OWNER | Natalie suggests a quick way to implement "undo" would be to add a "Show all columns" item to that menu which only appears when at least one column is hidden. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846595091 | https://github.com/simonw/datasette/issues/615#issuecomment-846595091 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjU5NTA5MQ== | simonw 9599 | 2021-05-23T17:09:59Z | 2021-05-23T17:09:59Z | OWNER | Here's that prototype of a "Hide this column" cog menu button: Need a way to undo that once you've hidden a column - maybe a list of currently hidden columns that lets you un-hide them. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846592392 | https://github.com/simonw/datasette/issues/615#issuecomment-846592392 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjU5MjM5Mg== | simonw 9599 | 2021-05-23T16:49:30Z | 2021-05-23T16:49:44Z | OWNER | I started looking at this again, inspired by #1326. I have a new diff that works against the latest ```diff diff --git a/datasette/views/table.py b/datasette/views/table.py index 4879228..f4b2ee2 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -64,6 +64,36 @@ class Row: class RowTableShared(DataView): + async def columns_to_select(self, db, table, request): + table_columns = await db.table_columns(table) + if "_col" in request.args and "_nocol" in request.args: + raise DatasetteError("Cannot use _col and _nocol at the same time") + if "_col" in request.args: + new_columns = [] + for column in request.args.getlist("_col"): + if column not in table_columns: + raise DatasetteError("_col={} is an invalid column".format(column)) + new_columns.append(column) + return new_columns + elif "_nocol" in request.args: + # Return all columns EXCEPT these + bad_columns = [ + column + for column in request.args.getlist("_nocol") + if column not in table_columns + ] + if bad_columns: + raise DatasetteError( + "_nocol={} - invalid columns".format(", ".join(bad_columns)) + ) + return [ + column + for column in table_columns + if column not in request.args.getlist("_nocol") + ] + else: + return table_columns + async def sortable_columns_for_table(self, database, table, use_rowid): db = self.ds.databases[database] table_metadata = self.ds.table_metadata(database, table) @@ -321,18 +351,16 @@ class TableView(RowTableShared): )
@@ -715,6 +743,8 @@ class TableView(RowTableShared): column = fk["column"] if column not in columns_to_expand: continue + if column not in columns: + continue expanded_columns.append(column) # Gather the values column_index = columns.index(column) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
846493370 | https://github.com/simonw/datasette/issues/1326#issuecomment-846493370 | https://api.github.com/repos/simonw/datasette/issues/1326 | MDEyOklzc3VlQ29tbWVudDg0NjQ5MzM3MA== | simonw 9599 | 2021-05-23T02:55:00Z | 2021-05-23T02:55:00Z | OWNER | Currently you can do this with a custom SQL query, but as you've noticed this means you don't get automatic pagination: https://latest.datasette.io/fixtures.json?sql=select+pk%2C+created%2C+state+from+facetable+order+by+pk+limit+10&_shape=array I have an open issue to allow selecting specific columns on the table page: #615 A workaround you can use today is to define a SQL view that selects just the tables you want. View pages behave exactly like tables in that they provide pagination by default. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
How to limit fields returned from the JSON API? 891969037 | |
846483426 | https://github.com/simonw/datasette/issues/1331#issuecomment-846483426 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0NjQ4MzQyNg== | simonw 9599 | 2021-05-23T00:57:30Z | 2021-05-23T00:57:30Z | OWNER | Here's an alpha release with updated dependencies: https://pypi.org/project/datasette/0.57a0/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
846482057 | https://github.com/simonw/datasette/issues/1331#issuecomment-846482057 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0NjQ4MjA1Nw== | simonw 9599 | 2021-05-23T00:39:55Z | 2021-05-23T00:39:55Z | OWNER |
Bumped that dependency in b64d87204612a84663616e075f542499a5d82a03 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
846481937 | https://github.com/simonw/datasette/issues/1331#issuecomment-846481937 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0NjQ4MTkzNw== | simonw 9599 | 2021-05-23T00:38:28Z | 2021-05-23T00:38:28Z | OWNER | I'm going to push an alpha release with the new dependencies shortly. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
846481896 | https://github.com/simonw/datasette/issues/1337#issuecomment-846481896 | https://api.github.com/repos/simonw/datasette/issues/1337 | MDEyOklzc3VlQ29tbWVudDg0NjQ4MTg5Ng== | simonw 9599 | 2021-05-23T00:37:52Z | 2021-05-23T00:37:52Z | OWNER | The tricky thing about this is that ideally I'd like this to link to a paginated set of results - but arbitrary SQL queries do not yet support pagination, see #856. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"More" link for facets that shows _facet_size=max results 898904402 | |
846481801 | https://github.com/simonw/datasette/issues/1332#issuecomment-846481801 | https://api.github.com/repos/simonw/datasette/issues/1332 | MDEyOklzc3VlQ29tbWVudDg0NjQ4MTgwMQ== | simonw 9599 | 2021-05-23T00:36:20Z | 2021-05-23T00:36:20Z | OWNER | Documentation:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_facet_size=X to increase number of facets results on the page 893890496 | |
846479730 | https://github.com/simonw/datasette/issues/1332#issuecomment-846479730 | https://api.github.com/repos/simonw/datasette/issues/1332 | MDEyOklzc3VlQ29tbWVudDg0NjQ3OTczMA== | simonw 9599 | 2021-05-23T00:11:31Z | 2021-05-23T00:11:31Z | OWNER | Here's the code in question: https://github.com/simonw/datasette/blob/5e9672c9bb33e41686472db4aa427168f9e67dbe/datasette/facets.py#L187-L210 It has access to the current request object as |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_facet_size=X to increase number of facets results on the page 893890496 | |
846479212 | https://github.com/simonw/datasette/issues/1332#issuecomment-846479212 | https://api.github.com/repos/simonw/datasette/issues/1332 | MDEyOklzc3VlQ29tbWVudDg0NjQ3OTIxMg== | simonw 9599 | 2021-05-23T00:07:46Z | 2021-05-23T00:07:46Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_facet_size=X to increase number of facets results on the page 893890496 | |
846479062 | https://github.com/simonw/datasette/issues/1332#issuecomment-846479062 | https://api.github.com/repos/simonw/datasette/issues/1332 | MDEyOklzc3VlQ29tbWVudDg0NjQ3OTA2Mg== | simonw 9599 | 2021-05-23T00:06:34Z | 2021-05-23T00:06:34Z | OWNER | A URL parameter to modify that facet size is a really good idea. I thought I had an issue open for "..." linking to more results but I can't find it now. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_facet_size=X to increase number of facets results on the page 893890496 | |
844250232 | https://github.com/dogsheep/github-to-sqlite/pull/59#issuecomment-844250232 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/59 | MDEyOklzc3VlQ29tbWVudDg0NDI1MDIzMg== | simonw 9599 | 2021-05-19T16:08:10Z | 2021-05-19T16:08:10Z | MEMBER | Thanks for catching this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Remove unneeded exists=True for -a/--auth flag. 771872303 | |
844249385 | https://github.com/dogsheep/github-to-sqlite/pull/61#issuecomment-844249385 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/61 | MDEyOklzc3VlQ29tbWVudDg0NDI0OTM4NQ== | simonw 9599 | 2021-05-19T16:07:06Z | 2021-05-19T16:07:06Z | MEMBER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
fixing typo in get cli help text 797108702 | |
843718859 | https://github.com/simonw/sqlite-utils/issues/253#issuecomment-843718859 | https://api.github.com/repos/simonw/sqlite-utils/issues/253 | MDEyOklzc3VlQ29tbWVudDg0MzcxODg1OQ== | simonw 9599 | 2021-05-19T03:31:47Z | 2021-05-19T03:31:47Z | OWNER | { "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
fixtures.db example error in sql-utils blog post 847423559 | ||
843716042 | https://github.com/simonw/sqlite-utils/issues/253#issuecomment-843716042 | https://api.github.com/repos/simonw/sqlite-utils/issues/253 | MDEyOklzc3VlQ29tbWVudDg0MzcxNjA0Mg== | simonw 9599 | 2021-05-19T03:29:04Z | 2021-05-19T03:29:04Z | OWNER | Thanks for pointing this out - the problem here is that these days the I'm going to update the blog post to instead use a copy of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
fixtures.db example error in sql-utils blog post 847423559 | |
843715502 | https://github.com/simonw/sqlite-utils/issues/259#issuecomment-843715502 | https://api.github.com/repos/simonw/sqlite-utils/issues/259 | MDEyOklzc3VlQ29tbWVudDg0MzcxNTUwMg== | simonw 9599 | 2021-05-19T03:27:33Z | 2021-05-19T03:27:33Z | OWNER | ``` % sqlite-utils insert test-big.db text big.json Error: table text has no column named colun Try using --alter to add additional columns ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Suggest the --alter option if a new column cannot be added 894948100 | |
843715308 | https://github.com/simonw/sqlite-utils/issues/256#issuecomment-843715308 | https://api.github.com/repos/simonw/sqlite-utils/issues/256 | MDEyOklzc3VlQ29tbWVudDg0MzcxNTMwOA== | simonw 9599 | 2021-05-19T03:26:54Z | 2021-05-19T03:26:54Z | OWNER | I decided to treat this as a usability bug: there's a workaround, which is adding |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
inserting with --nl errors with: sqlite3.OperationalError: table <table> has no column named <column> 861622839 | |
843708246 | https://github.com/simonw/sqlite-utils/issues/256#issuecomment-843708246 | https://api.github.com/repos/simonw/sqlite-utils/issues/256 | MDEyOklzc3VlQ29tbWVudDg0MzcwODI0Ng== | simonw 9599 | 2021-05-19T03:06:02Z | 2021-05-19T03:06:02Z | OWNER | Did you try running this with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
inserting with --nl errors with: sqlite3.OperationalError: table <table> has no column named <column> 861622839 | |
843705806 | https://github.com/simonw/sqlite-utils/pull/244#issuecomment-843705806 | https://api.github.com/repos/simonw/sqlite-utils/issues/244 | MDEyOklzc3VlQ29tbWVudDg0MzcwNTgwNg== | simonw 9599 | 2021-05-19T02:58:18Z | 2021-05-19T02:58:18Z | OWNER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Typo in upsert example 820468864 | |
843705721 | https://github.com/simonw/sqlite-utils/pull/245#issuecomment-843705721 | https://api.github.com/repos/simonw/sqlite-utils/issues/245 | MDEyOklzc3VlQ29tbWVudDg0MzcwNTcyMQ== | simonw 9599 | 2021-05-19T02:58:01Z | 2021-05-19T02:58:01Z | OWNER | Thanks very much. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Correct some typos 830803173 | |
843705533 | https://github.com/simonw/sqlite-utils/pull/254#issuecomment-843705533 | https://api.github.com/repos/simonw/sqlite-utils/issues/254 | MDEyOklzc3VlQ29tbWVudDg0MzcwNTUzMw== | simonw 9599 | 2021-05-19T02:57:22Z | 2021-05-19T02:57:22Z | OWNER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fix incorrect create-table cli description 857280617 | |
843702392 | https://github.com/simonw/sqlite-utils/pull/258#issuecomment-843702392 | https://api.github.com/repos/simonw/sqlite-utils/issues/258 | MDEyOklzc3VlQ29tbWVudDg0MzcwMjM5Mg== | simonw 9599 | 2021-05-19T02:47:37Z | 2021-05-19T02:47:37Z | OWNER | I'm going to merge this and add a test - thanks! |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fixing insert from JSON containing strings with non-ascii characters … 868191959 | |
843291675 | https://github.com/simonw/datasette/issues/856#issuecomment-843291675 | https://api.github.com/repos/simonw/datasette/issues/856 | MDEyOklzc3VlQ29tbWVudDg0MzI5MTY3NQ== | simonw 9599 | 2021-05-18T15:56:45Z | 2021-05-18T15:56:45Z | OWNER | Tables and views get "stream all rows" at the moment, so one workaround is to define a SQL view for your query - this only works for queries that don't take any parameters though (although you may be able to define a view and then pass it extra fields using the Datasette table interface, like on https://latest.datasette.io/fixtures/paginated_view?content_extra__contains=9) I've explored this problem in a bit more detail in https://githu.com/simonw/django-sql-dashboard and I think I have a pattern that could work. For your canned query, you could implement the pattern yourself by setting up two canned queries that look something like this:
You then need to write code which knows how to generate these queries - start with the first query with no Basically this is an implementation of keyset pagination with a smart client. When Datasette grows the ability to do this itself it will work by executing this mechanism inside the Python code, which is how the "stream all rows" option for tables works at the moment. |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Consider pagination of canned queries 642296989 | |
842497125 | https://github.com/simonw/datasette/issues/1331#issuecomment-842497125 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0MjQ5NzEyNQ== | simonw 9599 | 2021-05-17T17:20:15Z | 2021-05-17T17:20:15Z | OWNER | I wonder if there are any new 3.0 features we should be taking advantage of here that would justify pinning to 3.0 minimum? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
842495346 | https://github.com/simonw/datasette/issues/1331#issuecomment-842495346 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0MjQ5NTM0Ng== | simonw 9599 | 2021-05-17T17:17:19Z | 2021-05-17T17:17:19Z | OWNER | The tests are passing on #1324 so this may not require any code changes at all! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
842494844 | https://github.com/simonw/datasette/pull/1324#issuecomment-842494844 | https://api.github.com/repos/simonw/datasette/issues/1324 | MDEyOklzc3VlQ29tbWVudDg0MjQ5NDg0NA== | simonw 9599 | 2021-05-17T17:16:36Z | 2021-05-17T17:16:36Z | OWNER | Refs #1331. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update jinja2 requirement from <2.12.0,>=2.10.3 to >=2.10.3,<3.1.0 890073940 | |
842494332 | https://github.com/simonw/datasette/issues/1331#issuecomment-842494332 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0MjQ5NDMzMg== | simonw 9599 | 2021-05-17T17:15:45Z | 2021-05-17T17:16:04Z | OWNER | Datasette uses async templates which evidently have been improved in Jinja 2 3.0. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
834636796 | https://github.com/simonw/datasette/issues/1168#issuecomment-834636796 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDgzNDYzNjc5Ng== | simonw 9599 | 2021-05-07T17:22:52Z | 2021-05-07T17:22:52Z | OWNER | Related: Here's an implementation of a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
826041458 | https://github.com/simonw/datasette/issues/1308#issuecomment-826041458 | https://api.github.com/repos/simonw/datasette/issues/1308 | MDEyOklzc3VlQ29tbWVudDgyNjA0MTQ1OA== | simonw 9599 | 2021-04-24T06:07:01Z | 2021-04-24T06:07:01Z | OWNER | I can use ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Columns named "link" display in bold 866668415 | |
826040909 | https://github.com/simonw/datasette/issues/1308#issuecomment-826040909 | https://api.github.com/repos/simonw/datasette/issues/1308 | MDEyOklzc3VlQ29tbWVudDgyNjA0MDkwOQ== | simonw 9599 | 2021-04-24T06:01:21Z | 2021-04-24T06:01:21Z | OWNER | Demo:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Columns named "link" display in bold 866668415 | |
826040676 | https://github.com/simonw/datasette/issues/1308#issuecomment-826040676 | https://api.github.com/repos/simonw/datasette/issues/1308 | MDEyOklzc3VlQ29tbWVudDgyNjA0MDY3Ng== | simonw 9599 | 2021-04-24T05:58:35Z | 2021-04-24T05:58:35Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Columns named "link" display in bold 866668415 | ||
817301355 | https://github.com/simonw/datasette/issues/1295#issuecomment-817301355 | https://api.github.com/repos/simonw/datasette/issues/1295 | MDEyOklzc3VlQ29tbWVudDgxNzMwMTM1NQ== | simonw 9599 | 2021-04-11T12:40:25Z | 2021-04-11T12:41:06Z | OWNER | I could have a page about error codes in the docs, then have Can enforce these with a documentation unit test. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Errors should have links to further information 855296937 | |
813480043 | https://github.com/simonw/datasette/issues/1293#issuecomment-813480043 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzQ4MDA0Mw== | simonw 9599 | 2021-04-05T16:16:17Z | 2021-04-05T16:16:17Z | OWNER | https://latest.datasette.io/fixtures?sql=explain+select+*+from+paginated_view will be an interesting test query - because
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813445512 | https://github.com/simonw/datasette/issues/1293#issuecomment-813445512 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzQ0NTUxMg== | simonw 9599 | 2021-04-05T15:11:40Z | 2021-04-05T15:11:40Z | OWNER | Here's some older example code that works with opcodes from Python, in this case to output indexes used by a query: https://github.com/plasticityai/supersqlite/blob/master/supersqlite/idxchk.py |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813438771 | https://github.com/simonw/datasette/issues/1293#issuecomment-813438771 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzQzODc3MQ== | simonw 9599 | 2021-04-05T14:58:48Z | 2021-04-05T14:58:48Z | OWNER | I may need to do something special for rowid columns - there is a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813167335 | https://github.com/simonw/datasette/issues/620#issuecomment-813167335 | https://api.github.com/repos/simonw/datasette/issues/620 | MDEyOklzc3VlQ29tbWVudDgxMzE2NzMzNQ== | simonw 9599 | 2021-04-05T03:57:22Z | 2021-04-05T03:57:22Z | OWNER | This may be obsoleted by #1293 - it looks like I may be able to auto-detect these foreign keys for arbitrary queries after all. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for indicating foreign key relationships in the table and query page URLs 520667773 | |
813164282 | https://github.com/simonw/datasette/issues/1293#issuecomment-813164282 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzE2NDI4Mg== | simonw 9599 | 2021-04-05T03:42:26Z | 2021-04-05T03:42:36Z | OWNER | Extracting variables with this trick appears to work OK, but you have to pass the correct variables to the ```pycon
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813162622 | https://github.com/simonw/datasette/issues/1293#issuecomment-813162622 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzE2MjYyMg== | simonw 9599 | 2021-04-05T03:34:24Z | 2021-04-05T03:40:35Z | OWNER | This almost works, but throws errors with some queries (anything with a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813134637 | https://github.com/simonw/datasette/issues/1293#issuecomment-813134637 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzEzNDYzNw== | simonw 9599 | 2021-04-05T01:21:59Z | 2021-04-05T01:21:59Z | OWNER | http://www.sqlite.org/draft/lang_explain.html says:
I'm going to keep exploring this though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813134227 | https://github.com/simonw/datasette/issues/1293#issuecomment-813134227 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzEzNDIyNw== | simonw 9599 | 2021-04-05T01:19:31Z | 2021-04-05T01:19:31Z | OWNER | | addr | opcode | p1 | p2 | p3 | p4 | p5 | comment | |--------|---------------|------|------|------|-----------------------|------|-----------| | 0 | Init | 0 | 47 | 0 | | 00 | | | 1 | OpenRead | 0 | 51 | 0 | 15 | 00 | | | 2 | Integer | 15 | 2 | 0 | | 00 | | | 3 | Once | 0 | 15 | 0 | | 00 | | | 4 | OpenEphemeral | 2 | 1 | 0 | k(1,) | 00 | | | 5 | VOpen | 1 | 0 | 0 | vtab:3E692C362158 | 00 | | | 6 | String8 | 0 | 5 | 0 | CPAD_2020a_SuperUnits | 00 | | | 7 | SCopy | 7 | 6 | 0 | | 00 | | | 8 | Integer | 2 | 3 | 0 | | 00 | | | 9 | Integer | 2 | 4 | 0 | | 00 | | | 10 | VFilter | 1 | 15 | 3 | | 00 | | | 11 | Rowid | 1 | 8 | 0 | | 00 | | | 12 | MakeRecord | 8 | 1 | 9 | C | 00 | | | 13 | IdxInsert | 2 | 9 | 8 | 1 | 00 | | | 14 | VNext | 1 | 11 | 0 | | 00 | | | 15 | Return | 2 | 0 | 0 | | 00 | | | 16 | Rewind | 2 | 46 | 0 | | 00 | | | 17 | Column | 2 | 0 | 1 | | 00 | | | 18 | IsNull | 1 | 45 | 0 | | 00 | | | 19 | SeekRowid | 0 | 45 | 1 | | 00 | | | 20 | Column | 0 | 2 | 11 | | 00 | | | 21 | Function0 | 1 | 10 | 9 | like(2) | 02 | | | 22 | IfNot | 9 | 45 | 1 | | 00 | | | 23 | Column | 0 | 14 | 13 | | 00 | | | 24 | Function0 | 1 | 12 | 9 | intersects(2) | 02 | | | 25 | Ne | 14 | 45 | 9 | | 51 | | | 26 | Column | 0 | 14 | 9 | | 00 | | | 27 | Function0 | 0 | 9 | 15 | asgeojson(1) | 01 | | | 28 | Rowid | 0 | 16 | 0 | | 00 | | | 29 | Column | 0 | 1 | 17 | | 00 | | | 30 | Column | 0 | 2 | 18 | | 00 | | | 31 | Column | 0 | 3 | 19 | | 00 | | | 32 | Column | 0 | 4 | 20 | | 00 | | | 33 | Column | 0 | 5 | 21 | | 00 | | | 34 | Column | 0 | 6 | 22 | | 00 | | | 35 | Column | 0 | 7 | 23 | | 00 | | | 36 | Column | 0 | 8 | 24 | | 00 | | | 37 | Column | 0 | 9 | 25 | | 00 | | | 38 | Column | 0 | 10 | 26 | | 00 | | | 39 | Column | 0 | 11 | 27 | | 00 | | | 40 | RealAffinity | 27 | 0 | 0 | | 00 | | | 41 | Column | 0 | 12 | 28 | | 00 | | | 42 | Column | 0 | 13 | 29 | | 00 | | | 43 | Column | 0 | 14 | 30 | | 00 | | | 44 | ResultRow | 15 | 16 | 0 | | 00 | | | 45 | Next | 2 | 17 | 0 | | 00 | | | 46 | Halt | 0 | 0 | 0 | | 00 | | | 47 | Transaction | 0 | 0 | 265 | 0 | 01 | | | 48 | Variable | 1 | 31 | 0 | :freedraw | 00 | | | 49 | Function0 | 1 | 31 | 7 | geomfromgeojson(1) | 01 | | | 50 | String8 | 0 | 10 | 0 | %mini% | 00 | | | 51 | Variable | 1 | 32 | 0 | :freedraw | 00 | | | 52 | Function0 | 1 | 32 | 12 | geomfromgeojson(1) | 01 | | | 53 | Integer | 1 | 14 | 0 | | 00 | | | 54 | Goto | 0 | 1 | 0 | | 00 | | Essential documentation for understanding that output: https://www.sqlite.org/opcode.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813134072 | https://github.com/simonw/datasette/issues/1293#issuecomment-813134072 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzEzNDA3Mg== | simonw 9599 | 2021-04-05T01:18:37Z | 2021-04-05T01:18:37Z | OWNER | Had a fantastic suggestion on the SQLite forum: it might be possible to get what I want by interpreting the opcodes output by Copying the reply I posted to this thread: That's really useful, thanks! It looks like it might be possible for me to reconstruct where each column came from using the It looks like the opcodes I need to inspect are
The The I think this might work! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813116177 | https://github.com/simonw/datasette/issues/1293#issuecomment-813116177 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExNjE3Nw== | simonw 9599 | 2021-04-04T23:31:00Z | 2021-04-04T23:31:00Z | OWNER | Sadly it doesn't do what I need. This query should only return one column, but instead I get back every column that was consulted by the query: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813115607 | https://github.com/simonw/datasette/issues/1293#issuecomment-813115607 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExNTYwNw== | simonw 9599 | 2021-04-04T23:25:15Z | 2021-04-04T23:25:15Z | OWNER | Oh wow, I just spotted https://github.com/macbre/sql-metadata
It's for MySQL, PostgreSQL and Hive right now but maybe getting it working with SQLite wouldn't be too hard? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813115414 | https://github.com/simonw/datasette/issues/1293#issuecomment-813115414 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExNTQxNA== | simonw 9599 | 2021-04-04T23:23:34Z | 2021-04-04T23:23:34Z | OWNER | The other approach I considered for this was to have my own SQL query parser running in Python, which could pick apart a complex query and figure out which column was sourced from which table. I dropped this idea because it felt that the moment A Python parser approach might be good enough to handle a subset of queries - those that don't use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813114933 | https://github.com/simonw/datasette/issues/1293#issuecomment-813114933 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExNDkzMw== | simonw 9599 | 2021-04-04T23:19:22Z | 2021-04-04T23:19:22Z | OWNER | I asked about this on the SQLite forum: https://sqlite.org/forum/forumpost/0180277fb7 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813113653 | https://github.com/simonw/datasette/issues/1293#issuecomment-813113653 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExMzY1Mw== | simonw 9599 | 2021-04-04T23:10:49Z | 2021-04-04T23:10:49Z | OWNER | One option I've not fully explored yet: could I write my own custom SQLite C extension which exposes this functionality as a callable function? Then I could load that extension and run a SQL query something like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813113403 | https://github.com/simonw/datasette/issues/1293#issuecomment-813113403 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExMzQwMw== | simonw 9599 | 2021-04-04T23:08:48Z | 2021-04-04T23:08:48Z | OWNER | Worth noting that adding |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813113218 | https://github.com/simonw/datasette/issues/1293#issuecomment-813113218 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExMzIxOA== | simonw 9599 | 2021-04-04T23:07:25Z | 2021-04-04T23:07:25Z | OWNER | Here are all of the available constants:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
813113175 | https://github.com/simonw/datasette/issues/1293#issuecomment-813113175 | https://api.github.com/repos/simonw/datasette/issues/1293 | MDEyOklzc3VlQ29tbWVudDgxMzExMzE3NQ== | simonw 9599 | 2021-04-04T23:07:01Z | 2021-04-04T23:07:01Z | OWNER | A more promising route I found involved the ```pycon
Then I found a snag:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 |
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]);
issue >30