{"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/29#issuecomment-552129686", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/29", "id": 552129686, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEyOTY4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T19:27:39Z", "updated_at": "2019-11-09T19:27:39Z", "author_association": "MEMBER", "body": "I think this is fixed by the latest version of `sqlite-utils` - https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-12-1 - I'll bump the dependency.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518725064, "label": "`import` command fails on empty files"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/29#issuecomment-552129921", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/29", "id": 552129921, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEyOTkyMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T19:30:42Z", "updated_at": "2019-11-09T19:30:42Z", "author_association": "MEMBER", "body": "Confirmed, that seems to fix it:\r\n```\r\n(twitter-to-sqlite) ~/Dropbox/Development/twitter-to-sqlite $ twitter-to-sqlite import blah.db ~/Dropbox/dogsheep/twitter-2019-06-25-b31f246100821b551f2f9a23f21ac6fb565dab49dd23a35630cabbf2b94a1f03/account-suspension.js \r\nTraceback (most recent call last):\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/bin/twitter-to-sqlite\", line 11, in \r\n load_entry_point('twitter-to-sqlite', 'console_scripts', 'twitter-to-sqlite')()\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/click/core.py\", line 764, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/click/core.py\", line 717, in main\r\n rv = self.invoke(ctx)\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/click/core.py\", line 1137, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/click/core.py\", line 956, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/click/core.py\", line 555, in invoke\r\n return callback(*args, **kwargs)\r\n File \"/Users/simonw/Dropbox/Development/twitter-to-sqlite/twitter_to_sqlite/cli.py\", line 633, in import_\r\n archive.import_from_file(db, path.name, open(path, \"rb\").read())\r\n File \"/Users/simonw/Dropbox/Development/twitter-to-sqlite/twitter_to_sqlite/archive.py\", line 224, in import_from_file\r\n db[table_name].upsert_all(rows, hash_id=\"pk\")\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/sqlite_utils/db.py\", line 1094, in upsert_all\r\n extracts=extracts,\r\n File \"/Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages/sqlite_utils/db.py\", line 961, in insert_all\r\n first_record = next(records)\r\nStopIteration\r\n(twitter-to-sqlite) ~/Dropbox/Development/twitter-to-sqlite $ pip install -U sqlite-utils\r\nCollecting sqlite-utils\r\n Using cached https://files.pythonhosted.org/packages/ee/a2/1b135010c7ac8e2d7545f659e9e6c6ede0f406f20b52e08d5817e1e31a9a/sqlite_utils-1.12.1-py3-none-any.whl\r\nRequirement already satisfied, skipping upgrade: click in /Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages (from sqlite-utils) (7.0)\r\nRequirement already satisfied, skipping upgrade: tabulate in /Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages (from sqlite-utils) (0.8.5)\r\nRequirement already satisfied, skipping upgrade: click-default-group in /Users/simonw/.local/share/virtualenvs/twitter-to-sqlite-4ech4lJi/lib/python3.7/site-packages (from sqlite-utils) (1.2.2)\r\nInstalling collected packages: sqlite-utils\r\n Found existing installation: sqlite-utils 1.11\r\n Uninstalling sqlite-utils-1.11:\r\n Successfully uninstalled sqlite-utils-1.11\r\nSuccessfully installed sqlite-utils-1.12.1\r\n(twitter-to-sqlite) ~/Dropbox/Development/twitter-to-sqlite $ twitter-to-sqlite import blah.db ~/Dropbox/dogsheep/twitter-2019-06-25-b31f246100821b551f2f9a23f21ac6fb565dab49dd23a35630cabbf2b94a1f03/account-suspension.js \r\n(twitter-to-sqlite) ~/Dropbox/Development/twitter-to-sqlite $ \r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518725064, "label": "`import` command fails on empty files"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/30#issuecomment-552131798", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/30", "id": 552131798, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzMTc5OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T19:54:45Z", "updated_at": "2019-11-09T19:54:45Z", "author_association": "MEMBER", "body": "Good catch - not sure how that bug crept in. Removing line 116 looks like the right fix to me.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518739697, "label": "`followers` fails because `transform_user` is called twice"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/29#issuecomment-552133449", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/29", "id": 552133449, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzMzQ0OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T20:15:15Z", "updated_at": "2019-11-09T20:15:15Z", "author_association": "MEMBER", "body": "Released: https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.15", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518725064, "label": "`import` command fails on empty files"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/30#issuecomment-552133468", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/30", "id": 552133468, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzMzQ2OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T20:15:27Z", "updated_at": "2019-11-09T20:15:27Z", "author_association": "MEMBER", "body": "Released: https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.15", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518739697, "label": "`followers` fails because `transform_user` is called twice"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/28#issuecomment-552133488", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/28", "id": 552133488, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzMzQ4OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T20:15:42Z", "updated_at": "2019-11-09T20:15:42Z", "author_association": "MEMBER", "body": "Released: https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.15", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 515658861, "label": "Add indexes to followers table"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/29#issuecomment-552134876", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/29", "id": 552134876, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzNDg3Ng==", "user": {"value": 21148, "label": "jacobian"}, "created_at": "2019-11-09T20:33:38Z", "updated_at": "2019-11-09T20:33:38Z", "author_association": "CONTRIBUTOR", "body": "\u2764\ufe0f thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518725064, "label": "`import` command fails on empty files"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/31#issuecomment-552135263", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/31", "id": 552135263, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzNTI2Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T20:38:35Z", "updated_at": "2019-11-09T20:38:35Z", "author_association": "MEMBER", "body": "Command still needs documentation and a bit more testing.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 520508502, "label": "\"friends\" command (similar to \"followers\")"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/618#issuecomment-552139232", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/618", "id": 552139232, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjEzOTIzMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T21:26:11Z", "updated_at": "2019-11-09T21:26:11Z", "author_association": "OWNER", "body": "Easiest solution here would be to append these on to the `create table` statement that is displayed on the table page.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 520507306, "label": "Mechanism for seeing indexes on a specific table"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/283#issuecomment-552140870", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/283", "id": 552140870, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjE0MDg3MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T21:49:51Z", "updated_at": "2019-11-09T21:49:51Z", "author_association": "OWNER", "body": "Better idea: if you run Datasette in cross-database joining mode, all connections start out as memory connections and then have new databases attached to them on-demand.\r\n\r\nAll table view queries will be automatically rewritten to start `SELECT db.table.one, db.table.two FROM db.table ...`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 325958506, "label": "Support cross-database joins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/283#issuecomment-552140975", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/283", "id": 552140975, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjE0MDk3NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T21:51:41Z", "updated_at": "2019-11-09T21:51:41Z", "author_association": "OWNER", "body": "It may turn out that we have to recommend NOT exposing a Datasette instance to the public with dozens of database files that has multi-db queries enabled - will need to load test to understand if this recommendation is needed or not.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 325958506, "label": "Support cross-database joins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/617#issuecomment-552141417", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/617", "id": 552141417, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MjE0MTQxNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-09T21:58:40Z", "updated_at": "2019-11-09T21:58:40Z", "author_association": "OWNER", "body": "The function that builds the query could go in a new `datasette.utils.sql` module.\r\n\r\nI can design it to only take simple arguments (the table name, list of columns, list of primary keys and a list of key/value tuples from the query string). This will make it really easy to test (and means it won't need to be async since it won't have to use queries to retrieve those values).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 519613116, "label": "Refactor TableView.data() method"}, "performed_via_github_app": null}