home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

5 rows where author_association = "OWNER", "created_at" is on date 2020-04-16 and user = 9599 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: issue_url, updated_at (date)

issue 2

  • order_by mechanism 3
  • Mechanism for forcing column-type, over-riding auto-detection 2

user 1

  • simonw · 5 ✖

author_association 1

  • OWNER · 5 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
614846059 https://github.com/simonw/sqlite-utils/issues/100#issuecomment-614846059 https://api.github.com/repos/simonw/sqlite-utils/issues/100 MDEyOklzc3VlQ29tbWVudDYxNDg0NjA1OQ== simonw 9599 2020-04-16T19:17:56Z 2020-04-16T19:17:56Z OWNER

Reminder: the current list of arguments for those methods is: https://github.com/simonw/sqlite-utils/blob/13528faa817d79bc3900d3af7473300686b145d7/sqlite_utils/db.py#L951-L967

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Mechanism for forcing column-type, over-riding auto-detection 601358649  
614845657 https://github.com/simonw/sqlite-utils/issues/100#issuecomment-614845657 https://api.github.com/repos/simonw/sqlite-utils/issues/100 MDEyOklzc3VlQ29tbWVudDYxNDg0NTY1Nw== simonw 9599 2020-04-16T19:17:05Z 2020-04-16T19:17:05Z OWNER

The syntax for explicitly creating a table looks like this: python db["cats"].create({ "id": int, "name": str, "weight": float, }, pk="id") So using a dictionary of column name -> Python type here would be good.

I think it becomes a new optional argument to .insert_all() and .insert() and .upsert_all() and .upsert(). Question is, what should that argument be called?

Options:

  • columns
  • types
  • type_overrides
  • extra_columns

I like the first two best. I'm leaning towards columns - it would serve two purposes: you can use it to ensure extra columns are created, and you can use it to specify the type on extra OR deteced columns.

Maybe something like this:

python db["authors"].insert_all( [{"id": 1, "name": "Sally", "score": "2"}], pk="id", not_null={"name", "score"}, defaults={"score": 1}, columns={"score": int, "weight": float} )

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Mechanism for forcing column-type, over-riding auto-detection 601358649  
614400533 https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614400533 https://api.github.com/repos/simonw/sqlite-utils/issues/76 MDEyOklzc3VlQ29tbWVudDYxNDQwMDUzMw== simonw 9599 2020-04-16T03:51:26Z 2020-04-16T03:51:26Z OWNER

Documentation here: https://sqlite-utils.readthedocs.io/en/stable/python-api.html#listing-rows

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
order_by mechanism 549287310  
614400454 https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614400454 https://api.github.com/repos/simonw/sqlite-utils/issues/76 MDEyOklzc3VlQ29tbWVudDYxNDQwMDQ1NA== simonw 9599 2020-04-16T03:51:01Z 2020-04-16T03:51:01Z OWNER

Released in 2.6

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
order_by mechanism 549287310  
614354219 https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614354219 https://api.github.com/repos/simonw/sqlite-utils/issues/76 MDEyOklzc3VlQ29tbWVudDYxNDM1NDIxOQ== simonw 9599 2020-04-16T01:01:34Z 2020-04-16T01:01:34Z OWNER

I think a neat way to do this would be with an optional argument for .rows_where():

python rows = db["table"].rows_where("age > 10", order_by="age desc")

If you want everything you can use this:

python rows = db["table"].rows_where(order_by="age desc")

It's a tiny bit weird calling .rows_where() without a where clause, but I think it makes sense here - especially since .rows is a property that can't take any arguments - though under the hood it actually does this:

https://github.com/simonw/sqlite-utils/blob/ad6ac19470a67867b96cb4c086450b8e4e46bf02/sqlite_utils/db.py#L436-L443

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
order_by mechanism 549287310  

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 560.649ms · About: github-to-sqlite