issue_comments
14 rows where author_association = "OWNER" and issue = 1573424830 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: created_at (date), updated_at (date)
issue 1
- Refactor out the keyset pagination code · 14 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1421784930 | https://github.com/simonw/datasette/issues/2019#issuecomment-1421784930 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5Uvrdi | simonw 9599 | 2023-02-08T01:28:25Z | 2023-02-08T01:40:46Z | OWNER | Rather than duplicate this rather awful hack: I'm tempted to say that the code that calls the new pagination helper needs to ensure that the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1421600789 | https://github.com/simonw/datasette/issues/2019#issuecomment-1421600789 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5Uu-gV | simonw 9599 | 2023-02-07T23:12:40Z | 2023-02-07T23:16:20Z | OWNER |
The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1421274434 | https://github.com/simonw/datasette/issues/2019#issuecomment-1421274434 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5Utu1C | simonw 9599 | 2023-02-07T18:42:42Z | 2023-02-07T18:42:42Z | OWNER | I'm going to build completely separate tests for this in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1420109153 | https://github.com/simonw/datasette/issues/2019#issuecomment-1420109153 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UpSVh | simonw 9599 | 2023-02-07T02:32:36Z | 2023-02-07T02:32:36Z | OWNER | Doing this as a class makes sense to me. There are a few steps:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1420106315 | https://github.com/simonw/datasette/issues/2019#issuecomment-1420106315 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UpRpL | simonw 9599 | 2023-02-07T02:28:03Z | 2023-02-07T02:28:36Z | OWNER | So I think I can write an abstraction that applies keyset pagination to ANY arbitrary SQL query provided it is given the query, the existing params (so it can pick names for the new params that won't overlap with them), the desired sort order, any existing Those tie breakers will be either the primary key(s) or What about the case of SQL views, where offset/limit should be used instead? I'm inclined to have that as a separate pagination abstraction entirely, with the calling code deciding which pagination helper to use based on if keyset pagination makes sense or not. Might be easier to design a class structure for this starting with Might put these in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1420104254 | https://github.com/simonw/datasette/issues/2019#issuecomment-1420104254 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UpRI- | simonw 9599 | 2023-02-07T02:24:46Z | 2023-02-07T02:24:46Z | OWNER | Even more complicated: https://latest.datasette.io/fixtures/sortable?sortable_with_nulls__notnull=1&_next=0~2E692704598586882%2Ce%2Cr&_sort=sortable_with_nulls_2 The rewritten SQL for that is:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1420101175 | https://github.com/simonw/datasette/issues/2019#issuecomment-1420101175 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UpQY3 | simonw 9599 | 2023-02-07T02:22:11Z | 2023-02-07T02:22:11Z | OWNER | A more complex example: https://latest.datasette.io/fixtures/sortable?_next=0~2E2650566289400591%2Ca%2Cu&_sort=sortable_with_nulls_2 SQL:
Rewritten with a subselect:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1420094396 | https://github.com/simonw/datasette/issues/2019#issuecomment-1420094396 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UpOu8 | simonw 9599 | 2023-02-07T02:18:11Z | 2023-02-07T02:19:16Z | OWNER | For the SQL underlying this page (the second page in that compound primary key paginated sequence): https://latest.datasette.io/fixtures/compound_three_primary_keys?_next=a%2Cd%2Cv The explain for that query rewritten as this:
Both explains have 31 steps and look pretty much identical. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1420088670 | https://github.com/simonw/datasette/issues/2019#issuecomment-1420088670 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UpNVe | simonw 9599 | 2023-02-07T02:14:35Z | 2023-02-07T02:14:35Z | OWNER | Maybe the correct level of abstraction here is that pagination is something that happens to a SQL query that is defined as SQL and params, without an order by or limit. That's then wrapped in a sub-select and those things are added to it, plus the necessary Need to check that the query plan for pagination of a subquery isn't slower than the plan for pagination as it works today. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1419953256 | https://github.com/simonw/datasette/issues/2019#issuecomment-1419953256 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UosRo | simonw 9599 | 2023-02-06T23:42:56Z | 2023-02-06T23:43:10Z | OWNER | Relevant issue: - https://github.com/simonw/datasette/issues/1773 Explains this comment: https://github.com/simonw/datasette/blob/0b4a28691468b5c758df74fa1d72a823813c96bf/datasette/views/table.py#L697 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1419928455 | https://github.com/simonw/datasette/issues/2019#issuecomment-1419928455 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UomOH | simonw 9599 | 2023-02-06T23:21:50Z | 2023-02-06T23:21:50Z | OWNER | Found more logic relating to this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1419921228 | https://github.com/simonw/datasette/issues/2019#issuecomment-1419921228 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UokdM | simonw 9599 | 2023-02-06T23:14:15Z | 2023-02-06T23:14:15Z | OWNER | Crucial utility function: https://github.com/simonw/datasette/blob/0b4a28691468b5c758df74fa1d72a823813c96bf/datasette/utils/init.py#L137-L160 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1419917661 | https://github.com/simonw/datasette/issues/2019#issuecomment-1419917661 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5Uojld | simonw 9599 | 2023-02-06T23:10:51Z | 2023-02-06T23:10:51Z | OWNER | I should turn I should also create something that bundles together |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 | |
1419916684 | https://github.com/simonw/datasette/issues/2019#issuecomment-1419916684 | https://api.github.com/repos/simonw/datasette/issues/2019 | IC_kwDOBm6k_c5UojWM | simonw 9599 | 2023-02-06T23:09:51Z | 2023-02-06T23:10:13Z | OWNER | The inputs and outputs for this are pretty complex. Inputs:
Outputs:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor out the keyset pagination code 1573424830 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user 1