home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

13 rows where author_association = "OWNER", issue = 520740741 and user = 9599 sorted by updated_at descending

✖
✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: created_at (date), updated_at (date)

user 1

  • simonw · 13 ✖

issue 1

  • If you apply ?_facet_array=tags then &_facet=tags does nothing · 13 ✖

author_association 1

  • OWNER · 13 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
996170510 https://github.com/simonw/datasette/issues/625#issuecomment-996170510 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47YFsO simonw 9599 2021-12-16T20:27:41Z 2021-12-16T20:27:41Z OWNER

And here's the new JSON: https://latest.datasette.io/fixtures/facetable.json?_facet=created&_facet_date=created&_facet=tags&_facet_array=tags&_nosuggest=1

{ "database": "fixtures", "table": "facetable", "is_view": false, "human_description_en": "", ... "facet_results": { "created": { "name": "created", "type": "column", ... }, "tags": { "name": "tags", "type": "column", ... }, "created_2": { "name": "created", "type": "date", ... }, "tags_2": { "name": "tags", "type": "array", ... } } }

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996165659 https://github.com/simonw/datasette/issues/625#issuecomment-996165659 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47YEgb simonw 9599 2021-12-16T20:19:53Z 2021-12-16T20:19:53Z OWNER

Demo of the fix: https://latest.datasette.io/fixtures/facetable?_facet=created&_facet_date=created&_facet=tags&_facet_array=tags#facet-tags

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996161380 https://github.com/simonw/datasette/issues/625#issuecomment-996161380 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47YDdk simonw 9599 2021-12-16T20:13:05Z 2021-12-16T20:13:05Z OWNER

I updated the example code in the facet plugin hook documentation: https://github.com/simonw/datasette/blob/95d0dd7a1cf6be6b7da41e1404184217eb93f64a/docs/plugin_hooks.rst#register_facet_classes

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996152213 https://github.com/simonw/datasette/issues/625#issuecomment-996152213 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47YBOV simonw 9599 2021-12-16T19:59:46Z 2021-12-16T20:00:05Z OWNER

Since no-one is using that plugin hook I'm going to alter its contract slightly. I'll still keep the existing JSON format working though (until 1.0), since it's much more likely that people are using that JSON somewhere.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996150904 https://github.com/simonw/datasette/issues/625#issuecomment-996150904 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47YA54 simonw 9599 2021-12-16T19:57:52Z 2021-12-16T19:57:52Z OWNER

Good news - GitHub's new code search doesn't show ANYONE using that plugin hook - not surprising since it has that documentation warning plus it's just not a very clearly usable hook: https://cs.github.com/?scopeName=All+repos&scope=&q=register_facet_classes%20-repo%3Asimonw%2Fdatasette

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996149720 https://github.com/simonw/datasette/issues/625#issuecomment-996149720 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47YAnY simonw 9599 2021-12-16T19:56:14Z 2021-12-16T19:56:14Z OWNER

This bad design is even covered in the plugin hooks documentation: https://docs.datasette.io/en/0.59.4/plugin_hooks.html#register-facet-classes

It does at least have the following warning:

Warning

The design of this plugin hook is unstable and may change. See issue 830.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996146762 https://github.com/simonw/datasette/issues/625#issuecomment-996146762 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47X_5K simonw 9599 2021-12-16T19:51:44Z 2021-12-16T19:51:44Z OWNER

Here's where facet_results is built up: https://github.com/simonw/datasette/blob/992496f2611a72bd51e94bfd0b17c1d84e732487/datasette/views/table.py#L752-L758

So the decision to key things based on column name is actually embedded deep in the existing facet classes here:

https://github.com/simonw/datasette/blob/992496f2611a72bd51e94bfd0b17c1d84e732487/datasette/facets.py#L224-L226

https://github.com/simonw/datasette/blob/992496f2611a72bd51e94bfd0b17c1d84e732487/datasette/facets.py#L395-L397

https://github.com/simonw/datasette/blob/992496f2611a72bd51e94bfd0b17c1d84e732487/datasette/facets.py#L510-L512

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996130862 https://github.com/simonw/datasette/issues/625#issuecomment-996130862 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47X8Au simonw 9599 2021-12-16T19:44:48Z 2021-12-16T19:44:48Z OWNER

Decision: as an initial fix I'm going to de-duplicate those keys by using tags__array etc - with a _2 on the end if that key is already used.

I'll open a separate issue to redesign this better for Datasette 1.0.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996121736 https://github.com/simonw/datasette/issues/625#issuecomment-996121736 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47X5yI simonw 9599 2021-12-16T19:37:08Z 2021-12-16T19:37:08Z OWNER

Really facet_results here should be an array of objects, not an object that maps poorly designed string keys to those objects.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996119954 https://github.com/simonw/datasette/issues/625#issuecomment-996119954 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47X5WS simonw 9599 2021-12-16T19:36:01Z 2021-12-16T19:36:11Z OWNER

Datasette's own HTML rendering code doesn't actually use the keys in facet_results - it instead loops through sorted_facet_results which is defined like this: https://github.com/simonw/datasette/blob/992496f2611a72bd51e94bfd0b17c1d84e732487/datasette/views/table.py#L937-L941

And used like this:

https://github.com/simonw/datasette/blob/992496f2611a72bd51e94bfd0b17c1d84e732487/datasette/templates/table.html#L154-L156

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996118401 https://github.com/simonw/datasette/issues/625#issuecomment-996118401 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47X4-B simonw 9599 2021-12-16T19:34:28Z 2021-12-16T19:34:55Z OWNER

The big question here is do I break any existing clients of the "facet_results" JSON API?

It's still pre-1.0 so I could break them, but I've also built my own code against this in the past so it's likely other people have too.

If I don't break them, I will instead need to come up with a naming convention for those keys - something like "tags__array" for example. As well as a way to ensure that a column called tags__array doesn't end up conflicting with the tags__array key!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996100774 https://github.com/simonw/datasette/issues/625#issuecomment-996100774 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47X0qm simonw 9599 2021-12-16T19:10:01Z 2021-12-16T19:10:48Z OWNER

I think the problem here may be in the design of the JSON returned by facets. It looks like this: "facet_results": { "tags": { "name": "tags", "type": "array", "results": [...], "hideable": false, "toggle_url": "/fixtures/facetable.json?_facet=tags&_trace=1&_nosuggest=1", "truncated": false }, "created": { "name": "created", "type": "date", "results": [...] The problem then is that the tags key is over-ridden by the second facet with a different type against the same column name!

https://latest-with-plugins.datasette.io/fixtures/facetable?_trace=1&_facet=created&_facet_date=created&_facet_array=tags&_facet=tags confirms that the SQL queries for those facets are being executed - but the final JSON doesn't show them on https://latest-with-plugins.datasette.io/fixtures/facetable.json?_trace=1&_facet=created&_facet_date=created&_facet_array=tags&_facet=tags

They're not available in the template context either: https://latest-with-plugins.datasette.io/fixtures/facetable?_facet=created&_facet_date=created&_facet_array=tags&_facet=tags&_context=1

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  
996093884 https://github.com/simonw/datasette/issues/625#issuecomment-996093884 https://api.github.com/repos/simonw/datasette/issues/625 IC_kwDOBm6k_c47Xy-8 simonw 9599 2021-12-16T19:00:28Z 2021-12-16T19:00:28Z OWNER

Implementing #1552 has made a fix for this bug even more important.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
If you apply ?_facet_array=tags then &_facet=tags does nothing 520740741  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

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]);
Powered by Datasette · Queries took 554.186ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows