home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

7 rows where "updated_at" is on date 2022-03-25 and user = 9599 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

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

issue 4

  • Document how to use a `--convert` function that runs initialization code first 4
  • insert fails on JSONL with whitespace 1
  • "Error: near "(": syntax error" when using sqlite-utils indexes CLI 1
  • Reconsider not running convert functions against null values 1

user 1

  • simonw · 7 ✖

author_association 1

  • OWNER 7
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
1079441621 https://github.com/simonw/sqlite-utils/issues/417#issuecomment-1079441621 https://api.github.com/repos/simonw/sqlite-utils/issues/417 IC_kwDOCGYnMM5AVvjV simonw 9599 2022-03-25T21:18:37Z 2022-03-25T21:18:37Z OWNER

Updated documentation: https://sqlite-utils.datasette.io/en/latest/cli.html#inserting-newline-delimited-json

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
insert fails on JSONL with whitespace 1175744654  
1079407962 https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1079407962 https://api.github.com/repos/simonw/sqlite-utils/issues/421 IC_kwDOCGYnMM5AVnVa simonw 9599 2022-03-25T20:25:10Z 2022-03-25T20:25:18Z OWNER

Can you share either your whole global.db table or a shrunk down example that illustrates the bug?

My hunch is that you may have a table or column with a name that triggers the error.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792  
1079406708 https://github.com/simonw/sqlite-utils/issues/422#issuecomment-1079406708 https://api.github.com/repos/simonw/sqlite-utils/issues/422 IC_kwDOCGYnMM5AVnB0 simonw 9599 2022-03-25T20:23:21Z 2022-03-25T20:23:21Z OWNER

Fixing this would require a bump to 4.0 because it would break existing code.

The alternative would be to introduce a new ignore_nulls=True parameter which users can change to ignore_nulls=False. Or come up with better wording for that.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Reconsider not running convert functions against null values 1181236173  
1079404281 https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1079404281 https://api.github.com/repos/simonw/sqlite-utils/issues/420 IC_kwDOCGYnMM5AVmb5 simonw 9599 2022-03-25T20:19:50Z 2022-03-25T20:19:50Z OWNER

Now documented here: https://sqlite-utils.datasette.io/en/latest/cli.html#using-a-convert-function-to-execute-initialization

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Document how to use a `--convert` function that runs initialization code first 1178546862  
1079384771 https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1079384771 https://api.github.com/repos/simonw/sqlite-utils/issues/420 IC_kwDOCGYnMM5AVhrD simonw 9599 2022-03-25T19:51:34Z 2022-03-25T19:53:01Z OWNER

This works: ``` % sqlite-utils insert dogs.db dogs dogs.json --convert ' import random print("seeding") random.seed(10) print(random.random())

def convert(row): global random print(row) row["random_score"] = random.random() ' seeding 0.5714025946899135 {'id': 1, 'name': 'Cleo'} {'id': 2, 'name': 'Pancakes'} {'id': 3, 'name': 'New dog'} (sqlite-utils) sqlite-utils % sqlite-utils rows dogs.db dogs [{"id": 1, "name": "Cleo", "random_score": 0.4288890546751146}, {"id": 2, "name": "Pancakes", "random_score": 0.5780913011344704}, {"id": 3, "name": "New dog", "random_score": 0.20609823213950174}] `` Having to useglobal random` inside the function is frustrating but apparently necessary. https://stackoverflow.com/a/56552138/6083

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Document how to use a `--convert` function that runs initialization code first 1178546862  
1079376283 https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1079376283 https://api.github.com/repos/simonw/sqlite-utils/issues/420 IC_kwDOCGYnMM5AVfmb simonw 9599 2022-03-25T19:39:30Z 2022-03-25T19:43:35Z OWNER

Actually this doesn't work as I thought. This demo shows that the initialization code is run once per item, not a single time at the start of the run: ``` % sqlite-utils insert dogs.db dogs dogs.json --convert ' import random print("seeding") random.seed(10) print(random.random())

def convert(row): print(row) row["random_score"] = random.random() ' seeding 0.5714025946899135 seeding 0.5714025946899135 seeding 0.5714025946899135 seeding 0.5714025946899135 `` Also thatprint(row)` line is not being printed anywhere that gets to the console for some reason.

... my mistake, that happened because I changed this line in order to try to get local imports to work: python try: exec(code, globals, locals) return globals["convert"] except (AttributeError, SyntaxError, NameError, KeyError, TypeError): It should be locals["convert"]

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Document how to use a `--convert` function that runs initialization code first 1178546862  
1079243535 https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1079243535 https://api.github.com/repos/simonw/sqlite-utils/issues/420 IC_kwDOCGYnMM5AU_MP simonw 9599 2022-03-25T17:25:12Z 2022-03-25T17:25:12Z OWNER

That documentation is split across a few places. This is the only bit that talks about def convert() pattern right now:

  • https://sqlite-utils.datasette.io/en/stable/cli.html#converting-data-in-columns

But that's for sqlite-utils convert - the documentation for sqlite-utils insert --convert at https://sqlite-utils.datasette.io/en/stable/cli.html#applying-conversions-while-inserting-data doesn't mention it.

Since both sqlite-utils convert and sqlite-utils insert --convert apply the same rules to the code, they should link to a shared explanation in the documentation.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Document how to use a `--convert` function that runs initialization code first 1178546862  

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