home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

4 rows where issue = 1425029275 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 4

issue 1

  • Delete a single record from an existing table · 4 ✖

author_association 1

  • OWNER 4
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
1296403316 https://github.com/simonw/datasette/issues/1864#issuecomment-1296403316 https://api.github.com/repos/simonw/datasette/issues/1864 IC_kwDOBm6k_c5NRYt0 simonw 9599 2022-10-31T00:39:43Z 2022-10-31T00:39:43Z OWNER

It looks like SQLite has features for this already: https://www.sqlite.org/foreignkeys.html#fk_actions

Foreign key ON DELETE and ON UPDATE clauses are used to configure actions that take place when deleting rows from the parent table (ON DELETE), or modifying the parent key values of existing rows (ON UPDATE). A single foreign key constraint may have different actions configured for ON DELETE and ON UPDATE. Foreign key actions are similar to triggers in many ways.

On that basis, I'm not going to implement anything additional in the .../-/delete endpoint relating to foreign keys. Developers who want special treatment of them can do that with a combination of a plugin (maybe I'll build a datasette-enable-foreign-keys plugin) and tables created using those ON DELETE clauses.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Delete a single record from an existing table 1425029275  
1296402071 https://github.com/simonw/datasette/issues/1864#issuecomment-1296402071 https://api.github.com/repos/simonw/datasette/issues/1864 IC_kwDOBm6k_c5NRYaX simonw 9599 2022-10-31T00:37:09Z 2022-10-31T00:37:09Z OWNER

I need to think about what happens if you delete a row that is the target of a foreign key from another row.

https://www.sqlite.org/foreignkeys.html#fk_enable shows that SQLite will only actively enforce these relationships (e.g. throw an error if you try to delete a row that is referenced by another row) if you first run PRAGMA foreign_keys = ON; against the connection.

Foreign key constraints are disabled by default (for backwards compatibility), so must be enabled separately for each database connection. (Note, however, that future releases of SQLite might change so that foreign key constraints enabled by default. Careful developers will not make any assumptions about whether or not foreign keys are enabled by default but will instead enable or disable them as necessary.)

I don't actually believe that the SQLite maintainers will ever make that the default though.

Datasette doesn't turn these on at the moment, but it could be turned on by a prepare_connection() plugin.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Delete a single record from an existing table 1425029275  
1296375536 https://github.com/simonw/datasette/issues/1864#issuecomment-1296375536 https://api.github.com/repos/simonw/datasette/issues/1864 IC_kwDOBm6k_c5NRR7w simonw 9599 2022-10-30T23:17:11Z 2022-10-30T23:17:11Z OWNER

I'm a bit nervous about calling .delete() with the pk_values - can I be sure they are in the correct order? https://github.com/simonw/datasette/blob/00632ded30e7cf9f0cf9478680645d1dabe269ae/datasette/views/row.py#L188-L190

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Delete a single record from an existing table 1425029275  
1296375310 https://github.com/simonw/datasette/issues/1864#issuecomment-1296375310 https://api.github.com/repos/simonw/datasette/issues/1864 IC_kwDOBm6k_c5NRR4O simonw 9599 2022-10-30T23:16:19Z 2022-10-30T23:16:19Z OWNER

Still needs tests that cover compound primary keys and rowid tables.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Delete a single record from an existing table 1425029275  

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 134.461ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows