issue_comments
8,358 rows where author_association = "OWNER" sorted by updated_at descending
This data as json, CSV (advanced)
issue >30
- Updated Dockerfile with SpatiaLite version 5.0 45
- Redesign default .json format 41
- Port Datasette to ASGI 38
- Authentication (and permissions) as a core concept 38
- JavaScript plugin hooks mechanism similar to pluggy 38
- await datasette.client.get(path) mechanism for executing internal requests 33
- Maintain an in-memory SQLite table of connected databases and their tables 31
- Ability to sort (and paginate) by column 29
- Export to CSV 27
- Ability for a canned query to write to the database 26
- table.transform() method for advanced alter table 26
- Proof of concept for Datasette on AWS Lambda with EFS 25
- Redesign register_output_renderer callback 24
- Support cross-database joins 23
- "datasette insert" command and plugin hook 23
- Datasette Plugins 21
- table.extract(...) method and "sqlite-utils extract" command 21
- "flash messages" mechanism 20
- Move CI to GitHub Issues 20
- load_template hook doesn't work for include/extends 20
- ?sort=colname~numeric to sort by by column cast to real 19
- Better way of representing binary data in .csv output 19
- Introspect if table is FTS4 or FTS5 19
- Mechanism for storing metadata in _metadata tables 19
- Ability to ship alpha and beta releases 18
- Magic parameters for canned queries 18
- Figure out why SpatiaLite 5.0 hangs the database page on Linux 18
- datasette.client internal requests mechanism 17
- Show column metadata plus links for foreign keys on arbitrary query results 17
- Facets 16
- …
user 1
- simonw 4,523
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
851131999 | https://github.com/simonw/datasette/issues/1349#issuecomment-851131999 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MTEzMTk5OQ== | simonw 9599 | 2021-05-31T02:57:25Z | 2021-05-31T02:57:25Z | OWNER | I'm having a really hard time figuring out how to unit test this - ideally I'd monitor which SQL queries are executed using the tracing mechanism, but that's not set up to work with anything other than HTML or JSON outputs: https://github.com/simonw/datasette/blob/c5ae1197a208e1b034c88882e3ac865813a40980/datasette/tracer.py#L125-L134 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | |
851129464 | https://github.com/simonw/datasette/issues/1349#issuecomment-851129464 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MTEyOTQ2NA== | simonw 9599 | 2021-05-31T02:48:06Z | 2021-05-31T02:48:06Z | OWNER | Actually there is precedent for swapping out |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | |
851129019 | https://github.com/simonw/datasette/issues/1349#issuecomment-851129019 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MTEyOTAxOQ== | simonw 9599 | 2021-05-31T02:46:38Z | 2021-05-31T02:46:38Z | OWNER | I think the right way to do this is to construct a new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | |
851128524 | https://github.com/simonw/datasette/issues/1349#issuecomment-851128524 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MTEyODUyNA== | simonw 9599 | 2021-05-31T02:44:44Z | 2021-05-31T02:44:44Z | OWNER | Now that I have |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | |
851127314 | https://github.com/simonw/datasette/issues/1345#issuecomment-851127314 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTEyNzMxNA== | simonw 9599 | 2021-05-31T02:40:26Z | 2021-05-31T02:40:44Z | OWNER | Demo: https://latest.datasette.io/fixtures/facetable?_facet=state&_nocol=state - the state column is not selected but facet by state still works: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
851122934 | https://github.com/simonw/datasette/issues/1350#issuecomment-851122934 | https://api.github.com/repos/simonw/datasette/issues/1350 | MDEyOklzc3VlQ29tbWVudDg1MTEyMjkzNA== | simonw 9599 | 2021-05-31T02:23:47Z | 2021-05-31T02:23:47Z | OWNER | I think I considered So it definitely needs to be a separate named option. Actually, since I have |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nofacets=1 query string argument for disabling facets and suggested facets 906977719 | |
851120306 | https://github.com/simonw/datasette/issues/1345#issuecomment-851120306 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTEyMDMwNg== | simonw 9599 | 2021-05-31T02:14:36Z | 2021-05-31T02:14:36Z | OWNER | Yes! This was easier than I thought. I'm going with that solution - where facets are calculated against all columns, ignoring |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
851117233 | https://github.com/simonw/datasette/issues/1345#issuecomment-851117233 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTExNzIzMw== | simonw 9599 | 2021-05-31T02:04:35Z | 2021-05-31T02:04:35Z | OWNER | That long-term solution may not be too difficult. The facets are calculated against And used here: Crucially, |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
851116105 | https://github.com/simonw/datasette/issues/1345#issuecomment-851116105 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTExNjEwNQ== | simonw 9599 | 2021-05-31T02:00:44Z | 2021-05-31T02:00:44Z | OWNER | Maybe there's a short-term and longer-term solution for this - where the long-term solution is to use different columns in the faceting selects, while the short-term solution is to disable "Hide this column" for certain things. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
851115805 | https://github.com/simonw/datasette/issues/1345#issuecomment-851115805 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTExNTgwNQ== | simonw 9599 | 2021-05-31T01:59:39Z | 2021-05-31T01:59:39Z | OWNER | Maybe there's a concept here of the columns that are required by a selected facet? Those can then be included as I can also use them to provide a better error message than "no such column: state" - I can verify that There is one other option here: I could still include the columns that are known to be needed for faceting in the faceting SQL queries, but leave them out of the query that is used to return the results! That's actually a pretty tempting (albeit more complex) option. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
851114806 | https://github.com/simonw/datasette/issues/1345#issuecomment-851114806 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTExNDgwNg== | simonw 9599 | 2021-05-31T01:55:56Z | 2021-05-31T01:55:56Z | OWNER | Two options here:
I think I like the first option more. I could partially implement that in the Instead the JavaScript should look for evidence in the DOM that specific facets are enabled. This could also help me cover other types of faceting, such as |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
851113886 | https://github.com/simonw/datasette/issues/1345#issuecomment-851113886 | https://api.github.com/repos/simonw/datasette/issues/1345 | MDEyOklzc3VlQ29tbWVudDg1MTExMzg4Ng== | simonw 9599 | 2021-05-31T01:52:27Z | 2021-05-31T01:52:27Z | OWNER | Related issue: visit https://latest.datasette.io/fixtures/facetable?_facet=state and click "Hide this column" on the "state" cog menu and you get https://latest.datasette.io/fixtures/facetable?_facet=state&_nocol=state which shows an error:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_nocol= does not interact well with default facets 904071938 | |
850778311 | https://github.com/simonw/datasette/issues/1349#issuecomment-850778311 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MDc3ODMxMQ== | simonw 9599 | 2021-05-29T06:12:21Z | 2021-05-29T06:12:21Z | OWNER | It's not just facets, I think it's trying to execute suggested facets too! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | |
850778273 | https://github.com/simonw/datasette/issues/1349#issuecomment-850778273 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MDc3ODI3Mw== | simonw 9599 | 2021-05-29T06:11:59Z | 2021-05-29T06:11:59Z | OWNER | Related issue: https://github.com/simonw/datasette/issues/263 - "Facets should not execute for ?shape=array|object" |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | |
850778230 | https://github.com/simonw/datasette/issues/1349#issuecomment-850778230 | https://api.github.com/repos/simonw/datasette/issues/1349 | MDEyOklzc3VlQ29tbWVudDg1MDc3ODIzMA== | simonw 9599 | 2021-05-29T06:11:28Z | 2021-05-29T06:11:28Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV ?_stream=on redundantly calculates facets for every page 906385991 | ||
850772428 | https://github.com/simonw/sqlite-utils/issues/250#issuecomment-850772428 | https://api.github.com/repos/simonw/sqlite-utils/issues/250 | MDEyOklzc3VlQ29tbWVudDg1MDc3MjQyOA== | simonw 9599 | 2021-05-29T05:16:02Z | 2021-05-29T05:28:57Z | OWNER | I needed to find some CSV files on my computer with a BOM at the beginning - I figured out this recipe:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle byte order marks (BOMs) in CSV files 838148087 | |
850771264 | https://github.com/simonw/sqlite-utils/issues/250#issuecomment-850771264 | https://api.github.com/repos/simonw/sqlite-utils/issues/250 | MDEyOklzc3VlQ29tbWVudDg1MDc3MTI2NA== | simonw 9599 | 2021-05-29T05:06:13Z | 2021-05-29T05:06:13Z | OWNER | The other option is to check if the file starts with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle byte order marks (BOMs) in CSV files 838148087 | |
850771017 | https://github.com/simonw/sqlite-utils/issues/250#issuecomment-850771017 | https://api.github.com/repos/simonw/sqlite-utils/issues/250 | MDEyOklzc3VlQ29tbWVudDg1MDc3MTAxNw== | simonw 9599 | 2021-05-29T05:04:28Z | 2021-05-29T05:04:28Z | OWNER | https://stackoverflow.com/a/44573867/6083 says:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle byte order marks (BOMs) in CSV files 838148087 | |
850769067 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850769067 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2OTA2Nw== | simonw 9599 | 2021-05-29T04:48:10Z | 2021-05-29T04:48:10Z | OWNER | I confirmed and it's possible to have a SQLite column with a hyphen at the start, confirmed using: ``` % sqlite-utils create-table demo.db demo -- id integer name text -blah integer % sqlite-utils tables --schema demo.db -t table schema demo CREATE TABLE [demo] ( [id] INTEGER, [name] TEXT, [-blah] INTEGER ) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850768315 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850768315 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2ODMxNQ== | simonw 9599 | 2021-05-29T04:39:33Z | 2021-05-29T04:39:33Z | OWNER | This doesn't work:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850767210 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850767210 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NzIxMA== | simonw 9599 | 2021-05-29T04:26:26Z | 2021-05-29T04:28:31Z | OWNER | It's weird having to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850766552 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850766552 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NjU1Mg== | simonw 9599 | 2021-05-29T04:20:40Z | 2021-05-29T04:24:01Z | OWNER |
Example output: https://covid-19.datasettes.com/covid?sql=select+*+from+pragma_index_xinfo%28%27idx_ny_times_us_counties_date%27%29 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850766335 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850766335 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NjMzNQ== | simonw 9599 | 2021-05-29T04:18:19Z | 2021-05-29T04:18:19Z | OWNER | Annoyingly the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850765450 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850765450 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NTQ1MA== | simonw 9599 | 2021-05-29T04:09:13Z | 2021-05-29T04:09:13Z | OWNER | Decisions: for the Python API I'm going with For the CLI I'm going to do the "-age" thing. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850765291 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850765291 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NTI5MQ== | simonw 9599 | 2021-05-29T04:07:48Z | 2021-05-29T04:08:21Z | OWNER | For the CLI version I could say that you can use a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850765050 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850765050 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NTA1MA== | simonw 9599 | 2021-05-29T04:05:24Z | 2021-05-29T04:05:40Z | OWNER | Need to solve this for the CLI tool too. Currently that works like this: https://sqlite-utils.datasette.io/en/stable/cli.html#creating-indexes
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850764700 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850764700 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NDcwMA== | simonw 9599 | 2021-05-29T04:02:10Z | 2021-05-29T04:02:10Z | OWNER | I could use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850764655 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850764655 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NDY1NQ== | simonw 9599 | 2021-05-29T04:01:41Z | 2021-05-29T04:01:41Z | OWNER | Maybe:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850764594 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850764594 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NDU5NA== | simonw 9599 | 2021-05-29T04:00:54Z | 2021-05-29T04:00:54Z | OWNER | A few options: ```python db["dogs"].create_index([("age", "desc"), "name"]) db["dogs"].create_index([desc("age"), "name"]) db["dogs"].create_index([db.desc("age"), "name"])
I don't like using the term |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850764253 | https://github.com/simonw/sqlite-utils/issues/260#issuecomment-850764253 | https://api.github.com/repos/simonw/sqlite-utils/issues/260 | MDEyOklzc3VlQ29tbWVudDg1MDc2NDI1Mw== | simonw 9599 | 2021-05-29T03:57:54Z | 2021-05-29T03:57:54Z | OWNER | The problem here is differentiating between a column with the name This won't work:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support creating descending order indexes 906330187 | |
850583584 | https://github.com/simonw/datasette/pull/1296#issuecomment-850583584 | https://api.github.com/repos/simonw/datasette/issues/1296 | MDEyOklzc3VlQ29tbWVudDg1MDU4MzU4NA== | simonw 9599 | 2021-05-28T18:06:11Z | 2021-05-28T18:06:11Z | OWNER |
That's a huge surprise to me! And most welcome. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile: use Ubuntu 20.10 as base 855446829 | |
850059328 | https://github.com/simonw/datasette/pull/1346#issuecomment-850059328 | https://api.github.com/repos/simonw/datasette/issues/1346 | MDEyOklzc3VlQ29tbWVudDg1MDA1OTMyOA== | simonw 9599 | 2021-05-28T02:08:10Z | 2021-05-28T02:09:25Z | OWNER | This is the current test failure, but it actually another problem that we don't have tests in place for errors with different formats and shapes: ``` def test_magic_parameters_cannot_be_used_in_arbitrary_queries(magic_parameters_client): response = magic_parameters_client.get( "/data.json?sql=select+:_header_host&_shape=array" ) assert 400 == response.status
The test fails because |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-display user's query with an error message if an error occurs 904537568 | |
850059607 | https://github.com/simonw/datasette/issues/619#issuecomment-850059607 | https://api.github.com/repos/simonw/datasette/issues/619 | MDEyOklzc3VlQ29tbWVudDg1MDA1OTYwNw== | simonw 9599 | 2021-05-28T02:08:58Z | 2021-05-28T02:08:58Z | OWNER | Remaining work will happen in #1346 |
{ "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 | |
850058851 | https://github.com/simonw/datasette/pull/1346#issuecomment-850058851 | https://api.github.com/repos/simonw/datasette/issues/1346 | MDEyOklzc3VlQ29tbWVudDg1MDA1ODg1MQ== | simonw 9599 | 2021-05-28T02:06:46Z | 2021-05-28T02:06:46Z | OWNER | The one test failure here actually illustrates a larger problem: if the user specifies Prior to this change we return the following JSON:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-display user's query with an error message if an error occurs 904537568 | |
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 | |
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 |
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]);
updated_at (date) >30 ✖