issue_comments
11 rows where issue = 1428630253
This data as json, CSV (advanced)
Suggested facets: created_at (date), updated_at (date)
id ▼ | html_url | issue_url | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1296131681 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296131681 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NQWZh | simonw 9599 | 2022-10-30T06:27:12Z | 2022-10-30T06:27:12Z | OWNER | Relevant TODO: https://github.com/simonw/datasette/blob/c35859ae3df163406f1a1895ccf9803e933b2d8e/datasette/views/table.py#L1131-L1135 | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296341055 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296341055 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRJg_ | simonw 9599 | 2022-10-30T20:11:47Z | 2022-10-30T20:12:30Z | OWNER | If a table has an auto-incrementing primary key, should you be allowed to insert records with an explicit key into it? I'm torn on this one. It's something you can do with direct database access, but it's something I very rarely want to do. I'm inclined to disallow it and say that if you want that you can get it using a writable canned query instead. Likewise, I'm not going to provide a way to set the `rowid` explicitly on a freshly inserted row. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296341469 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296341469 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRJnd | simonw 9599 | 2022-10-30T20:13:50Z | 2022-10-30T20:13:50Z | OWNER | I checked and SQLite itself does allow you to set the `rowid` on that kind of table - it then increments from whatever you inserted: ``` % sqlite3 /tmp/t.db SQLite version 3.39.4 2022-09-07 20:51:41 Enter ".help" for usage hints. sqlite> create table docs (title text); sqlite> insert into docs (title) values ('one'); sqlite> select rowid, title from docs; 1|one sqlite> insert into docs (rowid, title) values (3, 'three'); sqlite> select rowid, title from docs; 1|one 3|three sqlite> insert into docs (title) values ('another'); sqlite> select rowid, title from docs; 1|one 3|three 4|another ``` | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296342814 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296342814 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRJ8e | simonw 9599 | 2022-10-30T20:20:05Z | 2022-10-30T20:20:05Z | OWNER | Some notes on what Datasette does already https://latest.datasette.io/fixtures/tags.json?_shape=array returns: ```json [ { "tag": "canine" }, { "tag": "feline" } ] ``` That table is defined [like this](https://latest.datasette.io/fixtures/tags): ```sql CREATE TABLE tags ( tag TEXT PRIMARY KEY ); ``` Here's a `rowid` table with no explicit primary key: https://latest.datasette.io/fixtures/binary_data https://latest.datasette.io/fixtures/binary_data.json?_shape=array ```json [ { "rowid": 1, "data": { "$base64": true, "encoded": "FRwCx60F/g==" } }, { "rowid": 2, "data": { "$base64": true, "encoded": "FRwDx60F/g==" } }, { "rowid": 3, "data": null } ] ``` ```sql CREATE TABLE binary_data ( data BLOB ); ``` https://latest.datasette.io/fixtures/simple_primary_key has a text primary key: https://latest.datasette.io/fixtures/simple_primary_key.json?_shape=array ```json [ { "id": "1", "content": "hello" }, { "id": "2", "content": "world" }, { "id": "3", "content": "" }, { "id": "4", "content": "RENDER_CELL_DEMO" }, { "id": "5", "content": "RENDER_CELL_ASYNC" } ] ``` ```sql CREATE TABLE simple_primary_key ( id varchar(30) primary key, content text ); ``` https://latest.datasette.io/fixtures/compound_primary_key is a compound primary key. https://latest.datasette.io/fixtures/compound_primary_key.json?_shape=array ```json [ { "pk1": "a", "pk2": "b", "content": "c" }, { "pk1": "a/b", "pk2": ".c-d", "content": "c" } ] ``` ```sql CREATE TABLE compound_primary_key ( pk1 varchar(30), pk2 varchar(30), content text, PRIMARY KEY (pk1, pk2) ); ``` | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296343014 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296343014 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRJ_m | simonw 9599 | 2022-10-30T20:21:01Z | 2022-10-30T20:21:01Z | OWNER | Actually, for simplicity I'm going to say that you can always set the primary key, even for auto-incrementing primary key columns... but you cannot set it on pure `rowid` columns. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296343173 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296343173 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRKCF | simonw 9599 | 2022-10-30T20:21:54Z | 2022-10-30T20:22:20Z | OWNER | One last case to consider: `WITHOUT ROWID` tables. https://www.sqlite.org/withoutrowid.html > By default, every row in SQLite has a special column, usually called the "[rowid](https://www.sqlite.org/lang_createtable.html#rowid)", that uniquely identifies that row within the table. However if the phrase "WITHOUT ROWID" is added to the end of a [CREATE TABLE](https://www.sqlite.org/lang_createtable.html) statement, then the special "rowid" column is omitted. There are sometimes space and performance advantages to omitting the rowid. > > ... > > Every WITHOUT ROWID table must have a [PRIMARY KEY](https://www.sqlite.org/lang_createtable.html#primkeyconst). An error is raised if a CREATE TABLE statement with the WITHOUT ROWID clause lacks a PRIMARY KEY. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296343317 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296343317 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRKEV | simonw 9599 | 2022-10-30T20:22:40Z | 2022-10-30T20:22:40Z | OWNER | So maybe they're not actually worth worrying about separately, because they are guaranteed to have a primary key set. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1296343716 | https://github.com/simonw/datasette/issues/1873#issuecomment-1296343716 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5NRKKk | simonw 9599 | 2022-10-30T20:24:55Z | 2022-10-30T20:24:55Z | OWNER | I think the key feature I need here is going to be the equivalent of `ignore=True` and `replace=True` for dealing with primary key collisions, see https://sqlite-utils.datasette.io/en/stable/reference.html#sqlite_utils.db.Table.insert | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1298885451 | https://github.com/simonw/datasette/issues/1873#issuecomment-1298885451 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5Na2tL | simonw 9599 | 2022-11-01T17:42:20Z | 2022-11-01T17:42:20Z | OWNER | Design decision: ```json { "rows": [{"id": 1, "title": "The title"}], "ignore": true } ``` Or `"replace": true`. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1298905135 | https://github.com/simonw/datasette/issues/1873#issuecomment-1298905135 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5Na7gv | simonw 9599 | 2022-11-01T17:59:59Z | 2022-11-01T17:59:59Z | OWNER | It's a bit surprising that you can send `"ignore": true, "return_rows": true` and the returned `"inserted"` key will list rows that were NOT inserted (since they were ignored). Three options: 1. Ignore that and document it 2. Fix it so `"inserted"` only returns rows that were actually inserted (bit tricky) 3. Change the name of `"inserted"` to something else I'm picking 3 - I'm going to change it to be called `"rows"` instead. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 | |
1298919552 | https://github.com/simonw/datasette/issues/1873#issuecomment-1298919552 | https://api.github.com/repos/simonw/datasette/issues/1873 | IC_kwDOBm6k_c5Na_CA | simonw 9599 | 2022-11-01T18:11:27Z | 2022-11-01T18:11:27Z | OWNER | I forgot to document `ignore` and `replace`. Also I need to add tests that cover: - Forgetting to include a primary key on a non-autoincrement table - Compound primary keys - Rowid only tables with and without rowid specified I think my validation logic here will get caught out by the fact that `rowid` does not show up as a valid column name: https://github.com/simonw/datasette/blob/9bec7c38eb93cde5afb16df9bdd96aea2a5b0459/datasette/views/table.py#L1151-L1160 | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Ensure insert API has good tests for rowid and compound primark key tables 1428630253 |
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]);