home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

10 rows where issue = 665700495 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 10

issue 1

  • CLI utility for inserting binary files into SQLite · 10 ✖

author_association 1

  • OWNER 10
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
664163524 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-664163524 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2NDE2MzUyNA== simonw 9599 2020-07-27T07:10:41Z 2020-07-27T07:10:41Z OWNER

Docs: https://github.com/simonw/sqlite-utils/blob/ebc802f7ff0e640b6ae11ea525290fea0115228c/docs/cli.rst#inserting-binary-data-from-files

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
664128071 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-664128071 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2NDEyODA3MQ== simonw 9599 2020-07-27T05:30:54Z 2020-07-27T05:30:54Z OWNER

Inserting files by piping them in should work - but since a filename cannot be derived this will need a --name blah.gif option.

cat blah.gif | sqlite-utils insert-files files.db files - --name=blah.gif
{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
664127741 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-664127741 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2NDEyNzc0MQ== simonw 9599 2020-07-27T05:29:48Z 2020-07-27T05:29:48Z OWNER

Test command: sqlite-utils insert-files gifs.db *.gif \ -c filename:filename \ -c filepath:filepath \ -c absolutepath:absolutepath \ -c sha256:sha256 \ -c md5:md5 \ -c content:content \ -c mtime:mtime \ -c ctime:ctime \ -c mtime_iso:mtime_iso \ -c ctime_iso:ctime_iso \ -c size:size \ --pk absolutepath

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
663931279 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-663931279 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2MzkzMTI3OQ== simonw 9599 2020-07-26T03:33:23Z 2020-07-27T04:30:49Z OWNER

One idea: sqlite-utils insert-files

It could work something like this:

sqlite-utils insert-files files.db /tmp/blah.jpg /tmp/foo.gif \
  --table files \
  -c key:filename -c hash:sha256 -c body:content \
  --pk key

This would insert those two image files into the database in a table called files with a schema that looks something like this:

sql CREATE TABLE files ( key text primary key, hash text, body blob );

The -c key:filename options here are the most interesting: they let you create the table with a specific layout. The bit before the : is the column name. The bit after the : can be a range of different things:

  • filename - just the filename
  • filepath - the full filepath (provided on the command-line)
  • absolutepath - the filepath expanded to start with /home/... or whatever
  • sha256 - the SHA256 of the contents
  • md5 - the MD5
  • content - the binary content itself
  • mtime - the mtime (floating point timestamp)
  • ctime - the ctime (floating point timestamp)
  • mtime_iso - the mtime as an ISO datetime
  • ctime_iso - the mtime as an ISO datetime
  • size - the size of the file in bytes
{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
664048720 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-664048720 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2NDA0ODcyMA== simonw 9599 2020-07-26T22:32:50Z 2020-07-26T22:33:20Z OWNER

This seems to work in creating a SQLite archive containing all .gif files in the current directory:

/usr/local/Cellar/sqlite/3.32.1/bin/sqlite3 archive.db -A -c *.gif

Then listing files like this: $ /usr/local/Cellar/sqlite/3.32.1/bin/sqlite3 archive.db -A -t copyable.gif debug-allow.gif flash.gif table-md.gif Here's the schema: $ sqlite3 archive.db .schema CREATE TABLE sqlar( name TEXT PRIMARY KEY, -- name of the file mode INT, -- access permissions mtime INT, -- last modification time sz INT, -- original file size data BLOB -- compressed content );

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
664048432 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-664048432 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2NDA0ODQzMg== simonw 9599 2020-07-26T22:29:31Z 2020-07-26T22:29:31Z OWNER

I'm trying to play with sqlite3 -A on my Mac.

sqlite3 -A tells me that it's an unknown option - but I used brew info sqlite to find my homebrew installed version and it turns out this works:

% /usr/local/Cellar/sqlite/3.32.1/bin/sqlite3 -A Wrong number of arguments. Usage: .archive ... Manage SQL archives Each command must have exactly one of the following options: -c, --create Create a new archive -u, --update Add or update files with changed mtime -i, --insert Like -u but always add even if unchanged -t, --list List contents of archive -x, --extract Extract files from archive Optional arguments: -v, --verbose Print each filename as it is processed -f FILE, --file FILE Use archive FILE (default is current db) -a FILE, --append FILE Open FILE using the apndvfs VFS -C DIR, --directory DIR Read/extract files from directory DIR -n, --dryrun Show the SQL that would have occurred Examples: .ar -cf ARCHIVE foo bar # Create ARCHIVE from files foo and bar .ar -tf ARCHIVE # List members of ARCHIVE .ar -xvf ARCHIVE # Verbosely extract files from ARCHIVE See also: http://sqlite.org/cli.html#sqlar_archive_support

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
664013338 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-664013338 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2NDAxMzMzOA== simonw 9599 2020-07-26T16:57:35Z 2020-07-26T16:57:35Z OWNER

I should consider easy compatibility with https://www.sqlite.org/sqlar.html

An SQLite Archive is an ordinary SQLite database file that contains the following table as part of its schema: CREATE TABLE sqlar( name TEXT PRIMARY KEY, -- name of the file mode INT, -- access permissions mtime INT, -- last modification time sz INT, -- original file size data BLOB -- compressed content ); Each row of the SQLAR table holds the content of a single file. The filename (the full pathname relative to the root of the archive) is in the "name" field. The "mode" field is an integer which is the unix-style access permissions for the file. "mtime" is the modification time of the file in seconds since 1970. "sz" is the original uncompressed size of the file. The "data" field contains the file content. The content is usually compressed using Deflate, though not always. If the "sz" field is equal to the size of the "data" field, then the content is stored uncompressed.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
663931426 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-663931426 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2MzkzMTQyNg== simonw 9599 2020-07-26T03:35:58Z 2020-07-26T16:44:33Z OWNER

Related: #123 (--raw option)

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
663931662 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-663931662 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2MzkzMTY2Mg== simonw 9599 2020-07-26T03:40:29Z 2020-07-26T03:40:29Z OWNER

Maybe support --replace for replacing images with an existing primary key.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  
663931317 https://github.com/simonw/sqlite-utils/issues/122#issuecomment-663931317 https://api.github.com/repos/simonw/sqlite-utils/issues/122 MDEyOklzc3VlQ29tbWVudDY2MzkzMTMxNw== simonw 9599 2020-07-26T03:33:54Z 2020-07-26T03:33:54Z OWNER

The command also accepts one or more directories, in which case it will recursively scan them for all files that they contain.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
CLI utility for inserting binary files into SQLite 665700495  

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