issue_comments
10,495 rows sorted by issue_url descending
This data as json, CSV (advanced)
issue >30
- Redesign default .json format 55
- Show column metadata plus links for foreign keys on arbitrary query results 51
- ?_extra= support (draft) 49
- Rethink how .ext formats (v.s. ?_format=) works before 1.0 48
- Upgrade to CodeMirror 6, add SQL autocomplete 48
- JavaScript plugin hooks mechanism similar to pluggy 47
- Updated Dockerfile with SpatiaLite version 5.0 45
- Complete refactor of TableView and table.html template 45
- Port Datasette to ASGI 42
- Authentication (and permissions) as a core concept 40
- invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 36
- Deploy a live instance of demos/apache-proxy 34
- await datasette.client.get(path) mechanism for executing internal requests 33
- Maintain an in-memory SQLite table of connected databases and their tables 32
- Research: demonstrate if parallel SQL queries are worthwhile 32
- Ability to sort (and paginate) by column 31
- Server hang on parallel execution of queries to named in-memory databases 31
- Default API token authentication mechanism 30
- Port as many tests as possible to async def tests against ds_client 29
- link_or_copy_directory() error - Invalid cross-device link 28
- Add ?_extra= mechanism for requesting extra properties in JSON 27
- Export to CSV 27
- base_url configuration setting 27
- Documentation with recommendations on running Datasette in production without using Docker 27
- Optimize all those calls to index_list and foreign_key_list 27
- Support cross-database joins 26
- Ability for a canned query to write to the database 26
- table.transform() method for advanced alter table 26
- New pattern for views that return either JSON or HTML, available for plugins 26
- Proof of concept for Datasette on AWS Lambda with EFS 25
- …
id | html_url | issue_url ▲ | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
553528386 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553528386 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU1MzUyODM4Ng== | simonw 9599 | 2019-11-13T18:03:10Z | 2019-11-13T18:03:54Z | OWNER | Maybe It could be an alias for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
553528850 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553528850 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU1MzUyODg1MA== | simonw 9599 | 2019-11-13T18:04:20Z | 2019-11-13T18:04:20Z | OWNER | This is going to affect the design of the CLI subcommands as well. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
553540146 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553540146 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU1MzU0MDE0Ng== | simonw 9599 | 2019-11-13T18:33:30Z | 2019-11-13T18:33:30Z | OWNER | Maybe instead of inventing a new term I should tell people to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
553574011 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553574011 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU1MzU3NDAxMQ== | simonw 9599 | 2019-11-13T19:53:45Z | 2019-11-13T19:53:45Z | OWNER | First step: add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
554565198 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-554565198 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU1NDU2NTE5OA== | simonw 9599 | 2019-11-15T23:12:28Z | 2019-11-15T23:12:28Z | OWNER | Urgh this is going to be quite a bit of work, especially in the CLI module which shares an implementation for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
555690319 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-555690319 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU1NTY5MDMxOQ== | simonw 9599 | 2019-11-19T20:10:17Z | 2019-11-19T20:10:17Z | OWNER | Thinking about this further: I believe every time I've personally used So I'm happy with I'll still ship it as version 2.0 since it's technically a breaking change. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
569131397 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-569131397 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU2OTEzMTM5Nw== | simonw 9599 | 2019-12-26T20:49:11Z | 2019-12-26T20:49:11Z | OWNER | Don't forget to update the documentation. This will be quite an involved task. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
569226620 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-569226620 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU2OTIyNjYyMA== | simonw 9599 | 2019-12-27T09:05:29Z | 2019-12-27T09:05:36Z | OWNER | I'm going to start by ignoring the existing Then I'll figure out how to implement the new Then I'll update the documentation, and ship |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
569588216 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-569588216 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU2OTU4ODIxNg== | simonw 9599 | 2019-12-30T05:31:45Z | 2019-12-30T05:31:45Z | OWNER | Last step: update changelog and ship 2.0. Then I can close this issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
569844426 | https://github.com/simonw/sqlite-utils/issues/66#issuecomment-569844426 | https://api.github.com/repos/simonw/sqlite-utils/issues/66 | MDEyOklzc3VlQ29tbWVudDU2OTg0NDQyNg== | simonw 9599 | 2019-12-31T01:30:20Z | 2019-12-31T01:30:20Z | OWNER | I shipped 2.0 - release notes here: https://sqlite-utils.readthedocs.io/en/stable/changelog.html#v2 I also wrote about it on my blog: https://simonwillison.net/2019/Dec/30/sqlite-utils-2/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
The ".upsert()" method is misnamed 521868864 | |
549430429 | https://github.com/simonw/sqlite-utils/issues/63#issuecomment-549430429 | https://api.github.com/repos/simonw/sqlite-utils/issues/63 | MDEyOklzc3VlQ29tbWVudDU0OTQzMDQyOQ== | simonw 9599 | 2019-11-04T16:20:35Z | 2019-11-04T16:20:35Z | OWNER | I don't think we need this. We already have a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
ensure_index() method 517241040 | |
549418134 | https://github.com/simonw/sqlite-utils/issues/62#issuecomment-549418134 | https://api.github.com/repos/simonw/sqlite-utils/issues/62 | MDEyOklzc3VlQ29tbWVudDU0OTQxODEzNA== | simonw 9599 | 2019-11-04T15:54:18Z | 2019-11-04T15:54:18Z | OWNER | This is a good idea. The individual row version of it can work like the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[enhancement] Method to delete a row in python 500783373 | |
549425012 | https://github.com/simonw/sqlite-utils/issues/62#issuecomment-549425012 | https://api.github.com/repos/simonw/sqlite-utils/issues/62 | MDEyOklzc3VlQ29tbWVudDU0OTQyNTAxMg== | simonw 9599 | 2019-11-04T16:09:08Z | 2019-11-04T16:09:08Z | OWNER | Documentation for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[enhancement] Method to delete a row in python 500783373 | |
549425364 | https://github.com/simonw/sqlite-utils/issues/62#issuecomment-549425364 | https://api.github.com/repos/simonw/sqlite-utils/issues/62 | MDEyOklzc3VlQ29tbWVudDU0OTQyNTM2NA== | simonw 9599 | 2019-11-04T16:09:56Z | 2019-11-04T16:09:56Z | OWNER | Since we have |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[enhancement] Method to delete a row in python 500783373 | |
549429512 | https://github.com/simonw/sqlite-utils/issues/62#issuecomment-549429512 | https://api.github.com/repos/simonw/sqlite-utils/issues/62 | MDEyOklzc3VlQ29tbWVudDU0OTQyOTUxMg== | simonw 9599 | 2019-11-04T16:18:48Z | 2019-11-04T16:18:48Z | OWNER | Documentation for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[enhancement] Method to delete a row in python 500783373 | |
549435364 | https://github.com/simonw/sqlite-utils/issues/62#issuecomment-549435364 | https://api.github.com/repos/simonw/sqlite-utils/issues/62 | MDEyOklzc3VlQ29tbWVudDU0OTQzNTM2NA== | simonw 9599 | 2019-11-04T16:30:34Z | 2019-11-04T16:30:34Z | OWNER | Released as 1.12. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[enhancement] Method to delete a row in python 500783373 | |
533818697 | https://github.com/simonw/sqlite-utils/issues/61#issuecomment-533818697 | https://api.github.com/repos/simonw/sqlite-utils/issues/61 | MDEyOklzc3VlQ29tbWVudDUzMzgxODY5Nw== | amjith 49260 | 2019-09-21T18:09:01Z | 2019-09-21T18:09:28Z | CONTRIBUTOR | @witeshadow The library version doesn't have helpers around CSV (at least not from what I can see in the code). But here's a snippet that makes it easy to insert from CSV using the library. ``` import csv from sqlite_utils import Database CSV Readercsv_file = open("filename.csv") # open the csv file. reader = csv.reader(csv_file) # Create a CSV reader headers = next(reader) # First line is the header docs = (dict(zip(headers, row)) for row in reader) Now you can use the
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
importing CSV to SQLite as library 491219910 | |
549432592 | https://github.com/simonw/sqlite-utils/issues/61#issuecomment-549432592 | https://api.github.com/repos/simonw/sqlite-utils/issues/61 | MDEyOklzc3VlQ29tbWVudDU0OTQzMjU5Mg== | simonw 9599 | 2019-11-04T16:25:01Z | 2019-11-04T16:25:01Z | OWNER | Yeah I've thought about this a bit and I'm OK leaving it out. The core idea of The I could turn this into a reusable helper function but since it wouldn't have anything to do with database inserts (it would just be a helper that turns a CSV into a generator of dictionaries) it doesn't feel like it fits well in the Python library section of this package. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
importing CSV to SQLite as library 491219910 | |
1843465748 | https://github.com/simonw/sqlite-utils/issues/606#issuecomment-1843465748 | https://api.github.com/repos/simonw/sqlite-utils/issues/606 | IC_kwDOCGYnMM5t4Q4U | simonw 9599 | 2023-12-06T18:36:51Z | 2023-12-06T18:36:51Z | OWNER | I'll add |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
str and int as aliases for text and integer 2029161033 | |
1843579184 | https://github.com/simonw/sqlite-utils/issues/606#issuecomment-1843579184 | https://api.github.com/repos/simonw/sqlite-utils/issues/606 | IC_kwDOCGYnMM5t4skw | simonw 9599 | 2023-12-06T19:43:55Z | 2023-12-06T19:43:55Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
str and int as aliases for text and integer 2029161033 | ||
1846554637 | https://github.com/simonw/sqlite-utils/issues/605#issuecomment-1846554637 | https://api.github.com/repos/simonw/sqlite-utils/issues/605 | IC_kwDOCGYnMM5uEDAN | simonw 9599 | 2023-12-08T05:07:54Z | 2023-12-08T05:07:54Z | OWNER | Thanks for opening an issue - this should help future Google searchers figure out what's going on here. Another approach here could be to store large integers as Both storing as |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Insert fails with `Error: Python int too large to convert to SQLite INTEGER`; can we use `NUMERIC` here? 2007893839 | |
1843585454 | https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843585454 | https://api.github.com/repos/simonw/sqlite-utils/issues/604 | IC_kwDOCGYnMM5t4uGu | codecov[bot] 22429695 | 2023-12-06T19:48:26Z | 2023-12-08T05:05:03Z | NONE | Codecov ReportAll modified and coverable lines are covered by tests :white_check_mark:
Additional details and impacted files```diff @@ Coverage Diff @@ ## main #604 +/- ## ========================================== - Coverage 95.77% 95.72% -0.06% ========================================== Files 8 8 Lines 2842 2852 +10 ========================================== + Hits 2722 2730 +8 - Misses 120 122 +2 ```:umbrella: View full report in Codecov by Sentry. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add more STRICT table support 2001006157 | { "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" ] } |
1843586503 | https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843586503 | https://api.github.com/repos/simonw/sqlite-utils/issues/604 | IC_kwDOCGYnMM5t4uXH | simonw 9599 | 2023-12-06T19:49:10Z | 2023-12-06T19:49:29Z | OWNER | This looks really great on first glance - design is good, implementation is solid, tests and documentation look great. Looks like a couple of ``` mypy sqlite_utils tests sqlite_utils/db.py:543: error: Incompatible types in assignment (expression has type "type[Table]", variable has type "type[View]") [assignment] tests/test_lookup.py:156: error: Name "test_lookup_new_table" already defined on line 5 [no-redef] Found 2 errors in 2 files (checked 54 source files) Error: Process completed with exit code 1. ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add more STRICT table support 2001006157 | |
1843975536 | https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843975536 | https://api.github.com/repos/simonw/sqlite-utils/issues/604 | IC_kwDOCGYnMM5t6NVw | tkhattra 16437338 | 2023-12-07T01:17:05Z | 2023-12-07T01:17:05Z | CONTRIBUTOR | Apologies - I pushed a fix that addresses the mypy failures. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add more STRICT table support 2001006157 | |
1846560096 | https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1846560096 | https://api.github.com/repos/simonw/sqlite-utils/issues/604 | IC_kwDOCGYnMM5uEEVg | simonw 9599 | 2023-12-08T05:16:44Z | 2023-12-08T05:17:20Z | OWNER | Also tested this manually like so:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add more STRICT table support 2001006157 | |
1846555822 | https://github.com/simonw/sqlite-utils/issues/603#issuecomment-1846555822 | https://api.github.com/repos/simonw/sqlite-utils/issues/603 | IC_kwDOCGYnMM5uEDSu | simonw 9599 | 2023-12-08T05:09:55Z | 2023-12-08T05:10:31Z | OWNER | I'm unable to replicate this issue. This is with a fresh install of <Table foo (bar)> >>> import sys >>> sys.version '3.12.0 (v3.12.0:0fb18b02c8, Oct 2 2023, 09:45:56) [Clang 13.0.0 (clang-1300.0.29.30)]' ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pyhton 3.12 Bug report 1988525411 | |
1793263638 | https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793263638 | https://api.github.com/repos/simonw/sqlite-utils/issues/600 | IC_kwDOCGYnMM5q4wgW | simonw 9599 | 2023-11-04T00:19:58Z | 2023-11-04T00:19:58Z | OWNER | Thanks for this! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add spatialite arm64 linux path 1977004379 | |
1793264654 | https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793264654 | https://api.github.com/repos/simonw/sqlite-utils/issues/600 | IC_kwDOCGYnMM5q4wwO | codecov[bot] 22429695 | 2023-11-04T00:22:07Z | 2023-11-04T00:27:29Z | NONE | Codecov ReportAll modified and coverable lines are covered by tests :white_check_mark:
Additional details and impacted files```diff @@ Coverage Diff @@ ## main #600 +/- ## ======================================= Coverage 95.77% 95.77% ======================================= Files 8 8 Lines 2840 2840 ======================================= Hits 2720 2720 Misses 120 120 ``` | [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 Δ | | |---|---|---| | [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% <ø> (ø)` | | | [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% <ø> (ø)` | |:umbrella: View full report in Codecov by Sentry. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add spatialite arm64 linux path 1977004379 | { "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" ] } |
1793265952 | https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793265952 | https://api.github.com/repos/simonw/sqlite-utils/issues/600 | IC_kwDOCGYnMM5q4xEg | simonw 9599 | 2023-11-04T00:25:34Z | 2023-11-04T00:25:34Z | OWNER | 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. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add spatialite arm64 linux path 1977004379 | |
1793268126 | https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793268126 | https://api.github.com/repos/simonw/sqlite-utils/issues/600 | IC_kwDOCGYnMM5q4xme | simonw 9599 | 2023-11-04T00:31:34Z | 2023-11-04T00:31:34Z | OWNER | Testing this manually on macOS using Docker Desk top like this:
Then:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add spatialite arm64 linux path 1977004379 | |
1793269219 | https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793269219 | https://api.github.com/repos/simonw/sqlite-utils/issues/600 | IC_kwDOCGYnMM5q4x3j | simonw 9599 | 2023-11-04T00:34:33Z | 2023-11-04T00:34:33Z | OWNER | The GIS tests now pass in that container too:
tests/test_gis.py ............ [100%] ========================= 12 passed in 0.48s ========================= ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add spatialite arm64 linux path 1977004379 | |
457978729 | https://github.com/simonw/sqlite-utils/issues/6#issuecomment-457978729 | https://api.github.com/repos/simonw/sqlite-utils/issues/6 | MDEyOklzc3VlQ29tbWVudDQ1Nzk3ODcyOQ== | simonw 9599 | 2019-01-28T02:12:19Z | 2019-01-28T02:12:19Z | OWNER | Will need to solve #7 for this to become truly efficient. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils insert" should support newline-delimited JSON 403624090 | |
1793268750 | https://github.com/simonw/sqlite-utils/issues/599#issuecomment-1793268750 | https://api.github.com/repos/simonw/sqlite-utils/issues/599 | IC_kwDOCGYnMM5q4xwO | simonw 9599 | 2023-11-04T00:33:25Z | 2023-11-04T00:33:25Z | OWNER | See details of how I tested this here: - https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793268126 Short version: having applied this fix, the following command (on simulated |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cannot find spatialite on arm64 linux 1976986318 | |
1793272429 | https://github.com/simonw/sqlite-utils/pull/598#issuecomment-1793272429 | https://api.github.com/repos/simonw/sqlite-utils/issues/598 | IC_kwDOCGYnMM5q4ypt | simonw 9599 | 2023-11-04T00:40:34Z | 2023-11-04T00:40:34Z | OWNER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fixed issue #433 - CLI eats cursor 1926729132 | |
1793274485 | https://github.com/simonw/sqlite-utils/pull/598#issuecomment-1793274485 | https://api.github.com/repos/simonw/sqlite-utils/issues/598 | IC_kwDOCGYnMM5q4zJ1 | simonw 9599 | 2023-11-04T00:46:55Z | 2023-11-04T00:46:55Z | OWNER | Manually tested. Before: After: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fixed issue #433 - CLI eats cursor 1926729132 | |
1793274869 | https://github.com/simonw/sqlite-utils/pull/596#issuecomment-1793274869 | https://api.github.com/repos/simonw/sqlite-utils/issues/596 | IC_kwDOCGYnMM5q4zP1 | simonw 9599 | 2023-11-04T00:47:55Z | 2023-11-04T00:47:55Z | OWNER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fixes mapping for time fields related to mysql, closes #522 1919296686 | |
1733312349 | https://github.com/simonw/sqlite-utils/issues/595#issuecomment-1733312349 | https://api.github.com/repos/simonw/sqlite-utils/issues/595 | IC_kwDOCGYnMM5nUD9d | cycle-data 123451970 | 2023-09-25T09:38:13Z | 2023-09-25T09:38:57Z | NONE | Never mind When I created the connection using
I just needed to add the following statement right after and it did the trick
Hope this helps people in the future 👍 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascading DELETE not working with Table.delete(pk) 1907281675 | |
1714919806 | https://github.com/simonw/sqlite-utils/issues/594#issuecomment-1714919806 | https://api.github.com/repos/simonw/sqlite-utils/issues/594 | IC_kwDOCGYnMM5mN5l- | simonw 9599 | 2023-09-12T03:49:41Z | 2023-09-12T03:49:41Z | OWNER | Digging in a bit more: ```pycon
Right now I ignore those columns entirely: https://github.com/simonw/sqlite-utils/blob/622c3a5a7dd53a09c029e2af40c2643fe7579340/sqlite_utils/db.py#L1523-L1540 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Represent compound foreign keys in table.foreign_keys output 1891614971 | |
1714920708 | https://github.com/simonw/sqlite-utils/issues/594#issuecomment-1714920708 | https://api.github.com/repos/simonw/sqlite-utils/issues/594 | IC_kwDOCGYnMM5mN50E | simonw 9599 | 2023-09-12T03:51:13Z | 2023-09-12T03:51:13Z | OWNER | Changing this without breaking backwards compatibility (and forcing a 4.0 release) will be tricky, because I could swap it out for a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Represent compound foreign keys in table.foreign_keys output 1891614971 | |
1710939868 | https://github.com/simonw/sqlite-utils/pull/593#issuecomment-1710939868 | https://api.github.com/repos/simonw/sqlite-utils/issues/593 | IC_kwDOCGYnMM5l-t7c | codecov[bot] 22429695 | 2023-09-08T01:03:40Z | 2023-09-09T00:44:52Z | NONE | Codecov ReportPatch coverage:
Additional details and impacted files```diff @@ Coverage Diff @@ ## main #593 +/- ## ======================================= Coverage 95.77% 95.77% ======================================= Files 8 8 Lines 2837 2840 +3 ======================================= + Hits 2717 2720 +3 Misses 120 120 ``` | [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 Δ | | |---|---|---| | [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: |:umbrella: View full report in Codecov by Sentry. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() now preserves rowid values, refs #592 1886783150 | |
1710930934 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710930934 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-rv2 | simonw 9599 | 2023-09-08T00:47:57Z | 2023-09-08T00:47:57Z | OWNER | That's odd, I wrote a test for this just now and it passes already:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710931605 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710931605 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-r6V | simonw 9599 | 2023-09-08T00:49:02Z | 2023-09-08T00:49:02Z | OWNER | I tried bumping that up to 10,000 rows instead of just 3 but the test still passed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710933716 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710933716 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-sbU | simonw 9599 | 2023-09-08T00:52:42Z | 2023-09-08T00:52:42Z | OWNER | I just noticed that the table where I encountered this bug wasn't actually a The reason the But I tried this test and it passed, too:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710934448 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710934448 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-smw | simonw 9599 | 2023-09-08T00:54:03Z | 2023-09-08T00:54:03Z | OWNER | Oh! Maybe the row ID preservation here is a coincidence because the tables are created from scratch and count 1, 2, 3. If I delete a row from the table and then insert some more - breaking the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710935270 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710935270 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-szm | simonw 9599 | 2023-09-08T00:55:30Z | 2023-09-08T00:55:30Z | OWNER | Yes! That recreated the bug: ```
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1712895580 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1712895580 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5mGLZc | simonw 9599 | 2023-09-10T17:46:41Z | 2023-09-10T17:46:41Z | OWNER | In working on this I learned that https://www.sqlite.org/lang_vacuum.html#how_vacuum_works
So this fix wasn't as valuable as I thought. I need to move away from ever assuming that a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1708693020 | https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1708693020 | https://api.github.com/repos/simonw/sqlite-utils/issues/591 | IC_kwDOCGYnMM5l2JYc | codecov[bot] 22429695 | 2023-09-06T16:14:03Z | 2023-11-04T00:54:25Z | NONE | Codecov ReportAll modified and coverable lines are covered by tests :white_check_mark:
Additional details and impacted files```diff @@ Coverage Diff @@ ## main #591 +/- ## ======================================= Coverage 95.74% 95.74% ======================================= Files 8 8 Lines 2842 2842 ======================================= Hits 2721 2721 Misses 121 121 ```:umbrella: View full report in Codecov by Sentry. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against Python 3.12 preview 1884335789 | |
1708695907 | https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1708695907 | https://api.github.com/repos/simonw/sqlite-utils/issues/591 | IC_kwDOCGYnMM5l2KFj | simonw 9599 | 2023-09-06T16:15:59Z | 2023-09-06T16:19:14Z | OWNER | The test failure was while installing
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against Python 3.12 preview 1884335789 | |
1793278279 | https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1793278279 | https://api.github.com/repos/simonw/sqlite-utils/issues/591 | IC_kwDOCGYnMM5q40FH | simonw 9599 | 2023-11-04T00:58:03Z | 2023-11-04T00:58:03Z | OWNER | I'm going to abandon this PR and ship the 3.12 testing change directly to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against Python 3.12 preview 1884335789 | |
1704387161 | https://github.com/simonw/sqlite-utils/issues/590#issuecomment-1704387161 | https://api.github.com/repos/simonw/sqlite-utils/issues/590 | IC_kwDOCGYnMM5lluJZ | simonw 9599 | 2023-09-03T19:50:36Z | 2023-09-03T19:50:36Z | OWNER | Maybe just populate |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to tell if a Database is an in-memory one 1879214365 | |
1704383901 | https://github.com/simonw/sqlite-utils/issues/589#issuecomment-1704383901 | https://api.github.com/repos/simonw/sqlite-utils/issues/589 | IC_kwDOCGYnMM5lltWd | simonw 9599 | 2023-09-03T19:34:05Z | 2023-09-03T19:34:05Z | OWNER | For that particular case I realized I'd quite like to have a mechanism for applying functions for a block of code and then de-registering them at the end - a context manager. I played with this idea a bit:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for de-registering registered SQL functions 1879209560 | |
1704384111 | https://github.com/simonw/sqlite-utils/issues/589#issuecomment-1704384111 | https://api.github.com/repos/simonw/sqlite-utils/issues/589 | IC_kwDOCGYnMM5lltZv | simonw 9599 | 2023-09-03T19:35:03Z | 2023-09-03T19:35:03Z | OWNER | Normally in Python/ You can't do that with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for de-registering registered SQL functions 1879209560 | |
1704384393 | https://github.com/simonw/sqlite-utils/issues/589#issuecomment-1704384393 | https://api.github.com/repos/simonw/sqlite-utils/issues/589 | IC_kwDOCGYnMM5llteJ | simonw 9599 | 2023-09-03T19:36:34Z | 2023-09-03T19:36:34Z | OWNER | Here's a prototype: https://github.com/simonw/sqlite-utils/commit/62f673835c4a66f87cf6f949eaff43c8b014619b Still needs tests and documentation (and some more thought to make sure it's doing the right thing). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for de-registering registered SQL functions 1879209560 | |
1694823972 | https://github.com/simonw/sqlite-utils/issues/588#issuecomment-1694823972 | https://api.github.com/repos/simonw/sqlite-utils/issues/588 | IC_kwDOCGYnMM5lBPYk | simonw 9599 | 2023-08-28T00:41:54Z | 2023-08-28T00:41:54Z | OWNER | Tips on typing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.get(column=value)` option for retrieving things not by their primary key 1868713944 | |
1685096129 | https://github.com/simonw/sqlite-utils/issues/587#issuecomment-1685096129 | https://api.github.com/repos/simonw/sqlite-utils/issues/587 | IC_kwDOCGYnMM5kcIbB | simonw 9599 | 2023-08-19T20:03:00Z | 2023-08-19T20:03:00Z | OWNER | Simplest possible recreation of the bug:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New .add_foreign_key() can break if PRAGMA legacy_alter_table=ON and there's an invalid foreign key reference 1857851384 | |
1685096284 | https://github.com/simonw/sqlite-utils/issues/587#issuecomment-1685096284 | https://api.github.com/repos/simonw/sqlite-utils/issues/587 | IC_kwDOCGYnMM5kcIdc | simonw 9599 | 2023-08-19T20:03:59Z | 2023-08-19T20:03:59Z | OWNER | Although this is revealing a problem in the underlying code (that schema is invalid), it also represents a regression: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New .add_foreign_key() can break if PRAGMA legacy_alter_table=ON and there's an invalid foreign key reference 1857851384 | |
1685096381 | https://github.com/simonw/sqlite-utils/issues/587#issuecomment-1685096381 | https://api.github.com/repos/simonw/sqlite-utils/issues/587 | IC_kwDOCGYnMM5kcIe9 | simonw 9599 | 2023-08-19T20:04:32Z | 2023-08-19T20:04:32Z | OWNER | I'm inclined to say this isn't a bug in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New .add_foreign_key() can break if PRAGMA legacy_alter_table=ON and there's an invalid foreign key reference 1857851384 | |
1683396150 | https://github.com/simonw/sqlite-utils/issues/586#issuecomment-1683396150 | https://api.github.com/repos/simonw/sqlite-utils/issues/586 | IC_kwDOCGYnMM5kVpY2 | simonw 9599 | 2023-08-18T06:02:18Z | 2023-08-18T06:06:31Z | OWNER | More notes in here: - https://github.com/simonw/datasette-edit-schema/issues/35#issuecomment-1683392873 Not all Python/SQLite installations exhibit this problem by default! It turns out this is controlled by the If that PRAGMA is turned on (default in newer SQLites) then Here's a one-liner to test if it is on or not:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() fails to drop column if table is part of a view 1856075668 | |
1683398866 | https://github.com/simonw/sqlite-utils/issues/586#issuecomment-1683398866 | https://api.github.com/repos/simonw/sqlite-utils/issues/586 | IC_kwDOCGYnMM5kVqDS | simonw 9599 | 2023-08-18T06:05:50Z | 2023-08-18T06:06:42Z | OWNER | Options:
- Provide a I'm on the fence as to which of these I like the most. I'm tempted to go with the one which just drops VIEWS and recreates them all the time, because it feels simpler. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() fails to drop column if table is part of a view 1856075668 | |
1683404978 | https://github.com/simonw/sqlite-utils/issues/586#issuecomment-1683404978 | https://api.github.com/repos/simonw/sqlite-utils/issues/586 | IC_kwDOCGYnMM5kVriy | simonw 9599 | 2023-08-18T06:13:46Z | 2023-08-18T06:13:46Z | OWNER | I shipped the view recreating fix in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() fails to drop column if table is part of a view 1856075668 | |
1683195669 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683195669 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU4cV | simonw 9599 | 2023-08-18T01:24:57Z | 2023-08-18T01:24:57Z | OWNER | Currently:
Transform a table beyond the capabilities of ALTER TABLE Example:
Options: --type <TEXT CHOICE>... Change column type to INTEGER, TEXT, FLOAT or BLOB --drop TEXT Drop this column --rename <TEXT TEXT>... Rename this column to X -o, --column-order TEXT Reorder columns --not-null TEXT Set this column to NOT NULL --not-null-false TEXT Remove NOT NULL from this column --pk TEXT Make this column the primary key --pk-none Remove primary key (convert to rowid table) --default <TEXT TEXT>... Set default value for this column --default-none TEXT Remove default from this column --drop-foreign-key TEXT Drop foreign key constraint for this column --sql Output SQL without executing it --load-extension TEXT Path to SQLite extension, with optional :entrypoint -h, --help Show this message and exit. ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683197882 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683197882 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU4-6 | simonw 9599 | 2023-08-18T01:25:53Z | 2023-08-18T01:25:53Z | OWNER | Probably most relevant here is this snippet from:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683198740 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683198740 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU5MU | simonw 9599 | 2023-08-18T01:26:47Z | 2023-08-18T01:26:47Z | OWNER | The only CLI feature that supports providing just the column name appears to be this:
Add a new foreign key constraint to an existing table Example:
WARNING: Could corrupt your database! Back up your database file first.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683200128 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683200128 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU5iA | simonw 9599 | 2023-08-18T01:29:00Z | 2023-08-18T01:29:00Z | OWNER | I'm not going to implement the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683201239 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683201239 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU5zX | simonw 9599 | 2023-08-18T01:30:46Z | 2023-08-18T01:30:46Z | OWNER | Help can now look like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683212074 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683212074 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU8cq | simonw 9599 | 2023-08-18T01:43:54Z | 2023-08-18T01:43:54Z | OWNER | Some manual testing:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683217284 | https://github.com/simonw/sqlite-utils/issues/585#issuecomment-1683217284 | https://api.github.com/repos/simonw/sqlite-utils/issues/585 | IC_kwDOCGYnMM5kU9uE | simonw 9599 | 2023-08-18T01:50:21Z | 2023-08-18T01:50:21Z | OWNER | And a test of the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI equivalents to `transform(add_foreign_keys=)` 1855894222 | |
1683112298 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683112298 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUkFq | simonw 9599 | 2023-08-17T23:33:14Z | 2023-08-17T23:33:14Z | OWNER | Just one failing test left: ``` # Soundness check foreign_keys point to existing tables for fk in foreign_keys: if fk.other_table == name and columns.get(fk.other_column): continue if not any( c for c in self[fk.other_table].columns if c.name == fk.other_column ):
sqlite_utils/db.py:882: AlterError ==== short test summary info ==== FAILED tests/test_create.py::test_add_column_foreign_key - sqlite_utils.db.AlterError: No such column: breeds.rowid ==== 1 failed, 378 deselected in 0.49s ==== ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683112857 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683112857 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUkOZ | simonw 9599 | 2023-08-17T23:33:58Z | 2023-08-17T23:33:58Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | ||
1683114719 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683114719 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUkrf | simonw 9599 | 2023-08-17T23:36:02Z | 2023-08-17T23:36:02Z | OWNER | Just these three lines recreate the problem: ```python from sqlite_utils import Database fresh_db = Database(memory=True) fresh_db.create_table("dogs", {"name": str})
fresh_db.create_table("breeds", {"name": str})
fresh_db["dogs"].add_column("breed_id", fk="breeds")
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683118376 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683118376 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUlko | simonw 9599 | 2023-08-17T23:41:10Z | 2023-08-17T23:41:10Z | OWNER | The problem here is that the table created by this line:
On the Here's what the debugger reveals about this code:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683122490 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683122490 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUmk6 | codecov[bot] 22429695 | 2023-08-17T23:45:44Z | 2023-08-18T00:46:07Z | NONE | Codecov ReportPatch coverage:
Additional details and impacted files```diff @@ Coverage Diff @@ ## main #584 +/- ## ========================================== - Coverage 95.82% 95.76% -0.07% ========================================== Files 8 8 Lines 2829 2834 +5 ========================================== + Hits 2711 2714 +3 - Misses 118 120 +2 ``` | [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 Δ | | |---|---|---| | [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: |:umbrella: View full report in Codecov by Sentry. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683122767 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683122767 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUmpP | simonw 9599 | 2023-08-17T23:46:09Z | 2023-08-17T23:46:09Z | OWNER | Oops,
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683137259 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683137259 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUqLr | simonw 9599 | 2023-08-18T00:06:59Z | 2023-08-18T00:06:59Z | OWNER | 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 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683138953 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683138953 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUqmJ | simonw 9599 | 2023-08-18T00:09:20Z | 2023-08-18T00:09:20Z | OWNER | Weird, I'm getting a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683139304 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683139304 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUqro | simonw 9599 | 2023-08-18T00:09:56Z | 2023-08-18T00:09:56Z | OWNER | Upgrading |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683143723 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683143723 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUrwr | simonw 9599 | 2023-08-18T00:14:52Z | 2023-08-18T00:14:52Z | OWNER | 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
That doesn't apply any more - the new mechanism using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683145110 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683145110 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUsGW | simonw 9599 | 2023-08-18T00:16:28Z | 2023-08-18T00:16:48Z | OWNER | One last piece of documentation: need to document the new option to I should write tests for them too. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683145819 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683145819 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUsRb | simonw 9599 | 2023-08-18T00:17:26Z | 2023-08-18T00:17:26Z | OWNER | Updated documentation: https://sqlite-utils--584.org.readthedocs.build/en/584/python-api.html#adding-foreign-key-constraints |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683164661 | https://github.com/simonw/sqlite-utils/pull/584#issuecomment-1683164661 | https://api.github.com/repos/simonw/sqlite-utils/issues/584 | IC_kwDOCGYnMM5kUw31 | simonw 9599 | 2023-08-18T00:45:53Z | 2023-08-18T00:45:53Z | OWNER | More updated documentation: - https://sqlite-utils--584.org.readthedocs.build/en/584/reference.html#sqlite_utils.db.Table.transform - https://sqlite-utils--584.org.readthedocs.build/en/584/python-api.html#python-api-transform-add-foreign-key-constraints |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.transform() instead of modifying sqlite_master for add_foreign_keys 1855838223 | |
1683110636 | https://github.com/simonw/sqlite-utils/issues/583#issuecomment-1683110636 | https://api.github.com/repos/simonw/sqlite-utils/issues/583 | IC_kwDOCGYnMM5kUjrs | simonw 9599 | 2023-08-17T23:31:27Z | 2023-08-17T23:31:27Z | OWNER | Spotted this while working on: - #577 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of test.utils.collapse_whitespace 1855836914 | |
1652496702 | https://github.com/simonw/sqlite-utils/issues/581#issuecomment-1652496702 | https://api.github.com/repos/simonw/sqlite-utils/issues/581 | IC_kwDOCGYnMM5ifxk- | simonw 9599 | 2023-07-26T21:07:45Z | 2023-07-26T21:07:45Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils convert --pdb` option 1823160748 | ||
710399593 | https://github.com/simonw/sqlite-utils/issues/58#issuecomment-710399593 | https://api.github.com/repos/simonw/sqlite-utils/issues/58 | MDEyOklzc3VlQ29tbWVudDcxMDM5OTU5Mw== | simonw 9599 | 2020-10-16T18:39:31Z | 2020-10-16T18:39:31Z | OWNER | I don't think this is valuable enough to justify adding to the library - especially since you can execute FTS search against views by joining to an FTS table built against an underlying table. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support enabling FTS on views 488293926 | |
1648323482 | https://github.com/simonw/sqlite-utils/issues/578#issuecomment-1648323482 | https://api.github.com/repos/simonw/sqlite-utils/issues/578 | IC_kwDOCGYnMM5iP2ua | simonw 9599 | 2023-07-24T17:31:56Z | 2023-07-24T17:31:56Z | OWNER | The main blocker here is coming up with a design. The challenge is cleanly integrating it with the existing format options: I'd like to avoid breaking backwards compatibility. The most obvious solution is to add a Or... If I ever do release |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for adding new output formats 1818838294 | |
1648324312 | https://github.com/simonw/sqlite-utils/issues/578#issuecomment-1648324312 | https://api.github.com/repos/simonw/sqlite-utils/issues/578 | IC_kwDOCGYnMM5iP27Y | simonw 9599 | 2023-07-24T17:32:21Z | 2023-07-24T17:32:21Z | OWNER | I'm currently leaning very slightly towards |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for adding new output formats 1818838294 | |
1648325682 | https://github.com/simonw/sqlite-utils/issues/578#issuecomment-1648325682 | https://api.github.com/repos/simonw/sqlite-utils/issues/578 | IC_kwDOCGYnMM5iP3Qy | simonw 9599 | 2023-07-24T17:33:10Z | 2023-07-24T17:33:10Z | OWNER | A related feature would be support for plugins to add new ways of ingesting data - currently |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for adding new output formats 1818838294 | |
1648339661 | https://github.com/simonw/sqlite-utils/issues/578#issuecomment-1648339661 | https://api.github.com/repos/simonw/sqlite-utils/issues/578 | IC_kwDOCGYnMM5iP6rN | eyeseast 25778 | 2023-07-24T17:44:30Z | 2023-07-24T17:44:30Z | CONTRIBUTOR |
This is my goal, to have one plugin that handles input and output symmetrically. I'd like to be able to do something like this: ```sh sqlite-utils insert data.db table file.geojson --format geojson ... explore and manipulate in Datasettesqlite-utils query data.db ... --format geojson > output.geojson ``` This would work especially well with datasette-query-files, since I already have the queries I need saved in standalone SQL files. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for adding new output formats 1818838294 | |
1668113177 | https://github.com/simonw/sqlite-utils/issues/578#issuecomment-1668113177 | https://api.github.com/repos/simonw/sqlite-utils/issues/578 | IC_kwDOCGYnMM5jbWMZ | eyeseast 25778 | 2023-08-07T15:41:49Z | 2023-08-07T15:41:49Z | CONTRIBUTOR | I wonder if this should be two hooks: input and output. The current |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for adding new output formats 1818838294 | |
1683066934 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683066934 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUZA2 | simonw 9599 | 2023-08-17T22:37:18Z | 2023-08-17T22:37:18Z | OWNER | I'm certain this could work. It turns out the Improving this code to support adding foreign keys as well would be pretty simple. And then the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1683068505 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683068505 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUZZZ | simonw 9599 | 2023-08-17T22:39:17Z | 2023-08-17T22:39:38Z | OWNER | This would help address these issues, among potentially many others: - https://github.com/simonw/llm/issues/60 - https://github.com/simonw/llm/issues/116 - https://github.com/simonw/llm/issues/123 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1683071519 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683071519 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUaIf | simonw 9599 | 2023-08-17T22:42:28Z | 2023-08-17T22:42:28Z | OWNER | Looking at the whole of the At that point we have Here's the rest of that function, which will be replaced by a called to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1683074009 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683074009 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUavZ | simonw 9599 | 2023-08-17T22:45:29Z | 2023-08-17T22:47:08Z | OWNER | Actually I think |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1683074546 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683074546 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUa3y | simonw 9599 | 2023-08-17T22:46:18Z | 2023-08-17T22:46:18Z | OWNER | Maybe this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1683074857 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683074857 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUa8p | simonw 9599 | 2023-08-17T22:46:40Z | 2023-08-17T22:46:40Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | ||
1683076325 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683076325 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUbTl | simonw 9599 | 2023-08-17T22:48:36Z | 2023-08-17T22:48:36Z | OWNER | I'm inclined to just go with the It would be nice to drop some code complexity, plus I don't yet have a way of running automated tests against Python + SQLite versions that exhibit the problem. |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1683098094 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1683098094 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kUgnu | simonw 9599 | 2023-08-17T23:15:36Z | 2023-08-17T23:15:36Z | OWNER | An interesting side-effect of this change is that it does result in a slightly different schema - e.g. this test: https://github.com/simonw/sqlite-utils/blob/1dc6b5aa644a92d3654f7068110ed7930989ce71/tests/test_extract.py#L118-L133 Needs updating like so:
I don't think this should count as a breaking change release though, but it's still worth noting. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1684235760 | https://github.com/simonw/sqlite-utils/issues/577#issuecomment-1684235760 | https://api.github.com/repos/simonw/sqlite-utils/issues/577 | IC_kwDOCGYnMM5kY2Xw | simonw 9599 | 2023-08-18T17:43:11Z | 2023-08-18T17:43:11Z | OWNER | Here's a new plugin that brings back the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get `add_foreign_keys()` to work without modifying `sqlite_master` 1817289521 | |
1646752814 | https://github.com/simonw/sqlite-utils/issues/576#issuecomment-1646752814 | https://api.github.com/repos/simonw/sqlite-utils/issues/576 | IC_kwDOCGYnMM5iJ3Qu | simonw 9599 | 2023-07-23T05:43:13Z | 2023-07-23T05:43:13Z | OWNER | Using
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Backfill the release notes prior to 0.4 1816997390 | |
1646753678 | https://github.com/simonw/sqlite-utils/issues/576#issuecomment-1646753678 | https://api.github.com/repos/simonw/sqlite-utils/issues/576 | IC_kwDOCGYnMM5iJ3eO | simonw 9599 | 2023-07-23T05:49:51Z | 2023-07-23T05:49:51Z | OWNER | Done - bottom of https://sqlite-utils.datasette.io/en/latest/changelog.html#id116 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Backfill the release notes prior to 0.4 1816997390 | |
1646687461 | https://github.com/simonw/sqlite-utils/issues/575#issuecomment-1646687461 | https://api.github.com/repos/simonw/sqlite-utils/issues/575 | IC_kwDOCGYnMM5iJnTl | simonw 9599 | 2023-07-22T23:01:44Z | 2023-07-22T23:01:44Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Python API ability to opt-out of connection plugins 1816919568 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user >30