issue_comments
14 rows where author_association = "OWNER", "created_at" is on date 2019-03-17 and user = 9599 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: issue_url, body, created_at (date)
user 1
- simonw · 14 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
473726527 | https://github.com/simonw/datasette/issues/419#issuecomment-473726527 | https://api.github.com/repos/simonw/datasette/issues/419 | MDEyOklzc3VlQ29tbWVudDQ3MzcyNjUyNw== | simonw 9599 | 2019-03-17T23:28:41Z | 2019-05-16T14:54:50Z | OWNER | I've added the
This feature is incomplete though. Some extra changes I need to make:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default to opening files in mutable mode, special option for immutable files 421551434 | |
473708724 | https://github.com/simonw/datasette/issues/419#issuecomment-473708724 | https://api.github.com/repos/simonw/datasette/issues/419 | MDEyOklzc3VlQ29tbWVudDQ3MzcwODcyNA== | simonw 9599 | 2019-03-17T19:55:21Z | 2019-05-16T03:35:59Z | OWNER | Thinking about this further: I think I may have made a mistake establishing "immutable" as the default mode for databases opened by Datasette. What would it look like if files were NOT opened in immutable mode by default? Maybe the command to start Datasette looks like this:
So regular file arguments are treated as mutable (and opened in The
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default to opening files in mutable mode, special option for immutable files 421551434 | |
473726619 | https://github.com/simonw/datasette/issues/421#issuecomment-473726619 | https://api.github.com/repos/simonw/datasette/issues/421 | MDEyOklzc3VlQ29tbWVudDQ3MzcyNjYxOQ== | simonw 9599 | 2019-03-17T23:29:47Z | 2019-03-17T23:29:47Z | OWNER | Needed for #419 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation for ?_hash=1 and Datasette's hashed URL caching 421985685 | |
473726587 | https://github.com/simonw/datasette/issues/420#issuecomment-473726587 | https://api.github.com/repos/simonw/datasette/issues/420 | MDEyOklzc3VlQ29tbWVudDQ3MzcyNjU4Nw== | simonw 9599 | 2019-03-17T23:29:22Z | 2019-03-17T23:29:22Z | OWNER | Needed for #419 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fix all the places that currently use .inspect() data 421971339 | |
473724868 | https://github.com/simonw/datasette/issues/418#issuecomment-473724868 | https://api.github.com/repos/simonw/datasette/issues/418 | MDEyOklzc3VlQ29tbWVudDQ3MzcyNDg2OA== | simonw 9599 | 2019-03-17T23:07:31Z | 2019-03-17T23:07:31Z | OWNER | The design of this feature is discussed extensively in the comments on pull request #416 Some demos:
``` ~ $ curl -i 'https://latest.datasette.io/fixtures-dd88475/facetable' HTTP/2 200 date: Sun, 17 Mar 2019 23:05:21 GMT content-type: text/html; charset=utf-8 content-length: 17555 cache-control: max-age=31536000 </html>~ $ curl -i 'https://latest.datasette.io/fixtures/facetable' HTTP/2 200 date: Sun, 17 Mar 2019 23:05:40 GMT content-type: text/html; charset=utf-8 content-length: 17410 cache-control: max-age=5 ``` There are now three config settings relevant to the above:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Hashed URLs should be optional 421548881 | |
473717052 | https://github.com/simonw/datasette/pull/416#issuecomment-473717052 | https://api.github.com/repos/simonw/datasette/issues/416 | MDEyOklzc3VlQ29tbWVudDQ3MzcxNzA1Mg== | simonw 9599 | 2019-03-17T21:32:24Z | 2019-03-17T21:33:16Z | OWNER | Since this feature is now controlled by a config setting, I'm inclined to make it also available via a URL parameter. If you hit this URL:
We can redirect to:
In this way developers can opt-in to a hashed (and hence far-future cached) response on a per-query basis. This option won't be available against mutable databases though, which are coming in #419 This means that the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
URL hashing now optional: turn on with --config hash_urls:1 (#418) 421348146 | |
473715254 | https://github.com/simonw/datasette/pull/416#issuecomment-473715254 | https://api.github.com/repos/simonw/datasette/issues/416 | MDEyOklzc3VlQ29tbWVudDQ3MzcxNTI1NA== | simonw 9599 | 2019-03-17T21:11:37Z | 2019-03-17T21:11:37Z | OWNER | The code for this has got a bit tricky. I need to make a decision at some point as to if the current request is a hashed_url request (if it includes a DB hash in the URL which is the current correct hash). I then need to be able to use that fact to decide which default TTL value to apply when returning the response. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
URL hashing now optional: turn on with --config hash_urls:1 (#418) 421348146 | |
473714545 | https://github.com/simonw/datasette/pull/416#issuecomment-473714545 | https://api.github.com/repos/simonw/datasette/issues/416 | MDEyOklzc3VlQ29tbWVudDQ3MzcxNDU0NQ== | simonw 9599 | 2019-03-17T21:03:08Z | 2019-03-17T21:04:17Z | OWNER | I'm going to introduce a new config setting: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
URL hashing now optional: turn on with --config hash_urls:1 (#418) 421348146 | |
473713946 | https://github.com/simonw/datasette/issues/420#issuecomment-473713946 | https://api.github.com/repos/simonw/datasette/issues/420 | MDEyOklzc3VlQ29tbWVudDQ3MzcxMzk0Ng== | simonw 9599 | 2019-03-17T20:56:38Z | 2019-03-17T20:58:17Z | OWNER | Some examples: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fix all the places that currently use .inspect() data 421971339 | |
473713363 | https://github.com/simonw/datasette/issues/419#issuecomment-473713363 | https://api.github.com/repos/simonw/datasette/issues/419 | MDEyOklzc3VlQ29tbWVudDQ3MzcxMzM2Mw== | simonw 9599 | 2019-03-17T20:49:39Z | 2019-03-17T20:52:46Z | OWNER | And a really important difference: the whole model of caching inspect data no longer works for mutable files, because another process might make a change to the database schema (adding a new table for example). https://fivethirtyeight.datasettes.com/-/inspect So everywhere that uses I'll track this as a separate ticket. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default to opening files in mutable mode, special option for immutable files 421551434 | |
473712820 | https://github.com/simonw/datasette/issues/419#issuecomment-473712820 | https://api.github.com/repos/simonw/datasette/issues/419 | MDEyOklzc3VlQ29tbWVudDQ3MzcxMjgyMA== | simonw 9599 | 2019-03-17T20:43:23Z | 2019-03-17T20:43:51Z | OWNER | So the differences here are:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default to opening files in mutable mode, special option for immutable files 421551434 | |
473709883 | https://github.com/simonw/datasette/issues/419#issuecomment-473709883 | https://api.github.com/repos/simonw/datasette/issues/419 | MDEyOklzc3VlQ29tbWVudDQ3MzcwOTg4Mw== | simonw 9599 | 2019-03-17T20:09:47Z | 2019-03-17T20:37:45Z | OWNER | Could I persist the last calculated count for a table and somehow detect if that table has been changed in any way by another process, hence invalidating the cached count (and potentially scheduling a new count)? https://www.sqlite.org/c3ref/update_hook.html says that Also this hook is not exposed in the Python So on further research, I think the answer is no: I should assume that it won't be possible to cache counts and magically invalidate the cache when the underlying file is changed by another process. Instead I need to assume that counts will be an expensive operation. As such, I can introduce a time limit on counts and use that anywhere a count is displayed. If the time limit is exceeded by the That said... running It would be really neat if I could generate a lower bound count in a limited amount of time. If I counted up to 4m rows before the timeout I could show "more than 4m rows". No idea if that would be possible though. Relevant: https://stackoverflow.com/questions/8988915/sqlite-count-slow-on-big-tables - reports of very slow counts on 6GB database file. Consensus seems to be "yeah, that's just how SQLite is built" - though there was a suggestion that you can use Also relevant: http://sqlite.1065341.n5.nabble.com/sqlite3-performance-on-select-count-very-slow-for-16-GB-file-td80176.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default to opening files in mutable mode, special option for immutable files 421551434 | |
473709815 | https://github.com/simonw/datasette/issues/418#issuecomment-473709815 | https://api.github.com/repos/simonw/datasette/issues/418 | MDEyOklzc3VlQ29tbWVudDQ3MzcwOTgxNQ== | simonw 9599 | 2019-03-17T20:08:31Z | 2019-03-17T20:08:31Z | OWNER | In #419 I'm now proposing that Datasette default to opening files in "mutable" mode, in which case it would not make sense to support hash URLs for those files at all. So actually this feature will only be available for files that are explicitly opened in immutable mode. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Hashed URLs should be optional 421548881 | |
473708941 | https://github.com/simonw/datasette/issues/419#issuecomment-473708941 | https://api.github.com/repos/simonw/datasette/issues/419 | MDEyOklzc3VlQ29tbWVudDQ3MzcwODk0MQ== | simonw 9599 | 2019-03-17T19:58:11Z | 2019-03-17T19:58:11Z | OWNER | Some problems to solve:
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default to opening files in mutable mode, special option for immutable files 421551434 |
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 5