{"html_url": "https://github.com/simonw/sqlite-utils/pull/96#issuecomment-606394619", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/96", "id": 606394619, "node_id": "MDEyOklzc3VlQ29tbWVudDYwNjM5NDYxOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-03-31T04:38:17Z", "updated_at": "2020-03-31T04:40:23Z", "author_association": "OWNER", "body": "I wonder if there are any other Pandas conversions we should be doing? https://pandas.pydata.org/pandas-docs/stable/getting_started/basics.html#dtypes ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 589801352, "label": "Add type conversion for Panda's Timestamp"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/96#issuecomment-606394349", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/96", "id": 606394349, "node_id": "MDEyOklzc3VlQ29tbWVudDYwNjM5NDM0OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-03-31T04:37:16Z", "updated_at": "2020-03-31T04:37:16Z", "author_association": "OWNER", "body": "Test failure was just a Black formatting issue.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 589801352, "label": "Add type conversion for Panda's Timestamp"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/80#issuecomment-580584269", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/80", "id": 580584269, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MDU4NDI2OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-01-31T05:08:04Z", "updated_at": "2020-01-31T05:08:04Z", "author_association": "OWNER", "body": "Ditching this since it won't actually solve my problem.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 557892819, "label": "on_create mechanism for after table creation"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/80#issuecomment-580569059", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/80", "id": 580569059, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MDU2OTA1OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-01-31T03:48:41Z", "updated_at": "2020-01-31T03:48:41Z", "author_association": "OWNER", "body": "This may not be the right feature after all, see https://github.com/simonw/geojson-to-sqlite/issues/6#issuecomment-580569002", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 557892819, "label": "on_create mechanism for after table creation"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/80#issuecomment-580567886", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/80", "id": 580567886, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MDU2Nzg4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-01-31T03:41:31Z", "updated_at": "2020-01-31T03:41:31Z", "author_association": "OWNER", "body": "I think it does make sense to be able to pass it to the `.table()` constructor.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 557892819, "label": "on_create mechanism for after table creation"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/80#issuecomment-580567604", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/80", "id": 580567604, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MDU2NzYwNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-01-31T03:39:58Z", "updated_at": "2020-01-31T03:39:58Z", "author_association": "OWNER", "body": "Perhaps this should be called `after_create` instead of `on_create`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 557892819, "label": "on_create mechanism for after table creation"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/80#issuecomment-580567505", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/80", "id": 580567505, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MDU2NzUwNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-01-31T03:39:19Z", "updated_at": "2020-01-31T03:39:19Z", "author_association": "OWNER", "body": "Still needs documentation and tests. Also I'm not certain that this should be an argument you can pass to the `.table()` constructor, need to think that over.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 557892819, "label": "on_create mechanism for after table creation"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/75#issuecomment-580523995", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/75", "id": 580523995, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MDUyMzk5NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-01-31T00:21:11Z", "updated_at": "2020-01-31T00:21:11Z", "author_association": "OWNER", "body": "This makes sense, thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 546078359, "label": "Explicitly include tests and docs in sdist"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/67#issuecomment-569844320", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/67", "id": 569844320, "node_id": "MDEyOklzc3VlQ29tbWVudDU2OTg0NDMyMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-12-31T01:29:43Z", "updated_at": "2019-12-31T01:29:43Z", "author_association": "OWNER", "body": "I don't really care about 3.5 any more.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 529376481, "label": "Run tests against 3.5 too"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/67#issuecomment-559108591", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/67", "id": 559108591, "node_id": "MDEyOklzc3VlQ29tbWVudDU1OTEwODU5MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-27T14:24:59Z", "updated_at": "2019-11-27T14:24:59Z", "author_association": "OWNER", "body": "Failed due to black testing dependency: https://travis-ci.com/simonw/sqlite-utils/jobs/260995814", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 529376481, "label": "Run tests against 3.5 too"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1846560096", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1846560096, "node_id": "IC_kwDOCGYnMM5uEEVg", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-08T05:16:44Z", "updated_at": "2023-12-08T05:17:20Z", "author_association": "OWNER", "body": "Also tested this manually like so:\r\n\r\n```bash\r\nsqlite-utils create-table strict.db strictint id integer size integer --strict\r\nsqlite-utils create-table strict.db notstrictint id integer size integer \r\nsqlite-utils install sqlite-utils-shell\r\nsqlite-utils shell strict.db \r\n```\r\n```\r\nAttached to strict.db\r\nType 'exit' to exit.\r\nsqlite-utils> insert into strictint (size) values (4);\r\n1 row affected\r\nsqlite-utils> insert into strictint (size) values ('four');\r\nAn error occurred: cannot store TEXT value in INTEGER column strictint.size\r\nsqlite-utils> insert into notstrictint (size) values ('four');\r\n1 row affected\r\nsqlite-utils> commit;\r\nDone\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843975536", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843975536, "node_id": "IC_kwDOCGYnMM5t6NVw", "user": {"value": 16437338, "label": "tkhattra"}, "created_at": "2023-12-07T01:17:05Z", "updated_at": "2023-12-07T01:17:05Z", "author_association": "CONTRIBUTOR", "body": "Apologies - I pushed a fix that addresses the mypy failures.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843586503", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843586503, "node_id": "IC_kwDOCGYnMM5t4uXH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-06T19:49:10Z", "updated_at": "2023-12-06T19:49:29Z", "author_association": "OWNER", "body": "This looks really great on first glance - design is good, implementation is solid, tests and documentation look great.\r\n\r\nLooks like a couple of `mypy` failures in the tests at the moment:\r\n\r\n```\r\n mypy sqlite_utils tests\r\n\r\nsqlite_utils/db.py:543: error: Incompatible types in assignment (expression has type \"type[Table]\", variable has type \"type[View]\") [assignment]\r\ntests/test_lookup.py:156: error: Name \"test_lookup_new_table\" already defined on line 5 [no-redef]\r\nFound 2 errors in 2 files (checked 54 source files)\r\nError: Process completed with exit code 1.\r\n```\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843585454", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843585454, "node_id": "IC_kwDOCGYnMM5t4uGu", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-12-06T19:48:26Z", "updated_at": "2023-12-08T05:05:03Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`9286c1b`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/9286c1ba432e890b1bb4b2a1f847b15364c1fa18?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77% compared to head [(`1698a9d`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.72%.\n> Report is 1 commits behind head on main.\n\n> :exclamation: Current head 1698a9d differs from pull request most recent head 61c6e26. Consider uploading reports for the commit 61c6e26 to get more accurate results\n\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #604 +/- ##\n==========================================\n- Coverage 95.77% 95.72% -0.06% \n==========================================\n Files 8 8 \n Lines 2842 2852 +10 \n==========================================\n+ Hits 2722 2730 +8 \n- Misses 120 122 +2 \n```\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": "{\"id\": 254, \"slug\": \"codecov\", \"node_id\": \"MDM6QXBwMjU0\", \"owner\": {\"login\": \"codecov\", \"id\": 8226205, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjgyMjYyMDU=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/8226205?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/codecov\", \"html_url\": \"https://github.com/codecov\", \"followers_url\": \"https://api.github.com/users/codecov/followers\", \"following_url\": \"https://api.github.com/users/codecov/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/codecov/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/codecov/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/codecov/subscriptions\", \"organizations_url\": \"https://api.github.com/users/codecov/orgs\", \"repos_url\": \"https://api.github.com/users/codecov/repos\", \"events_url\": \"https://api.github.com/users/codecov/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/codecov/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Codecov\", \"description\": \"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.\\r\\n\\r\\n## Code coverage done right.\u00ae\\r\\n\\r\\n1. Upload coverage reports from your CI builds.\\r\\n2. Codecov merges all builds and languages into one beautiful coherent report.\\r\\n3. Get commit statuses, pull request comments and coverage overlay via our browser extension.\\r\\n\\r\\nWhen Codecov merges your uploads it keeps track of the CI provider (inc. build details) and user specified context, e.g. `#unittest` ~ `#smoketest` or `#oldcode` ~ `#newcode`. You can track the `#unittest` coverage independently of other groups. [Learn more here](\\r\\nhttp://docs.codecov.io/docs/flags)\\r\\n\\r\\nThrough **Codecov's Browser Extension** reports overlay directly in GitHub UI to assist in code review in [Chrome](https://chrome.google.com/webstore/detail/codecov/gedikamndpbemklijjkncpnolildpbgo) or Firefox (https://addons.mozilla.org/en-US/firefox/addon/codecov/)\\r\\n\\r\\n*Highly detailed* **pull request comments** and *customizable* **commit statuses** will improve your team's workflow and code coverage incrementally.\\r\\n\\r\\n**File backed configuration** all through the `codecov.yml`. \\r\\n\\r\\n## FAQ\\r\\n- Do you **merge multiple uploads** to the same commit? **Yes**\\r\\n- Do you **support multiple languages** in the same project? **Yes**\\r\\n- Can you **group coverage reports** by project and/or test type? **Yes**\\r\\n- How does **pricing** work? Only paid users can view reports and post statuses/comments. \", \"external_url\": \"https://codecov.io\", \"html_url\": \"https://github.com/apps/codecov\", \"created_at\": \"2016-09-25T14:18:27Z\", \"updated_at\": \"2023-09-08T15:29:16Z\", \"permissions\": {\"administration\": \"read\", \"checks\": \"write\", \"contents\": \"read\", \"emails\": \"read\", \"issues\": \"read\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"write\"}, \"events\": [\"check_run\", \"check_suite\", \"create\", \"delete\", \"fork\", \"member\", \"membership\", \"organization\", \"public\", \"pull_request\", \"push\", \"release\", \"repository\", \"status\", \"team_add\"]}"} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793269219", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793269219, "node_id": "IC_kwDOCGYnMM5q4x3j", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:34:33Z", "updated_at": "2023-11-04T00:34:33Z", "author_association": "OWNER", "body": "The GIS tests now pass in that container too:\r\n```bash\r\npytest tests/test_gis.py\r\n```\r\n```\r\n======================== test session starts =========================\r\nplatform linux -- Python 3.10.12, pytest-7.4.3, pluggy-1.3.0\r\nrootdir: /tmp/sqlite-utils\r\nplugins: hypothesis-6.88.1\r\ncollected 12 items \r\n\r\ntests/test_gis.py ............ [100%]\r\n\r\n========================= 12 passed in 0.48s =========================\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793268126", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793268126, "node_id": "IC_kwDOCGYnMM5q4xme", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:31:34Z", "updated_at": "2023-11-04T00:31:34Z", "author_association": "OWNER", "body": "Testing this manually on macOS using Docker Desk top like this:\r\n```bash\r\ndocker run -it --rm arm64v8/ubuntu /bin/bash\r\n```\r\nThen inside the container:\r\n```bash\r\nuname -m\r\n```\r\nOutputs: `aarch64`\r\n\r\nThen:\r\n```bash\r\napt install spatialite-bin libsqlite3-mod-spatialite git python3 python3-venv -y\r\ncd /tmp\r\ngit clone https://github.com/simonw/sqlite-utils\r\ncd sqlite-utils\r\npython3 -m venv venv\r\nsource venv/bin/activate\r\npip install -e '.[test]'\r\nsqlite-utils memory \"select spatialite_version()\" --load-extension=spatialite\r\n```\r\nWhich output:\r\n```\r\nTraceback (most recent call last):\r\n File \"/tmp/sqlite-utils/venv/bin/sqlite-utils\", line 33, in \r\n sys.exit(load_entry_point('sqlite-utils', 'console_scripts', 'sqlite-utils')())\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1157, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1078, in main\r\n rv = self.invoke(ctx)\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1688, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1434, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 783, in invoke\r\n return __callback(*args, **kwargs)\r\n File \"/tmp/sqlite-utils/sqlite_utils/cli.py\", line 1959, in memory\r\n _load_extensions(db, load_extension)\r\n File \"/tmp/sqlite-utils/sqlite_utils/cli.py\", line 3232, in _load_extensions\r\n if \":\" in ext:\r\nTypeError: argument of type 'NoneType' is not iterable\r\n```\r\nThen I ran this:\r\n```bash\r\ngit checkout -b MikeCoats-spatialite-paths-linux-arm main\r\ngit pull https://github.com/MikeCoats/sqlite-utils.git spatialite-paths-linux-arm\r\n```\r\nAnd now:\r\n```bash\r\nsqlite-utils memory \"select spatialite_version()\" --load-extension=spatialite\r\n```\r\nOutputs:\r\n```json\r\n[{\"spatialite_version()\": \"5.0.1\"}]\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793265952", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793265952, "node_id": "IC_kwDOCGYnMM5q4xEg", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:25:34Z", "updated_at": "2023-11-04T00:25:34Z", "author_association": "OWNER", "body": "The tests failed because they found a spelling mistake in a completely unrelated area of the code - not sure why that had not been caught before.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793264654", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793264654, "node_id": "IC_kwDOCGYnMM5q4wwO", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-11-04T00:22:07Z", "updated_at": "2023-11-04T00:27:29Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`622c3a5`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/622c3a5a7dd53a09c029e2af40c2643fe7579340?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77% compared to head [(`b1a6076`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #600 +/- ##\n=======================================\n Coverage 95.77% 95.77% \n=======================================\n Files 8 8 \n Lines 2840 2840 \n=======================================\n Hits 2720 2720 \n Misses 120 120 \n```\n\n\n| [Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <\u00f8> (\u00f8)` | |\n| [sqlite\\_utils/utils.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `94.56% <\u00f8> (\u00f8)` | |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": "{\"id\": 254, \"slug\": \"codecov\", \"node_id\": \"MDM6QXBwMjU0\", \"owner\": {\"login\": \"codecov\", \"id\": 8226205, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjgyMjYyMDU=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/8226205?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/codecov\", \"html_url\": \"https://github.com/codecov\", \"followers_url\": \"https://api.github.com/users/codecov/followers\", \"following_url\": \"https://api.github.com/users/codecov/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/codecov/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/codecov/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/codecov/subscriptions\", \"organizations_url\": \"https://api.github.com/users/codecov/orgs\", \"repos_url\": \"https://api.github.com/users/codecov/repos\", \"events_url\": \"https://api.github.com/users/codecov/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/codecov/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Codecov\", \"description\": \"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.\\r\\n\\r\\n## Code coverage done right.\u00ae\\r\\n\\r\\n1. Upload coverage reports from your CI builds.\\r\\n2. Codecov merges all builds and languages into one beautiful coherent report.\\r\\n3. Get commit statuses, pull request comments and coverage overlay via our browser extension.\\r\\n\\r\\nWhen Codecov merges your uploads it keeps track of the CI provider (inc. build details) and user specified context, e.g. `#unittest` ~ `#smoketest` or `#oldcode` ~ `#newcode`. You can track the `#unittest` coverage independently of other groups. [Learn more here](\\r\\nhttp://docs.codecov.io/docs/flags)\\r\\n\\r\\nThrough **Codecov's Browser Extension** reports overlay directly in GitHub UI to assist in code review in [Chrome](https://chrome.google.com/webstore/detail/codecov/gedikamndpbemklijjkncpnolildpbgo) or Firefox (https://addons.mozilla.org/en-US/firefox/addon/codecov/)\\r\\n\\r\\n*Highly detailed* **pull request comments** and *customizable* **commit statuses** will improve your team's workflow and code coverage incrementally.\\r\\n\\r\\n**File backed configuration** all through the `codecov.yml`. \\r\\n\\r\\n## FAQ\\r\\n- Do you **merge multiple uploads** to the same commit? **Yes**\\r\\n- Do you **support multiple languages** in the same project? **Yes**\\r\\n- Can you **group coverage reports** by project and/or test type? **Yes**\\r\\n- How does **pricing** work? Only paid users can view reports and post statuses/comments. \", \"external_url\": \"https://codecov.io\", \"html_url\": \"https://github.com/apps/codecov\", \"created_at\": \"2016-09-25T14:18:27Z\", \"updated_at\": \"2023-09-08T15:29:16Z\", \"permissions\": {\"administration\": \"read\", \"checks\": \"write\", \"contents\": \"read\", \"emails\": \"read\", \"issues\": \"read\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"write\"}, \"events\": [\"check_run\", \"check_suite\", \"create\", \"delete\", \"fork\", \"member\", \"membership\", \"organization\", \"public\", \"pull_request\", \"push\", \"release\", \"repository\", \"status\", \"team_add\"]}"} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793263638", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793263638, "node_id": "IC_kwDOCGYnMM5q4wgW", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:19:58Z", "updated_at": "2023-11-04T00:19:58Z", "author_association": "OWNER", "body": "Thanks for this!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/598#issuecomment-1793274485", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/598", "id": 1793274485, "node_id": "IC_kwDOCGYnMM5q4zJ1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:46:55Z", "updated_at": "2023-11-04T00:46:55Z", "author_association": "OWNER", "body": "Manually tested. Before:\r\n\r\n![cursor-bug](https://github.com/simonw/sqlite-utils/assets/9599/3bdd30ea-1a54-4fec-b42d-793130a17bc1)\r\n\r\nAfter:\r\n\r\n![cursor-fix](https://github.com/simonw/sqlite-utils/assets/9599/015d4e4e-b40c-4a93-81f5-1a4adef69b11)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1926729132, "label": "Fixed issue #433 - CLI eats cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/598#issuecomment-1793272429", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/598", "id": 1793272429, "node_id": "IC_kwDOCGYnMM5q4ypt", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:40:34Z", "updated_at": "2023-11-04T00:40:34Z", "author_association": "OWNER", "body": "Thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1926729132, "label": "Fixed issue #433 - CLI eats cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/596#issuecomment-1793274869", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/596", "id": 1793274869, "node_id": "IC_kwDOCGYnMM5q4zP1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:47:55Z", "updated_at": "2023-11-04T00:47:55Z", "author_association": "OWNER", "body": "Thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1919296686, "label": "Fixes mapping for time fields related to mysql, closes #522"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/593#issuecomment-1710939868", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/593", "id": 1710939868, "node_id": "IC_kwDOCGYnMM5l-t7c", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-09-08T01:03:40Z", "updated_at": "2023-09-09T00:44:52Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`100.00%`** and no project coverage change.\n> Comparison is base [(`5d123f0`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/5d123f031fc4fadc98f508e0ef6b7b6671e86155?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77% compared to head [(`b86374f`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #593 +/- ##\n=======================================\n Coverage 95.77% 95.77% \n=======================================\n Files 8 8 \n Lines 2837 2840 +3 \n=======================================\n+ Hits 2717 2720 +3 \n Misses 120 120 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <100.00%> (+<0.01%)` | :arrow_up: |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/593?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1886783150, "label": ".transform() now preserves rowid values, refs #592"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1793278279", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/591", "id": 1793278279, "node_id": "IC_kwDOCGYnMM5q40FH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:58:03Z", "updated_at": "2023-11-04T00:58:03Z", "author_association": "OWNER", "body": "I'm going to abandon this PR and ship the 3.12 testing change directly to `main`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1884335789, "label": "Test against Python 3.12 preview"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1708695907", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/591", "id": 1708695907, "node_id": "IC_kwDOCGYnMM5l2KFj", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-06T16:15:59Z", "updated_at": "2023-09-06T16:19:14Z", "author_association": "OWNER", "body": "The test failure was while installing `numpy`, relating to importing `distutils` - maybe relevant:\r\n- https://github.com/pypa/setuptools/issues/3661\r\n\r\n```\r\n25h Installing build dependencies: started\r\n Installing build dependencies: finished with status 'done'\r\n Getting requirements to build wheel: started\r\n Getting requirements to build wheel: finished with status 'done'\r\nERROR: Exception:\r\nTraceback (most recent call last):\r\n...\r\n File \"/opt/hostedtoolcache/Python/3.12.0-rc.2/x64/lib/python3.12/site-packages/pip/_internal/utils/misc.py\", line 697, in get_requires_for_build_wheel\r\n return super().get_requires_for_build_wheel(config_settings=cs)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"/opt/hostedtoolcache/Python/3.12.0-rc.2/x64/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py\", line 166, in get_requires_for_build_wheel\r\n return self._call_hook('get_requires_for_build_wheel', {\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"/opt/hostedtoolcache/Python/3.12.0-rc.2/x64/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py\", line 321, in _call_hook\r\n raise BackendUnavailable(data.get('traceback', ''))\r\npip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):\r\n File \"/opt/hostedtoolcache/Python/3.12.0-rc.2/x64/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py\", line 77, in _build_backend\r\n obj = import_module(mod_path)\r\n ^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"/opt/hostedtoolcache/Python/3.12.0-rc.2/x64/lib/python3.12/importlib/__init__.py\", line 90, in import_module\r\n return _bootstrap._gcd_import(name[level:], package, level)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"\", line 1381, in _gcd_import\r\n File \"\", line 1354, in _find_and_load\r\n File \"\", line 1304, in _find_and_load_unlocked\r\n File \"\", line 488, in _call_with_frames_removed\r\n File \"\", line 1381, in _gcd_import\r\n File \"\", line 1354, in _find_and_load\r\n File \"\", line 1325, in _find_and_load_unlocked\r\n File \"\", line 929, in _load_unlocked\r\n File \"\", line 994, in exec_module\r\n File \"\", line 488, in _call_with_frames_removed\r\n File \"/tmp/pip-build-env-x9nyg3kd/overlay/lib/python3.12/site-packages/setuptools/__init__.py\", line 10, in \r\n import distutils.core\r\nModuleNotFoundError: No module named 'distutils'\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1884335789, "label": "Test against Python 3.12 preview"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1708693020", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/591", "id": 1708693020, "node_id": "IC_kwDOCGYnMM5l2JYc", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-09-06T16:14:03Z", "updated_at": "2023-11-04T00:54:25Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/591?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`347fdc8`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/347fdc865e91b8d3410f49a5c9d5b499fbb594c1?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.74% compared to head [(`1f14df1`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/591?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.74%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #591 +/- ##\n=======================================\n Coverage 95.74% 95.74% \n=======================================\n Files 8 8 \n Lines 2842 2842 \n=======================================\n Hits 2721 2721 \n Misses 121 121 \n```\n\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/591?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1884335789, "label": "Test against Python 3.12 preview"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683164661", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683164661, "node_id": "IC_kwDOCGYnMM5kUw31", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:45:53Z", "updated_at": "2023-08-18T00:45:53Z", "author_association": "OWNER", "body": "More updated documentation:\r\n- https://sqlite-utils--584.org.readthedocs.build/en/584/reference.html#sqlite_utils.db.Table.transform\r\n- https://sqlite-utils--584.org.readthedocs.build/en/584/python-api.html#python-api-transform-add-foreign-key-constraints", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683145819", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683145819, "node_id": "IC_kwDOCGYnMM5kUsRb", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:17:26Z", "updated_at": "2023-08-18T00:17:26Z", "author_association": "OWNER", "body": "Updated documentation: https://sqlite-utils--584.org.readthedocs.build/en/584/python-api.html#adding-foreign-key-constraints", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683145110", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683145110, "node_id": "IC_kwDOCGYnMM5kUsGW", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:16:28Z", "updated_at": "2023-08-18T00:16:48Z", "author_association": "OWNER", "body": "One last piece of documentation: need to document the new option to `table.transform()` and `table.transform_sql()`:\r\n\r\nhttps://github.com/simonw/sqlite-utils/blob/0771ac61fe5c2aca74075b20b1a99b9bd4c65661/sqlite_utils/db.py#L1706-L1708\r\n\r\nI should write tests for them too.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683143723", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683143723, "node_id": "IC_kwDOCGYnMM5kUrwr", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:14:52Z", "updated_at": "2023-08-18T00:14:52Z", "author_association": "OWNER", "body": "Another docs update: this bit in here https://sqlite-utils.datasette.io/en/3.34/python-api.html#adding-multiple-foreign-key-constraints-at-once talks about how `.add_foreign_keys()` is a performance optimization to avoid having to run VACUUM a bunch of separate times:\r\n\r\n> The final step in adding a new foreign key to a SQLite database is to run `VACUUM`, to ensure the new foreign key is available in future introspection queries.\r\n> \r\n> `VACUUM` against a large (multi-GB) database can take several minutes or longer. If you are adding multiple foreign keys using `table.add_foreign_key(...)` these can quickly add up.\r\n> \r\n> Instead, you can use `db.add_foreign_keys(...)` to add multiple foreign keys within a single transaction. This method takes a list of four-tuples, each one specifying a `table`, `column`, `other_table` and `other_column`.\r\n\r\nThat doesn't apply any more - the new mechanism using `.transform()` works completely differently, so this issue around running VACUUM no longer applies.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683139304", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683139304, "node_id": "IC_kwDOCGYnMM5kUqro", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:09:56Z", "updated_at": "2023-08-18T00:09:56Z", "author_association": "OWNER", "body": "Upgrading `flake8` locally replicated the error:\r\n```\r\npip install -U flake8\r\nflake8\r\n```\r\n```\r\n./tests/test_recipes.py:99:9: F811 redefinition of unused 'fn' from line 96\r\n./tests/test_recipes.py:127:9: F811 redefinition of unused 'fn' from line 124\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683138953", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683138953, "node_id": "IC_kwDOCGYnMM5kUqmJ", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:09:20Z", "updated_at": "2023-08-18T00:09:20Z", "author_association": "OWNER", "body": "Weird, I'm getting a `flake8` problem in CI which doesn't occur on my laptop:\r\n```\r\n./tests/test_recipes.py:99:9: F811 redefinition of unused 'fn' from line 96\r\n./tests/test_recipes.py:127:9: F811 redefinition of unused 'fn' from line 124\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683137259", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683137259, "node_id": "IC_kwDOCGYnMM5kUqLr", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-18T00:06:59Z", "updated_at": "2023-08-18T00:06:59Z", "author_association": "OWNER", "body": "The docs still describe the old trick, I need to update that: https://sqlite-utils.datasette.io/en/3.34/python-api.html#adding-foreign-key-constraints", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683122767", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683122767, "node_id": "IC_kwDOCGYnMM5kUmpP", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-17T23:46:09Z", "updated_at": "2023-08-17T23:46:09Z", "author_association": "OWNER", "body": "Oops, `mypy` failures:\r\n\r\n```\r\nsqlite_utils/db.py:781: error: Incompatible types in assignment (expression has type \"Tuple[Any, ...]\", variable has type \"Union[str, ForeignKey, Tuple[str, str], Tuple[str, str, str], Tuple[str, str, str, str]]\") [assignment]\r\nsqlite_utils/db.py:1164: error: Need type annotation for \"by_table\" (hint: \"by_table: Dict[, ] = ...\") [var-annotated]\r\nsqlite_utils/db.py:1169: error: Item \"View\" of \"Union[Table, View]\" has no attribute \"transform\" [union-attr]\r\nsqlite_utils/db.py:1813: error: Argument 1 to \"append\" of \"list\" has incompatible type \"ForeignKey\"; expected [arg-type]\r\nsqlite_utils/db.py:1824: error: Argument 1 to \"append\" of \"list\" has incompatible type \"ForeignKey\"; expected [arg-type]\r\nFound 5 errors in 1 file (checked 56 source files)\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683122490", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683122490, "node_id": "IC_kwDOCGYnMM5kUmk6", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-08-17T23:45:44Z", "updated_at": "2023-08-18T00:46:07Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`92.85%`** and project coverage change: **`-0.07%`** :warning:\n> Comparison is base [(`1dc6b5a`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/1dc6b5aa644a92d3654f7068110ed7930989ce71?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.82% compared to head [(`2915050`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.76%.\n> Report is 1 commits behind head on main.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #584 +/- ##\n==========================================\n- Coverage 95.82% 95.76% -0.07% \n==========================================\n Files 8 8 \n Lines 2829 2834 +5 \n==========================================\n+ Hits 2711 2714 +3 \n- Misses 118 120 +2 \n```\n\n\n| [Files Changed](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <92.85%> (-0.15%)` | :arrow_down: |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/584?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683118376", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683118376, "node_id": "IC_kwDOCGYnMM5kUlko", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-17T23:41:10Z", "updated_at": "2023-08-17T23:41:10Z", "author_association": "OWNER", "body": "The problem here is that the table created by this line:\r\n```python\r\nfresh_db.create_table(\"breeds\", {\"name\": str})\r\n```\r\nHas this schema:\r\n```sql\r\nCREATE TABLE [breeds] (\r\n [name] TEXT\r\n);\r\n```\r\nSQLite creates an invisible `rowid` column for it automatically.\r\n\r\nOn the `main` branch with the old implementation that table ends up looking like this after the foreign key has been added:\r\n```sql\r\n(Pdb) print(fresh_db.schema)\r\nCREATE TABLE [dogs] (\r\n [name] TEXT\r\n, [breed_id] INTEGER,\r\n FOREIGN KEY([breed_id]) REFERENCES [breeds]([rowid])\r\n);\r\nCREATE TABLE [breeds] (\r\n [name] TEXT\r\n);\r\n```\r\nBut I think this validation check is failing now: https://github.com/simonw/sqlite-utils/blob/842b61321fc6a9f0bdb913ab138e39d71bf42e00/sqlite_utils/db.py#L875-L884\r\n\r\nHere's what the debugger reveals about this code:\r\n```python\r\n for fk in foreign_keys:\r\n if fk.other_table == name and columns.get(fk.other_column):\r\n continue\r\n if not any(\r\n c for c in self[fk.other_table].columns if c.name == fk.other_column\r\n ):\r\n raise AlterError(\r\n \"No such column: {}.{}\".format(fk.other_table, fk.other_column)\r\n )\r\n```\r\n```\r\n(Pdb) fk\r\nForeignKey(table='dogs', column='breed_id', other_table='breeds', other_column='rowid')\r\n(Pdb) self[fk.other_table].columns\r\n[Column(cid=0, name='name', type='TEXT', notnull=0, default_value=None, is_pk=0)]\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683114719", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683114719, "node_id": "IC_kwDOCGYnMM5kUkrf", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-17T23:36:02Z", "updated_at": "2023-08-17T23:36:02Z", "author_association": "OWNER", "body": "Just these three lines recreate the problem:\r\n```python\r\nfrom sqlite_utils import Database\r\n\r\nfresh_db = Database(memory=True)\r\n\r\nfresh_db.create_table(\"dogs\", {\"name\": str})\r\nfresh_db.create_table(\"breeds\", {\"name\": str})\r\nfresh_db[\"dogs\"].add_column(\"breed_id\", fk=\"breeds\")\r\n```\r\nTraceback:\r\n```\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/Users/simon/Dropbox/Development/sqlite-utils/sqlite_utils/db.py\", line 2170, in add_column\r\n self.add_foreign_key(col_name, fk, fk_col)\r\n File \"/Users/simon/Dropbox/Development/sqlite-utils/sqlite_utils/db.py\", line 2273, in add_foreign_key\r\n self.db.add_foreign_keys([(self.name, column, other_table, other_column)])\r\n File \"/Users/simon/Dropbox/Development/sqlite-utils/sqlite_utils/db.py\", line 1169, in add_foreign_keys\r\n self[table].transform(add_foreign_keys=fks)\r\n File \"/Users/simon/Dropbox/Development/sqlite-utils/sqlite_utils/db.py\", line 1728, in transform\r\n sqls = self.transform_sql(\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"/Users/simon/Dropbox/Development/sqlite-utils/sqlite_utils/db.py\", line 1896, in transform_sql\r\n self.db.create_table_sql(\r\n File \"/Users/simon/Dropbox/Development/sqlite-utils/sqlite_utils/db.py\", line 882, in create_table_sql\r\n raise AlterError(\r\nsqlite_utils.db.AlterError: No such column: breeds.rowid\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683112857", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683112857, "node_id": "IC_kwDOCGYnMM5kUkOZ", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-17T23:33:58Z", "updated_at": "2023-08-17T23:33:58Z", "author_association": "OWNER", "body": "Full test:\r\n\r\nhttps://github.com/simonw/sqlite-utils/blob/842b61321fc6a9f0bdb913ab138e39d71bf42e00/tests/test_create.py#L468-L484", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683112298", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584", "id": 1683112298, "node_id": "IC_kwDOCGYnMM5kUkFq", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-08-17T23:33:14Z", "updated_at": "2023-08-17T23:33:14Z", "author_association": "OWNER", "body": "Just one failing test left:\r\n\r\n```\r\n # Soundness check foreign_keys point to existing tables\r\n for fk in foreign_keys:\r\n if fk.other_table == name and columns.get(fk.other_column):\r\n continue\r\n if not any(\r\n c for c in self[fk.other_table].columns if c.name == fk.other_column\r\n ):\r\n> raise AlterError(\r\n \"No such column: {}.{}\".format(fk.other_table, fk.other_column)\r\n )\r\nE sqlite_utils.db.AlterError: No such column: breeds.rowid\r\n\r\nsqlite_utils/db.py:882: AlterError\r\n==== short test summary info ====\r\nFAILED tests/test_create.py::test_add_column_foreign_key - sqlite_utils.db.AlterError: No such column: breeds.rowid\r\n==== 1 failed, 378 deselected in 0.49s ====\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1855838223, "label": ".transform() instead of modifying sqlite_master for add_foreign_keys"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/573#issuecomment-1646687103", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/573", "id": 1646687103, "node_id": "IC_kwDOCGYnMM5iJnN_", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T22:58:35Z", "updated_at": "2023-07-22T22:58:35Z", "author_association": "OWNER", "body": "https://sqlite-utils--573.org.readthedocs.build/en/573/plugins.html#prepare-connection-conn\r\n\r\n\"image\"\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1816917522, "label": "feat: Implement a prepare_connection plugin hook"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/573#issuecomment-1646686675", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/573", "id": 1646686675, "node_id": "IC_kwDOCGYnMM5iJnHT", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T22:54:38Z", "updated_at": "2023-07-22T22:54:38Z", "author_association": "OWNER", "body": "\"image\"\r\n\r\nGlitch in the rendered documentation from https://sqlite-utils--573.org.readthedocs.build/en/573/plugins.html#prepare-connection-conn", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1816917522, "label": "feat: Implement a prepare_connection plugin hook"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/573#issuecomment-1646686382", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/573", "id": 1646686382, "node_id": "IC_kwDOCGYnMM5iJnCu", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-07-22T22:52:22Z", "updated_at": "2023-07-22T22:56:49Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`100.00`**% and project coverage change: **`+0.03`** :tada:\n> Comparison is base [(`86a352f`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/86a352f8b713ca30a65a2048170bd510d529d8c4?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.09% compared to head [(`faf398f`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.12%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #573 +/- ##\n==========================================\n+ Coverage 96.09% 96.12% +0.03% \n==========================================\n Files 8 8 \n Lines 2794 2816 +22 \n==========================================\n+ Hits 2685 2707 +22 \n Misses 109 109 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/\\_\\_init\\_\\_.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL19faW5pdF9fLnB5) | `100.00% <100.00%> (\u00f8)` | |\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.36% <100.00%> (+0.01%)` | :arrow_up: |\n| [sqlite\\_utils/hookspecs.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2hvb2tzcGVjcy5weQ==) | `100.00% <100.00%> (\u00f8)` | |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/573?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1816917522, "label": "feat: Implement a prepare_connection plugin hook"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/573#issuecomment-1646686332", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/573", "id": 1646686332, "node_id": "IC_kwDOCGYnMM5iJnB8", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T22:52:01Z", "updated_at": "2023-07-22T22:52:01Z", "author_association": "OWNER", "body": "I was literally seconds away from shipping version 3.34 but I this looks good so I'm going to try and get it in there.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1816917522, "label": "feat: Implement a prepare_connection plugin hook"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/57#issuecomment-527266798", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/57", "id": 527266798, "node_id": "MDEyOklzc3VlQ29tbWVudDUyNzI2Njc5OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-09-03T01:03:59Z", "updated_at": "2019-09-03T01:03:59Z", "author_association": "OWNER", "body": "Released in 1.11 - thanks again! https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-11", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 487987958, "label": "Add triggers while enabling FTS"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/57#issuecomment-527258212", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/57", "id": 527258212, "node_id": "MDEyOklzc3VlQ29tbWVudDUyNzI1ODIxMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-09-02T23:40:56Z", "updated_at": "2019-09-02T23:40:56Z", "author_association": "OWNER", "body": "This is fantastic, thanks so much.\r\n\r\nI spotted a Datasette bug triggered by this: Datasette has its own version of the `detect_fts` function - at https://github.com/simonw/datasette/blob/d224ee2c98ac39c2c6e21a0ac0c62e5c3e1ccd11/datasette/utils/__init__.py#L466-L479 - which fails to pick up FTS tables created using the new escaping pattern.\r\n\r\nIt's a bug in Datasette, not sqlite-utils - so I'll open an issue there.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 487987958, "label": "Add triggers while enabling FTS"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/57#issuecomment-527211047", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/57", "id": 527211047, "node_id": "MDEyOklzc3VlQ29tbWVudDUyNzIxMTA0Nw==", "user": {"value": 49260, "label": "amjith"}, "created_at": "2019-09-02T17:30:43Z", "updated_at": "2019-09-02T17:30:43Z", "author_association": "CONTRIBUTOR", "body": "I have merged the other PR (#56) into this one. \r\n\r\nI have incorporated your suggestions. Cheers!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 487987958, "label": "Add triggers while enabling FTS"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/57#issuecomment-527091278", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/57", "id": 527091278, "node_id": "MDEyOklzc3VlQ29tbWVudDUyNzA5MTI3OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-09-02T10:13:32Z", "updated_at": "2019-09-02T10:13:32Z", "author_association": "OWNER", "body": "This is brilliant!\r\n\r\nOne tiny suggestion: I like `--create-triggers` and `create_triggers=True` better for this as they are shorter but still capture what it dies - especially since the underlying SQL uses `CREATE TRIGGER` statements.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 487987958, "label": "Add triggers while enabling FTS"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606315321", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606315321, "node_id": "IC_kwDOCGYnMM5fvm05", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T23:18:33Z", "updated_at": "2023-06-25T23:18:33Z", "author_association": "OWNER", "body": "Documentation preview: https://sqlite-utils--560.org.readthedocs.build/en/560/installation.html#alternatives-to-sqlite3", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606310630", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606310630, "node_id": "IC_kwDOCGYnMM5fvlrm", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T23:06:07Z", "updated_at": "2023-06-25T23:06:07Z", "author_association": "OWNER", "body": "Filed an issue about the above with `pysqlite3` (which `sqlean.py` is based on) here:\r\n- https://github.com/coleifer/pysqlite3/issues/58", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606297356", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606297356, "node_id": "IC_kwDOCGYnMM5fvicM", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T22:42:41Z", "updated_at": "2023-06-25T22:42:41Z", "author_association": "OWNER", "body": "Yes that does seem to do the trick:\r\n```pycon\r\n>>> import sqlean\r\n>>> db = sqlean.connect(\"/tmp/4.db\")\r\n>>> db.execute('PRAGMA journal_mode;').fetchall()\r\n[('delete',)]\r\n>>> db.isolation_level\r\n''\r\n>>> db.execute('PRAGMA journal_mode=wal;')\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\nsqlean.dbapi2.OperationalError: cannot change into wal mode from within a transaction\r\n>>> db.isolation_level = None\r\n>>> db.isolation_level\r\n>>> db.execute('PRAGMA journal_mode=wal;')\r\n\r\n```\r\nWeird how `isolation_level` of empty string causes the error, but setting that to `None` fixes the error.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606294627", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606294627, "node_id": "IC_kwDOCGYnMM5fvhxj", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T22:40:10Z", "updated_at": "2023-06-25T22:40:10Z", "author_association": "OWNER", "body": "I suspect this has something to do with `autocommit` mode in `sqlite3` - which I may be able to turn off by setting `con.isolation_level = None`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606293382", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606293382, "node_id": "IC_kwDOCGYnMM5fvheG", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T22:34:47Z", "updated_at": "2023-06-25T22:34:47Z", "author_association": "OWNER", "body": "```pycon\r\n>>> import sqlite3\r\n>>> db = sqlite3.connect(\"/tmp/1.db\")\r\n>>> db.execute('PRAGMA journal_mode=wal;')\r\n\r\n>>> import sqlean\r\n>>> db2 = sqlean.connect(\"/tmp/2.db\")\r\n>>> db2.execute('PRAGMA journal_mode=wal;')\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\nsqlean.dbapi2.OperationalError: cannot change into wal mode from within a transaction\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606290917", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606290917, "node_id": "IC_kwDOCGYnMM5fvg3l", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T22:32:28Z", "updated_at": "2023-06-25T22:32:28Z", "author_association": "OWNER", "body": "I've fixed most of the test failures, but I still need to fix this one:\r\n\r\n> cannot change into wal mode from within a transaction", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606273005", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606273005, "node_id": "IC_kwDOCGYnMM5fvcft", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T21:47:47Z", "updated_at": "2023-06-25T21:47:47Z", "author_association": "OWNER", "body": "I can use https://github.com/simonw/sqlite-dump as an optional dependency to handle the missing `.iterdump()` method.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606270887", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606270887, "node_id": "IC_kwDOCGYnMM5fvb-n", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T21:37:12Z", "updated_at": "2023-06-26T08:21:00Z", "author_association": "OWNER", "body": "On my own laptop I got a crash running the tests - details here:\r\n\r\n- https://github.com/nalgeon/sqlean.py/issues/3", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606270055", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606270055, "node_id": "IC_kwDOCGYnMM5fvbxn", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-06-25T21:31:56Z", "updated_at": "2023-06-25T21:31:56Z", "author_association": "OWNER", "body": "Lots of failures now that I'm trying to run the tests against `sqlean.py` on macOS and Python 3.10: https://github.com/simonw/sqlite-utils/actions/runs/5371800108/jobs/9744802953\r\n\r\nA bunch of these, because `pysqlite3` chooses not to implement `.iterdump()`:\r\n```\r\n @pytest.fixture\r\n def db_to_analyze_path(db_to_analyze, tmpdir):\r\n path = str(tmpdir / \"test.db\")\r\n db = sqlite3.connect(path)\r\n> db.executescript(\"\\n\".join(db_to_analyze.conn.iterdump()))\r\nE AttributeError: 'sqlean.dbapi2.Connection' object has no attribute 'iterdump'\r\n```\r\nAlso some of these:\r\n```\r\n def test_analyze_whole_database(db):\r\n assert set(db.table_names()) == {\"one_index\", \"two_indexes\"}\r\n db.analyze()\r\n> assert set(db.table_names()) == {\"one_index\", \"two_indexes\", \"sqlite_stat1\"}\r\nE AssertionError: assert {'one_index',...'two_indexes'} == {'one_index',...'two_indexes'}\r\nE Extra items in the left set:\r\nE 'sqlite_stat4'\r\nE Full diff:\r\nE - {'two_indexes', 'sqlite_stat1', 'one_index'}\r\nE + {'two_indexes', 'sqlite_stat1', 'sqlite_stat4', 'one_index'}\r\nE ? ++++++++++++++++\r\n```\r\nApparently `sqlean.py` adds a `sqlite_stat4` table that the tests are not expecting.\r\n\r\nPlus some errors that look like this:\r\n```\r\n def test_enable_wal():\r\n runner = CliRunner()\r\n dbs = [\"test.db\", \"test2.db\"]\r\n with runner.isolated_filesystem():\r\n for dbname in dbs:\r\n db = Database(dbname)\r\n db[\"t\"].create({\"pk\": int}, pk=\"pk\")\r\n assert db.journal_mode == \"delete\"\r\n result = runner.invoke(cli.cli, [\"enable-wal\"] + dbs)\r\n> assert 0 == result.exit_code\r\nE AssertionError: assert 0 == 1\r\nE + where 1 = .exit_code\r\n```\r\nTest summary:\r\n```\r\n============ 13 failed, 909 passed, 16 skipped, 2 errors in 19.29s =============\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/560#issuecomment-1606237836", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560", "id": 1606237836, "node_id": "IC_kwDOCGYnMM5fvT6M", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-06-25T19:49:45Z", "updated_at": "2023-06-26T08:20:59Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`80.55`**% and project coverage change: **`-0.15`** :warning:\n> Comparison is base [(`2747257`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/2747257a3334d55e890b40ec58fada57ae8cfbfd?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.36% compared to head [(`5e7d27e`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.22%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #560 +/- ##\n==========================================\n- Coverage 96.36% 96.22% -0.15% \n==========================================\n Files 6 6 \n Lines 2726 2752 +26 \n==========================================\n+ Hits 2627 2648 +21 \n- Misses 99 104 +5 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/utils.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `94.56% <63.63%> (-0.62%)` | :arrow_down: |\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.33% <86.36%> (-0.20%)` | :arrow_down: |\n| [sqlite\\_utils/cli.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.22% <100.00%> (\u00f8)` | |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/560?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1773458985, "label": "Use sqlean if available in environment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/56#issuecomment-527209840", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/56", "id": 527209840, "node_id": "MDEyOklzc3VlQ29tbWVudDUyNzIwOTg0MA==", "user": {"value": 49260, "label": "amjith"}, "created_at": "2019-09-02T17:23:21Z", "updated_at": "2019-09-02T17:23:21Z", "author_association": "CONTRIBUTOR", "body": "I have updated the other PR with the changes from this one and added tests. I have also changed the escaping from double quotes to brackets. \r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 487847945, "label": "Escape the table name in populate_fts and search."}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/56#issuecomment-527090411", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/56", "id": 527090411, "node_id": "MDEyOklzc3VlQ29tbWVudDUyNzA5MDQxMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-09-02T10:10:48Z", "updated_at": "2019-09-02T10:10:48Z", "author_association": "OWNER", "body": "Good spot, thanks!\r\n\r\nWould be useful to add a test as well, derived from your above example.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 487847945, "label": "Escape the table name in populate_fts and search."}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/553#issuecomment-1556288300", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/553", "id": 1556288300, "node_id": "IC_kwDOCGYnMM5cwxMs", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-21T20:48:01Z", "updated_at": "2023-05-21T20:48:01Z", "author_association": "OWNER", "body": "If https://sqlite-utils--553.org.readthedocs.build/en/553/cli.html#running-sql-queries looks good I can merge this.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718635018, "label": "Reformatted CLI examples in docs"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/553#issuecomment-1556287870", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/553", "id": 1556287870, "node_id": "IC_kwDOCGYnMM5cwxF-", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-05-21T20:45:58Z", "updated_at": "2023-05-21T20:57:08Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/553?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch and project coverage have no change.\n> Comparison is base [(`e240133`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/e240133b11588d31dc22c632f7a7ca636c72978d?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.36% compared to head [(`0b81794`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/553?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.36%.\n\n> :exclamation: Current head 0b81794 differs from pull request most recent head 21036a5. Consider uploading reports for the commit 21036a5 to get more accurate results\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #553 +/- ##\n=======================================\n Coverage 96.36% 96.36% \n=======================================\n Files 6 6 \n Lines 2726 2726 \n=======================================\n Hits 2627 2627 \n Misses 99 99 \n```\n\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/553?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718635018, "label": "Reformatted CLI examples in docs"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/55#issuecomment-522238063", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/55", "id": 522238063, "node_id": "MDEyOklzc3VlQ29tbWVudDUyMjIzODA2Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-08-17T13:42:40Z", "updated_at": "2019-08-17T13:42:40Z", "author_association": "OWNER", "body": "I still need to implement the part of this where certain actions against views (like updating/inserting) are not allowed.\r\n\r\nI think the better way to do that is to introduce a new class - `View` - rather than reusing the existing `Table` class - since there's a lot of stuff on Table (like primary key / foreign key introspection) which simply doesn't make sense for views.\r\n\r\nThis will get a bit more complicated - maybe I need both Table and View to extend a common subclass here?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 481887482, "label": "Ability to introspect and run queries against views"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/549#issuecomment-1556242262", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/549", "id": 1556242262, "node_id": "IC_kwDOCGYnMM5cwl9W", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-21T18:00:05Z", "updated_at": "2023-05-21T18:00:05Z", "author_association": "OWNER", "body": "Failing `mypy` test: https://github.com/simonw/sqlite-utils/actions/runs/5038983349/jobs/9036828465\r\n```\r\nsqlite_utils/cli.py:37: error: Skipping analyzing \"trogon\": module is installed, but missing library stubs or py.typed marker [import]\r\nsqlite_utils/cli.py:37: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports\r\nFound 1 error in 1 file (checked 52 source files)\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718586377, "label": "TUI powered by Trogon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/549#issuecomment-1556241812", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/549", "id": 1556241812, "node_id": "IC_kwDOCGYnMM5cwl2U", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-21T17:58:25Z", "updated_at": "2023-05-21T17:58:25Z", "author_association": "OWNER", "body": "Documentation: https://sqlite-utils--549.org.readthedocs.build/en/549/cli.html#cli-tui", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718586377, "label": "TUI powered by Trogon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/549#issuecomment-1556241555", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/549", "id": 1556241555, "node_id": "IC_kwDOCGYnMM5cwlyT", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-05-21T17:57:24Z", "updated_at": "2023-05-21T18:28:44Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`83.33`**% and project coverage change: **`+0.06`** :tada:\n> Comparison is base [(`b3b100d`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/b3b100d7f5b2a76ccd4bfe8b0301a29e321d0375?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.30% compared to head [(`948692a`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.36%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #549 +/- ##\n==========================================\n+ Coverage 96.30% 96.36% +0.06% \n==========================================\n Files 6 6 \n Lines 2707 2726 +19 \n==========================================\n+ Hits 2607 2627 +20 \n+ Misses 100 99 -1 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/cli.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.22% <83.33%> (-0.03%)` | :arrow_down: |\n\n... and [1 file with indirect coverage changes](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/549?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718586377, "label": "TUI powered by Trogon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/546#issuecomment-1556213396", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/546", "id": 1556213396, "node_id": "IC_kwDOCGYnMM5cwe6U", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-21T15:58:12Z", "updated_at": "2023-05-21T16:18:46Z", "author_association": "OWNER", "body": "Documentation preview:\r\n- https://sqlite-utils--546.org.readthedocs.build/en/546/cli.html#cli-analyze-tables\r\n- https://sqlite-utils--546.org.readthedocs.build/en/546/cli-reference.html#analyze-tables\r\n- https://sqlite-utils--546.org.readthedocs.build/en/546/python-api.html#analyzing-a-column\r\n- https://sqlite-utils--546.org.readthedocs.build/en/546/reference.html#sqlite_utils.db.Table.analyze_column", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718550688, "label": "Analyze tables options: --common-limit, --no-most, --no-least"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/546#issuecomment-1556213031", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/546", "id": 1556213031, "node_id": "IC_kwDOCGYnMM5cwe0n", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-05-21T15:56:05Z", "updated_at": "2023-05-21T16:18:03Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`93.75`**% and no project coverage change.\n> Comparison is base [(`b3b100d`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/b3b100d7f5b2a76ccd4bfe8b0301a29e321d0375?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.30% compared to head [(`9f23e68`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.31%.\n\n> :exclamation: Current head 9f23e68 differs from pull request most recent head 2eca17d. Consider uploading reports for the commit 2eca17d to get more accurate results\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #546 +/- ##\n=======================================\n Coverage 96.30% 96.31% \n=======================================\n Files 6 6 \n Lines 2707 2712 +5 \n=======================================\n+ Hits 2607 2612 +5 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.37% <90.90%> (+<0.01%)` | :arrow_up: |\n| [sqlite\\_utils/cli.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.26% <100.00%> (+0.01%)` | :arrow_up: |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/546?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1718550688, "label": "Analyze tables options: --common-limit, --no-most, --no-least"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/537#issuecomment-1539157643", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/537", "id": 1539157643, "node_id": "IC_kwDOCGYnMM5bva6L", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-08T22:45:09Z", "updated_at": "2023-05-08T22:45:21Z", "author_association": "OWNER", "body": "Here's an example from the new tests:\r\n\r\nhttps://github.com/simonw/sqlite-utils/blob/a75abeb61b91a28650d3b9933e7ec80ad0d92529/tests/test_create.py#L291-L307", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1665200812, "label": "Support self-referencing FKs in `Table.create`"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/537#issuecomment-1539055393", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/537", "id": 1539055393, "node_id": "IC_kwDOCGYnMM5bvB8h", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-08T21:10:06Z", "updated_at": "2023-05-08T21:10:06Z", "author_association": "OWNER", "body": "Thanks!", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1665200812, "label": "Support self-referencing FKs in `Table.create`"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/537#issuecomment-1506200813", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/537", "id": 1506200813, "node_id": "IC_kwDOCGYnMM5Zxszt", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-04-13T01:45:22Z", "updated_at": "2023-04-13T01:45:22Z", "author_association": "NONE", "body": "## [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`100.00`**% and no project coverage change.\n> Comparison is base [(`c0251cc`)](https://codecov.io/gh/simonw/sqlite-utils/commit/c0251cc9271260de73b4227859a51fab9b4cb745?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25% compared to head [(`a75abeb`)](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #537 +/- ##\n=======================================\n Coverage 96.25% 96.25% \n=======================================\n Files 6 6 \n Lines 2671 2673 +2 \n=======================================\n+ Hits 2571 2573 +2 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.33% <100.00%> (+<0.01%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1665200812, "label": "Support self-referencing FKs in `Table.create`"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/536#issuecomment-1500893216", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/536", "id": 1500893216, "node_id": "IC_kwDOCGYnMM5ZddAg", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-04-08T13:35:42Z", "updated_at": "2023-04-08T13:35:42Z", "author_association": "NONE", "body": "## [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/536?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch and project coverage have no change.\n> Comparison is base [(`c0251cc`)](https://codecov.io/gh/simonw/sqlite-utils/commit/c0251cc9271260de73b4227859a51fab9b4cb745?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25% compared to head [(`cea05dc`)](https://codecov.io/gh/simonw/sqlite-utils/pull/536?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #536 +/- ##\n=======================================\n Coverage 96.25% 96.25% \n=======================================\n Files 6 6 \n Lines 2671 2671 \n=======================================\n Hits 2571 2571 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/536?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/utils.py](https://codecov.io/gh/simonw/sqlite-utils/pull/536?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `95.13% <\u00f8> (\u00f8)` | |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://codecov.io/gh/simonw/sqlite-utils/pull/536?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1659525418, "label": "Add paths for homebrew on Apple silicon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/531#issuecomment-1501017004", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/531", "id": 1501017004, "node_id": "IC_kwDOCGYnMM5Zd7Os", "user": {"value": 25778, "label": "eyeseast"}, "created_at": "2023-04-09T01:49:43Z", "updated_at": "2023-04-09T01:49:43Z", "author_association": "CONTRIBUTOR", "body": "I'm going to close this in favor of #536. Will try a cleaner approach to custom paths once that one is merge.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1620164673, "label": "Add paths for homebrew on Apple silicon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/531#issuecomment-1465315726", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/531", "id": 1465315726, "node_id": "IC_kwDOCGYnMM5XVvGO", "user": {"value": 25778, "label": "eyeseast"}, "created_at": "2023-03-12T22:21:56Z", "updated_at": "2023-03-12T22:21:56Z", "author_association": "CONTRIBUTOR", "body": "Exactly, that's what I was running into. On my M2 MacBook, SpatiaLite ends up in what is -- for the moment -- a non-standard location, so even when I passed in the location with `--load-extension`, I still hit an error on `create-spatial-index`.\r\n\r\nWhat I learned doing this originally is that SQLite needs to load the extension for each connection, even if all the SpatiaLite stuff is already in the database. So that's why `init_spatialite()` gets called again.\r\n\r\nHere's the code where I hit the error: https://github.com/eyeseast/boston-parcels/blob/main/Makefile#L30 It works using this branch.\r\n\r\nI'm not attached to this solution if you can think of something better. And I'm not sure, TBH, my test would actually catch what I'm after here.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1620164673, "label": "Add paths for homebrew on Apple silicon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/531#issuecomment-1465302343", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/531", "id": 1465302343, "node_id": "IC_kwDOCGYnMM5XVr1H", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-03-12T21:19:13Z", "updated_at": "2023-03-12T21:19:13Z", "author_association": "OWNER", "body": "Aah, I think I see why you wrote it like that.\r\n\r\nThe problem is that `init_spatialite()` does other stuff too:\r\n\r\nhttps://github.com/simonw/sqlite-utils/blob/fc221f9b62ed8624b1d2098e564f525c84497969/sqlite_utils/db.py#L1161-L1171\r\n\r\nSo it needs to be able to load the SpatiaLite extension from the correct place, and THEN run `select InitSpatialMetadata()` to configure the database, if needed.\r\n\r\nSo the problem you're trying to solve here is to let people optionally pass in the path to SpatiaLite if it's not one of the ones that are searched by default.\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1620164673, "label": "Add paths for homebrew on Apple silicon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/531#issuecomment-1465038901", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/531", "id": 1465038901, "node_id": "IC_kwDOCGYnMM5XUrg1", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-03-11T22:29:19Z", "updated_at": "2023-04-07T18:19:49Z", "author_association": "NONE", "body": "## [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`100.00`**% and project coverage change: **`+0.03`** :tada:\n> Comparison is base [(`c0251cc`)](https://codecov.io/gh/simonw/sqlite-utils/commit/c0251cc9271260de73b4227859a51fab9b4cb745?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25% compared to head [(`afdf618`)](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.29%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #531 +/- ##\n==========================================\n+ Coverage 96.25% 96.29% +0.03% \n==========================================\n Files 6 6 \n Lines 2671 2671 \n==========================================\n+ Hits 2571 2572 +1 \n+ Misses 100 99 -1 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/utils.py](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `95.13% <\u00f8> (\u00f8)` | |\n| [sqlite\\_utils/cli.py](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.26% <100.00%> (+0.09%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://codecov.io/gh/simonw/sqlite-utils/pull/531?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1620164673, "label": "Add paths for homebrew on Apple silicon"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/528#issuecomment-1539053230", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/528", "id": 1539053230, "node_id": "IC_kwDOCGYnMM5bvBau", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-08T21:08:23Z", "updated_at": "2023-05-08T21:08:23Z", "author_association": "OWNER", "body": "I fixed this in:\r\n- #527\r\n\r\nWill fully remove this misfeature in:\r\n- #542", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1578793661, "label": "Enable `Table.convert()` on falsey values"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/519#issuecomment-1539058795", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/519", "id": 1539058795, "node_id": "IC_kwDOCGYnMM5bvCxr", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-08T21:12:52Z", "updated_at": "2023-05-08T21:12:52Z", "author_association": "OWNER", "body": "This is a really neat fix, thank you.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 1, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1505568103, "label": "Fixes breaking DEFAULT values"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/515#issuecomment-1539077777", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/515", "id": 1539077777, "node_id": "IC_kwDOCGYnMM5bvHaR", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-05-08T21:27:10Z", "updated_at": "2023-05-08T21:27:10Z", "author_association": "OWNER", "body": "I should have spotted this PR before I shipped my own fix! https://github.com/simonw/sqlite-utils/commit/2376c452a56b0c3e75e7ca698273434e32945304", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1465194930, "label": "upsert new rows with constraints, fixes #514"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/51#issuecomment-515756563", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/51", "id": 515756563, "node_id": "MDEyOklzc3VlQ29tbWVudDUxNTc1NjU2Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-07-28T11:56:10Z", "updated_at": "2019-07-28T11:56:10Z", "author_association": "OWNER", "body": "Interesting. The tests failed presumably because the version of SQLite I am running on Travis CI doesn't have that same 999 limit. I'm going to enforce the 999 limit within the library itself, to discourage people from writing code which will fail if it runs on a host that DOES have that limit.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 473733752, "label": "Fix for too many SQL variables, closes #50"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/508#issuecomment-1297788531", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/508", "id": 1297788531, "node_id": "IC_kwDOCGYnMM5NWq5z", "user": {"value": 7908073, "label": "chapmanjacobd"}, "created_at": "2022-10-31T22:54:33Z", "updated_at": "2022-11-17T15:11:16Z", "author_association": "CONTRIBUTOR", "body": "Maybe this is actually a problem in the python sqlite bindings. Given [SQLITE's stance on this](https://www.sqlite.org/invalidutf.html) they should probably use `encode('utf-8', 'surrogatepass')`. As far as I understand the error here won't actually be resolved by this PR as-is. We would need to modify the data with `surrogateescape`... :/ or modify the sqlite3 module to use `surrogatepass`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1430563092, "label": "Allow surrogates in parameters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/508#issuecomment-1297754631", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/508", "id": 1297754631, "node_id": "IC_kwDOCGYnMM5NWioH", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-10-31T22:14:48Z", "updated_at": "2022-10-31T22:53:59Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/508?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nBase: **96.25**% // Head: **96.09**% // Decreases project coverage by **`-0.15%`** :warning:\n> Coverage data is based on head [(`2d6a149`)](https://codecov.io/gh/simonw/sqlite-utils/pull/508?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) compared to base [(`529110e`)](https://codecov.io/gh/simonw/sqlite-utils/commit/529110e7d8c4a6b1bbf5fb61f2e29d72aa95a611?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> Patch coverage: 63.63% of modified lines in pull request are covered.\n\n> :exclamation: Current head 2d6a149 differs from pull request most recent head 43a8c4c. Consider uploading reports for the commit 43a8c4c to get more accurate results\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #508 +/- ##\n==========================================\n- Coverage 96.25% 96.09% -0.16% \n==========================================\n Files 4 4 \n Lines 2401 2407 +6 \n==========================================\n+ Hits 2311 2313 +2 \n- Misses 90 94 +4 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/508?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://codecov.io/gh/simonw/sqlite-utils/pull/508/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `96.79% <63.63%> (-0.30%)` | :arrow_down: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report at Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/508?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1430563092, "label": "Allow surrogates in parameters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/499#issuecomment-1292401308", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/499", "id": 1292401308, "node_id": "IC_kwDOCGYnMM5NCHqc", "user": {"value": 7908073, "label": "chapmanjacobd"}, "created_at": "2022-10-26T17:54:26Z", "updated_at": "2022-10-26T17:54:51Z", "author_association": "CONTRIBUTOR", "body": "The problem with how it is currently is that the transformed fts table _will_ return incorrect results (unless the table was only 1 row or something), even if create_triggers was enabled previously. Maybe the simplest solution is to disable fts on a transformed table rather than try to recreate it? Thoughts?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1405196044, "label": "feat: recreate fts triggers after table transform"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/499#issuecomment-1275248761", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/499", "id": 1275248761, "node_id": "IC_kwDOCGYnMM5MAsB5", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-10-11T20:38:13Z", "updated_at": "2022-10-11T20:38:13Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/499?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nBase: **96.37**% // Head: **96.25**% // Decreases project coverage by **`-0.11%`** :warning:\n> Coverage data is based on head [(`a25e838`)](https://codecov.io/gh/simonw/sqlite-utils/pull/499?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) compared to base [(`d792dad`)](https://codecov.io/gh/simonw/sqlite-utils/commit/d792dad1cf5f16525da81b1e162fb71d469995f3?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> Patch coverage: 40.00% of modified lines in pull request are covered.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #499 +/- ##\n==========================================\n- Coverage 96.37% 96.25% -0.12% \n==========================================\n Files 4 4 \n Lines 2401 2406 +5 \n==========================================\n+ Hits 2314 2316 +2 \n- Misses 87 90 +3 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/499?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://codecov.io/gh/simonw/sqlite-utils/pull/499/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.09% <40.00%> (-0.23%)` | :arrow_down: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report at Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/499?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1405196044, "label": "feat: recreate fts triggers after table transform"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/498#issuecomment-1274153135", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/498", "id": 1274153135, "node_id": "IC_kwDOCGYnMM5L8giv", "user": {"value": 7908073, "label": "chapmanjacobd"}, "created_at": "2022-10-11T06:34:31Z", "updated_at": "2022-10-11T06:34:31Z", "author_association": "CONTRIBUTOR", "body": "nevermind it was because I was running `db[table].transform`. The fts tables would still be there but the triggers would be dropped", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1404013495, "label": "fix: enable-fts permanently save triggers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/498#issuecomment-1274097701", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/498", "id": 1274097701, "node_id": "IC_kwDOCGYnMM5L8TAl", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-10-11T05:13:37Z", "updated_at": "2022-10-11T05:13:37Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/498?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nBase: **96.37**% // Head: **96.37**% // Increases project coverage by **`+0.00%`** :tada:\n> Coverage data is based on head [(`75577e5`)](https://codecov.io/gh/simonw/sqlite-utils/pull/498?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) compared to base [(`d792dad`)](https://codecov.io/gh/simonw/sqlite-utils/commit/d792dad1cf5f16525da81b1e162fb71d469995f3?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> Patch coverage: 100.00% of modified lines in pull request are covered.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #498 +/- ##\n=======================================\n Coverage 96.37% 96.37% \n=======================================\n Files 4 4 \n Lines 2401 2402 +1 \n=======================================\n+ Hits 2314 2315 +1 \n Misses 87 87 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/498?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://codecov.io/gh/simonw/sqlite-utils/pull/498/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.32% <100.00%> (+<0.01%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report at Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/498?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1404013495, "label": "fix: enable-fts permanently save triggers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248593835", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248593835, "node_id": "IC_kwDOCGYnMM5KbAer", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-15T20:37:14Z", "updated_at": "2022-09-15T20:37:14Z", "author_association": "OWNER", "body": "I'm going to land this anyway. The lack of a streaming JSON parser is a separate issue, I don't think it should block landing this improvement.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248591268", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248591268, "node_id": "IC_kwDOCGYnMM5Ka_2k", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-15T20:36:02Z", "updated_at": "2022-09-15T20:40:03Z", "author_association": "OWNER", "body": "I had a big CSV file lying around, I converted it to other formats like this:\r\n\r\n sqlite-utils insert /tmp/t.db t /tmp/en.openfoodfacts.org.products.csv --csv\r\n sqlite-utils rows /tmp/t.db t --nl > /tmp/big.nl\r\n sqlite-utils rows /tmp/t.db t > /tmp/big.json\r\n\r\nThen tested the progress bar like this:\r\n\r\n sqlite-utils insert /tmp/t2.db t /tmp/big.nl --nl\r\n\r\nOutput:\r\n\r\n```\r\nsqlite-utils insert /tmp/t2.db t /tmp/big.nl --nl\r\n [------------------------------------] 0%\r\n [#######-----------------------------] 20% 00:00:20\r\n```\r\nWith `--silent` it is silent.\r\n\r\nAnd for regular JSON:\r\n\r\n```\r\nsqlite-utils insert /tmp/t3.db t /tmp/big.json \r\n [####################################] 100%\r\n```\r\nThis is actually not doing the right thing. The problem is that `sqlite-utils` doesn't include a streaming JSON parser, so it instead reads that entire JSON file into memory first (exhausting the progress bar to 100% instantly) and then does the rest of the work in-memory while the bar sticks at 100%.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248582147", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248582147, "node_id": "IC_kwDOCGYnMM5Ka9oD", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-15T20:29:17Z", "updated_at": "2022-09-15T20:29:17Z", "author_association": "OWNER", "body": "This looks good to me. I need to run some manual tests before merging (it's a good sign that the automated tests pass though).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248568775", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248568775, "node_id": "IC_kwDOCGYnMM5Ka6XH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-15T20:16:14Z", "updated_at": "2022-09-15T20:16:14Z", "author_association": "OWNER", "body": "https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#using-the-python-version-input says can set the full version:\r\n\r\n```\r\n- uses: actions/setup-python@v4\r\n with:\r\n python-version: \"3.10.6\" \r\n```\r\nI'll try that.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248567323", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248567323, "node_id": "IC_kwDOCGYnMM5Ka6Ab", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-15T20:14:45Z", "updated_at": "2022-09-15T20:14:45Z", "author_association": "OWNER", "body": "There's a fix for `mypy` that has landed but isn't out in a release yet:\r\n- https://github.com/python/mypy/issues/13385\r\n\r\nFor the moment looks like pinning to Python 3.10.6 could help. Need to figure out how to do that in GitHub Actions though.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248565396", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248565396, "node_id": "IC_kwDOCGYnMM5Ka5iU", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-15T20:12:50Z", "updated_at": "2022-09-15T20:12:50Z", "author_association": "OWNER", "body": "Annoying `mypy` test failure:\r\n\r\n```\r\n/Users/runner/hostedtoolcache/Python/3.10.7/x64/lib/python3.10/site-packages/numpy/__init__.pyi:636:\r\nerror: Positional-only parameters are only supported in Python 3.8 and greater\r\n```\r\nLooks like this:\r\n- https://github.com/python/mypy/issues/13627", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/486#issuecomment-1248527646", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/486", "id": 1248527646, "node_id": "IC_kwDOCGYnMM5KawUe", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-09-15T19:34:59Z", "updated_at": "2022-09-15T20:23:12Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/486?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nBase: **96.47**% // Head: **96.52**% // Increases project coverage by **`+0.04%`** :tada:\n> Coverage data is based on head [(`0acbc68`)](https://codecov.io/gh/simonw/sqlite-utils/pull/486?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) compared to base [(`d9b9e07`)](https://codecov.io/gh/simonw/sqlite-utils/commit/d9b9e075f07a20f1137cd2e34ed5d3f1a3db4ad8?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> Patch coverage: 100.00% of modified lines in pull request are covered.\n\n> :exclamation: Current head 0acbc68 differs from pull request most recent head d5db749. Consider uploading reports for the commit d5db749 to get more accurate results\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #486 +/- ##\n==========================================\n+ Coverage 96.47% 96.52% +0.04% \n==========================================\n Files 6 6 \n Lines 2642 2646 +4 \n==========================================\n+ Hits 2549 2554 +5 \n+ Misses 93 92 -1 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/486?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/cli.py](https://codecov.io/gh/simonw/sqlite-utils/pull/486/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.86% <100.00%> (\u00f8)` | |\n| [sqlite\\_utils/utils.py](https://codecov.io/gh/simonw/sqlite-utils/pull/486/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `94.98% <100.00%> (+0.47%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report at Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/486?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1366512990, "label": "progressbar for inserts/upserts of all fileformats, closes #485"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/480#issuecomment-1232419522", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/480", "id": 1232419522, "node_id": "IC_kwDOCGYnMM5JdTrC", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-08-31T03:33:27Z", "updated_at": "2022-08-31T03:33:27Z", "author_association": "OWNER", "body": "Tests look great, thank you!", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 1, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1355433619, "label": "search_sql add include_rank option"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/480#issuecomment-1232356302", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/480", "id": 1232356302, "node_id": "IC_kwDOCGYnMM5JdEPO", "user": {"value": 7908073, "label": "chapmanjacobd"}, "created_at": "2022-08-31T01:51:49Z", "updated_at": "2022-08-31T01:51:49Z", "author_association": "CONTRIBUTOR", "body": "Thanks for pointing me to the right place", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1355433619, "label": "search_sql add include_rank option"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/480#issuecomment-1232091957", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/480", "id": 1232091957, "node_id": "IC_kwDOCGYnMM5JcDs1", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-08-30T19:45:23Z", "updated_at": "2022-08-31T03:34:37Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/480?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nBase: **96.47**% // Head: **96.47**% // Increases project coverage by **`+0.00%`** :tada:\n> Coverage data is based on head [(`3dbfca6`)](https://codecov.io/gh/simonw/sqlite-utils/pull/480?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) compared to base [(`087753c`)](https://codecov.io/gh/simonw/sqlite-utils/commit/087753cd42c406f1e060c1822dcd9b5fda3d60f4?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> Patch coverage: 100.00% of modified lines in pull request are covered.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #480 +/- ##\n=======================================\n Coverage 96.47% 96.47% \n=======================================\n Files 6 6 \n Lines 2640 2642 +2 \n=======================================\n+ Hits 2547 2549 +2 \n Misses 93 93 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/480?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://codecov.io/gh/simonw/sqlite-utils/pull/480/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.32% <100.00%> (+<0.01%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report at Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/480?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1355433619, "label": "search_sql add include_rank option"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/480#issuecomment-1232089808", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/480", "id": 1232089808, "node_id": "IC_kwDOCGYnMM5JcDLQ", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-08-30T19:43:02Z", "updated_at": "2022-08-30T19:43:02Z", "author_association": "OWNER", "body": "Yeah this seems like a reasonable addition to me. \r\n\r\nNeeds a test, which can go next to this one: https://github.com/simonw/sqlite-utils/blob/087753cd42c406f1e060c1822dcd9b5fda3d60f4/tests/test_fts.py#L561", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1355433619, "label": "search_sql add include_rank option"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/473#issuecomment-1229130453", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/473", "id": 1229130453, "node_id": "IC_kwDOCGYnMM5JQwrV", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-08-27T05:55:12Z", "updated_at": "2022-08-27T05:55:18Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/473?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\n> Merging [#473](https://codecov.io/gh/simonw/sqlite-utils/pull/473?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (72db599) into [main](https://codecov.io/gh/simonw/sqlite-utils/commit/a46a5e3a9e03dcdd8c84a92e4a5dbfa02ba461fa?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (a46a5e3) will **decrease** coverage by `0.07%`.\n> The diff coverage is `50.00%`.\n\n```diff\n@@ Coverage Diff @@\n## main #473 +/- ##\n==========================================\n- Coverage 96.67% 96.60% -0.08% \n==========================================\n Files 6 6 \n Lines 2587 2590 +3 \n==========================================\n+ Hits 2501 2502 +1 \n- Misses 86 88 +2 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/473?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/cli.py](https://codecov.io/gh/simonw/sqlite-utils/pull/473/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2NsaS5weQ==) | `95.94% <50.00%> (-0.18%)` | :arrow_down: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1352953535, "label": "Support entrypoints for `--load-extension`"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/468#issuecomment-1229303691", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/468", "id": 1229303691, "node_id": "IC_kwDOCGYnMM5JRa-L", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-08-27T23:13:06Z", "updated_at": "2022-08-27T23:13:06Z", "author_association": "OWNER", "body": "Documentation:\r\n- https://sqlite-utils--468.org.readthedocs.build/en/468/python-api.html#explicitly-creating-a-table\r\n- https://sqlite-utils--468.org.readthedocs.build/en/468/cli.html#creating-tables", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1348294436, "label": "db[table].create(..., transform=True) and create-table --transform"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/468#issuecomment-1229284539", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/468", "id": 1229284539, "node_id": "IC_kwDOCGYnMM5JRWS7", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-08-27T22:54:07Z", "updated_at": "2022-08-27T22:55:01Z", "author_association": "OWNER", "body": "Just needs documentation now, which can go here: https://sqlite-utils--468.org.readthedocs.build/en/468/python-api.html#explicitly-creating-a-table", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1348294436, "label": "db[table].create(..., transform=True) and create-table --transform"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/468#issuecomment-1229279539", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/468", "id": 1229279539, "node_id": "IC_kwDOCGYnMM5JRVEz", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-08-27T22:24:33Z", "updated_at": "2022-08-27T22:24:33Z", "author_association": "OWNER", "body": "Interesting challenge with `default_value`: I need to be able to tell if the default values passed to `.create()` differ from those in the database already.\r\n\r\nIntrospecting that is a bit tricky:\r\n\r\n```pycon\r\n>>> import sqlite_utils\r\n>>> db = sqlite_utils.Database(memory=True)\r\n>>> db[\"blah\"].create({\"id\": int, \"name\": str}, not_null=(\"name\",), defaults={\"name\": \"bob\"})\r\n\r\n>>> db[\"blah\"].columns\r\n[Column(cid=0, name='id', type='INTEGER', notnull=0, default_value=None, is_pk=0), Column(cid=1, name='name', type='TEXT', notnull=1, default_value=\"'bob'\", is_pk=0)]\r\n```\r\nNote how a default value of the Python string `bob` is represented in the results of `PRAGMA table_info()` as `default_value=\"'bob'\"` - it's got single quotes added to it!\r\n\r\nSo comparing default values from introspecting the database needs me to first parse that syntax. This may require a new table introspection method.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1348294436, "label": "db[table].create(..., transform=True) and create-table --transform"}, "performed_via_github_app": null}