issue_comments
996 rows where author_association = "NONE" sorted by issue_url descending
This data as json, CSV (advanced)
issue >30
- link_or_copy_directory() error - Invalid cross-device link 13
- WIP: Add Gmail takeout mbox import 12
- .json and .csv exports fail to apply base_url 11
- base_url configuration setting 10
- Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 10
- Documentation with recommendations on running Datasette in production without using Docker 9
- JavaScript plugin hooks mechanism similar to pluggy 9
- Add GraphQL endpoint 8
- Call for birthday presents: if you're using Datasette, let us know how you're using it here 8
- Full text search of all tables at once? 7
- Populate "endpoint" key in ASGI scope 7
- Figure out some interesting example SQL queries 7
- Add Gmail takeout mbox import (v2) 7
- Incorrect URLs when served behind a proxy with base_url set 6
- publish heroku does not work on Windows 10 6
- Update for Big Sur 6
- Improve the display of facets information 6
- De-tangling Metadata before Datasette 1.0 6
- Metadata should be a nested arbitrary KV store 5
- Windows installation error 5
- Ways to improve fuzzy search speed on larger data sets? 5
- Redesign default .json format 5
- UNIQUE constraint failed: workouts.id 5
- Feature Request: Gmail 5
- Plugin hook for dynamic metadata 5
- i18n support 5
- datasette --root running in Docker doesn't reliably show the magic URL 5
- Datasette serve should accept paths/URLs to CSVs and other file formats 4
- Mechanism for ranking results from SQLite full-text search 4
- Port Datasette to ASGI 4
- …
id | html_url | issue_url ▲ | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1248440137 | https://github.com/simonw/sqlite-utils/issues/406#issuecomment-1248440137 | https://api.github.com/repos/simonw/sqlite-utils/issues/406 | IC_kwDOCGYnMM5Kaa9J | psychemedia 82988 | 2022-09-15T18:13:50Z | 2022-09-15T18:13:50Z | NONE | I was wondering if you have any more thoughts on this? I have a tangible use case now: adding a "vector" column to a database to support semantic search using doc2vec embeddings (example; note that the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Creating tables with custom datatypes 1128466114 | |
1041325398 | https://github.com/simonw/sqlite-utils/issues/402#issuecomment-1041325398 | https://api.github.com/repos/simonw/sqlite-utils/issues/402 | IC_kwDOCGYnMM4-EV1W | psychemedia 82988 | 2022-02-16T10:12:48Z | 2022-02-16T10:18:55Z | NONE |
Other possible pairs: unconventional date/datetime and timezone pairs eg |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Advanced class-based `conversions=` mechanism 1125297737 | |
1030807433 | https://github.com/simonw/sqlite-utils/issues/399#issuecomment-1030807433 | https://api.github.com/repos/simonw/sqlite-utils/issues/399 | IC_kwDOCGYnMM49cN-J | chris48s 6025893 | 2022-02-06T10:54:09Z | 2022-02-06T10:54:09Z | NONE |
The ewtk/ewkb ones don't accept an SRID is because ewkt encodes the SRID in the string, so you would do this with a wkt string:
but for ewkt it would be
The specs for KML and GeoJSON specify a Coordinate Reference System for the format
GML can specify the SRID in the XML at feature level e.g:
There's a few more obscure formats in there, but broadly I think it is safe to assume an SRID param exists on the function for cases where the SRID is not implied by or specified in the input format. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make it easier to insert geometries, with documentation and maybe code 1124731464 | |
1548913065 | https://github.com/simonw/sqlite-utils/issues/399#issuecomment-1548913065 | https://api.github.com/repos/simonw/sqlite-utils/issues/399 | IC_kwDOCGYnMM5cUomp | chrislkeller 433780 | 2023-05-16T03:11:03Z | 2023-05-16T03:11:52Z | NONE | Using this thread and some other resources I managed to cobble together a couple of sqlite-utils lines to add a geometry column for a table that already has a lat/lng column. ``` add a geometry columnsqlite-utils add-geometry-column [db name] [table name] geometry --type POINT --srid 4326 add a point for each row to geometry columnsqlite-utils --load-extension=spatialite [db name] 'update [table name] SET Geometry=MakePoint(longitude, latitude, 4326);' ``` |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make it easier to insert geometries, with documentation and maybe code 1124731464 | |
1029177700 | https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029177700 | https://api.github.com/repos/simonw/sqlite-utils/issues/385 | IC_kwDOCGYnMM49WAFk | codecov[bot] 22429695 | 2022-02-03T16:38:45Z | 2022-02-04T05:52:39Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #385 +/-==========================================
- Coverage 96.52% 95.91% -0.62% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new spatialite helper methods 1102899312 | |
1009531863 | https://github.com/simonw/sqlite-utils/pull/377#issuecomment-1009531863 | https://api.github.com/repos/simonw/sqlite-utils/issues/377 | IC_kwDOCGYnMM48LDvX | codecov[bot] 22429695 | 2022-01-11T02:03:00Z | 2022-01-11T02:03:00Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #377 +/-==========================================
- Coverage 96.52% 96.50% -0.02% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils bulk` command 1097477582 | |
1008158799 | https://github.com/simonw/sqlite-utils/pull/367#issuecomment-1008158799 | https://api.github.com/repos/simonw/sqlite-utils/issues/367 | IC_kwDOCGYnMM48F0hP | codecov[bot] 22429695 | 2022-01-08T21:36:55Z | 2022-01-09T02:34:44Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #367 +/-==========================================
- Coverage 96.44% 96.24% -0.21% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/db.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Initial prototype of .analyze() methods 1097041471 | |
1006219956 | https://github.com/simonw/sqlite-utils/pull/361#issuecomment-1006219956 | https://api.github.com/repos/simonw/sqlite-utils/issues/361 | IC_kwDOCGYnMM47-bK0 | codecov[bot] 22429695 | 2022-01-06T01:51:54Z | 2022-01-06T06:22:25Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #361 +/-==========================================
- Coverage 96.49% 96.44% -0.06% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--lines and --text and --convert and --import 1094890366 | |
996482595 | https://github.com/simonw/sqlite-utils/issues/358#issuecomment-996482595 | https://api.github.com/repos/simonw/sqlite-utils/issues/358 | IC_kwDOCGYnMM47ZR4j | luxint 11597658 | 2021-12-17T06:57:51Z | 2021-12-17T23:24:16Z | NONE |
I'm using them myself for the first time as well, this is a tutorial of how to use (and change) them in sqlite: https://www.sqlitetutorial.net/sqlite-check-constraint/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for CHECK constraints 1082651698 | |
1257136801 | https://github.com/simonw/sqlite-utils/issues/358#issuecomment-1257136801 | https://api.github.com/repos/simonw/sqlite-utils/issues/358 | IC_kwDOCGYnMM5K7mKh | luxint 11597658 | 2022-09-25T07:15:07Z | 2022-09-25T07:15:59Z | NONE | HI Simon, looks good, I noticed you wanted to use a regex to detect it, you might be interested in github.com/iafisher/sqliteparser which creates an ast of the create table statement, not every option supported yet but i forked it and am adding all the possible options in a create table (and create index) statement. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for CHECK constraints 1082651698 | |
982123183 | https://github.com/simonw/sqlite-utils/pull/347#issuecomment-982123183 | https://api.github.com/repos/simonw/sqlite-utils/issues/347 | IC_kwDOCGYnMM46igKv | codecov[bot] 22429695 | 2021-11-29T23:20:35Z | 2021-12-11T01:02:19Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #347 +/-=======================================
Coverage 96.51% 96.52% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against pysqlite3 running SQLite 3.37 1066603133 | |
962259527 | https://github.com/simonw/sqlite-utils/pull/337#issuecomment-962259527 | https://api.github.com/repos/simonw/sqlite-utils/issues/337 | IC_kwDOCGYnMM45WupH | urbas 771193 | 2021-11-05T22:33:02Z | 2021-11-05T22:33:02Z | NONE | Smokes, it looks like there was a bug in click 8.0.2 (fixed in 8.0.3: https://github.com/pallets/click/issues/2089). Meaning this PR is not needed. Closing. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default values for `--attach` and `--param` options 1046271107 | |
979345527 | https://github.com/simonw/sqlite-utils/pull/333#issuecomment-979345527 | https://api.github.com/repos/simonw/sqlite-utils/issues/333 | IC_kwDOCGYnMM46X6B3 | Florents-Tselai 2118708 | 2021-11-25T16:31:47Z | 2021-11-25T16:31:47Z | NONE | Thanks for your reply @simonw . Tbh, my first attempt was actually the I don't think plugins make much sense either. Probably defeats the purpose of simplicity: simple database along with a pip-able package. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add functionality to read Parquet files. 1039037439 | |
942752844 | https://github.com/simonw/sqlite-utils/pull/330#issuecomment-942752844 | https://api.github.com/repos/simonw/sqlite-utils/issues/330 | IC_kwDOCGYnMM44MURM | codecov[bot] 22429695 | 2021-10-13T22:00:31Z | 2021-10-13T22:11:30Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #330 +/-=======================================
Coverage 96.59% 96.59% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against Python 3.10 1025726600 | |
925300720 | https://github.com/simonw/sqlite-utils/issues/328#issuecomment-925300720 | https://api.github.com/repos/simonw/sqlite-utils/issues/328 | IC_kwDOCGYnMM43Jvfw | gravis 12752 | 2021-09-22T20:21:33Z | 2021-09-22T20:21:33Z | NONE | Wow, that was fast! Thank you! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Invalid JSON output when no rows 1004613267 | |
915321467 | https://github.com/simonw/sqlite-utils/pull/326#issuecomment-915321467 | https://api.github.com/repos/simonw/sqlite-utils/issues/326 | IC_kwDOCGYnMM42jrJ7 | codecov[bot] 22429695 | 2021-09-08T15:05:53Z | 2021-09-08T15:05:53Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #326 +/-=======================================
Coverage 96.58% 96.58% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against 3.10-dev 991237645 | |
905022931 | https://github.com/simonw/sqlite-utils/pull/321#issuecomment-905022931 | https://api.github.com/repos/simonw/sqlite-utils/issues/321 | IC_kwDOCGYnMM418Y3T | codecov[bot] 22429695 | 2021-08-24T22:38:38Z | 2021-08-24T23:27:26Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #321 +/-==========================================
+ Coverage 96.41% 96.58% +0.16% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to insert file contents as text, in addition to blob 978537855 | |
905003381 | https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905003381 | https://api.github.com/repos/simonw/sqlite-utils/issues/319 | IC_kwDOCGYnMM418UF1 | pjamargh 66709385 | 2021-08-24T21:56:49Z | 2021-08-24T21:56:49Z | NONE | I was thinking that an approach could be making FILE_COLUMNS a generator (_get_file_columns(mode)) or you can just have a different set of columns (is there something else that makes sense to be changed on the text scenario?). About UTF-8 I was referring to the encoding to use when reading files. This can be difficult to auto-detect but I believe that UTF-8 is pretty much the standard for text files. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[Enhancement] Please allow 'insert-files' to insert content as text. 976399638 | |
905021010 | https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905021010 | https://api.github.com/repos/simonw/sqlite-utils/issues/319 | IC_kwDOCGYnMM418YZS | pjamargh 66709385 | 2021-08-24T22:33:42Z | 2021-08-24T22:33:42Z | NONE | Oh, I misread. Yes some files will not be valid UTF-8, I'd throw a warning and continue (not adding that file) but if you want to get more elaborate you could allow to define a policy on what to do. Not adding the file, index binary content or use a conversion policy like the ones available on Python's decode. From https://stackoverflow.com/questions/24616678/unicodedecodeerror-in-python-when-reading-a-file-how-to-ignore-the-error-and-ju : - 'ignore' ignores errors. Note that ignoring encoding errors can lead to data loss. - 'replace' causes a replacement marker (such as '?') to be inserted where there is malformed data. - 'surrogateescape' will represent any incorrect bytes as code points in the Unicode Private Use Area ranging from U+DC80 to U+DCFF. These private code points will then be turned back into the same bytes when the surrogateescape error handler is used when writing data. This is useful for processing files in an unknown encoding. - 'xmlcharrefreplace' is only supported when writing to a file. Characters not supported by the encoding are replaced with the appropriate XML character reference &#nnn;. - 'backslashreplace' (also only supported when writing) replaces unsupported characters with Python’s backslashed escape sequences. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[Enhancement] Please allow 'insert-files' to insert content as text. 976399638 | |
905024066 | https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905024066 | https://api.github.com/repos/simonw/sqlite-utils/issues/319 | IC_kwDOCGYnMM418ZJC | pjamargh 66709385 | 2021-08-24T22:41:39Z | 2021-08-24T22:41:39Z | NONE | I'm happy with this functionality left the way you describe. In my case the data is homogeneous but other cases would work just by being consistent on the encoding. Thanks a lot, Simon! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[Enhancement] Please allow 'insert-files' to insert content as text. 976399638 | |
896162082 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896162082 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41alki | codecov[bot] 22429695 | 2021-08-10T17:10:39Z | 2021-08-10T23:07:35Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #312 +/-==========================================
- Coverage 96.30% 96.28% -0.03% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/db.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
944918759 | https://github.com/simonw/sqlite-utils/issues/310#issuecomment-944918759 | https://api.github.com/repos/simonw/sqlite-utils/issues/310 | IC_kwDOCGYnMM44UlDn | rdtq 22523840 | 2021-10-16T13:54:56Z | 2021-10-16T13:54:56Z | NONE | It would be cool if --flatten worked with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils insert --flatten` option to flatten nested JSON 964400482 | |
890553014 | https://github.com/simonw/sqlite-utils/pull/303#issuecomment-890553014 | https://api.github.com/repos/simonw/sqlite-utils/issues/303 | IC_kwDOCGYnMM41FMK2 | codecov[bot] 22429695 | 2021-08-01T16:53:35Z | 2021-08-02T04:45:19Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #303 +/-==========================================
+ Coverage 96.04% 96.28% +0.24% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils convert command and db[table].convert(...) method 957536983 | |
891583131 | https://github.com/simonw/sqlite-utils/issues/298#issuecomment-891583131 | https://api.github.com/repos/simonw/sqlite-utils/issues/298 | IC_kwDOCGYnMM41JHqb | qqilihq 2172260 | 2021-08-03T06:50:47Z | 2021-08-03T06:50:47Z | NONE | @simonw Awesome; thanks so much! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Read lines with JSON object 951581763 | |
1732018273 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1732018273 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM5nPIBh | radusuciu 1108600 | 2023-09-22T20:49:51Z | 2023-09-22T20:49:51Z | NONE | This would be awesome to have for multi-gig tsv and csv files! I'm currently looking at a 10 hour countdown for one such important. Not a problem because I'm lazy and happy to let it run and check on it tomorrow.. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option for importing CSV data using the SQLite .import mechanism 944846776 | |
868125750 | https://github.com/simonw/sqlite-utils/pull/293#issuecomment-868125750 | https://api.github.com/repos/simonw/sqlite-utils/issues/293 | MDEyOklzc3VlQ29tbWVudDg2ODEyNTc1MA== | codecov[bot] 22429695 | 2021-06-25T01:42:43Z | 2021-06-25T01:42:43Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #293 +/-=======================================
Coverage 96.03% 96.03% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against Python 3.10-dev 929748885 | |
866241836 | https://github.com/simonw/sqlite-utils/issues/289#issuecomment-866241836 | https://api.github.com/repos/simonw/sqlite-utils/issues/289 | MDEyOklzc3VlQ29tbWVudDg2NjI0MTgzNg== | adamchainz 857609 | 2021-06-22T18:44:36Z | 2021-06-22T18:44:36Z | NONE | Great! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mypy fixes for rows_from_file() 925677191 | |
863205049 | https://github.com/simonw/sqlite-utils/pull/277#issuecomment-863205049 | https://api.github.com/repos/simonw/sqlite-utils/issues/277 | MDEyOklzc3VlQ29tbWVudDg2MzIwNTA0OQ== | codecov[bot] 22429695 | 2021-06-17T12:40:49Z | 2021-06-17T12:40:49Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #277 +/-=======================================
Coverage 96.06% 96.06% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/cli.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
add -h support closes #276 923612361 | |
862817185 | https://github.com/simonw/sqlite-utils/pull/273#issuecomment-862817185 | https://api.github.com/repos/simonw/sqlite-utils/issues/273 | MDEyOklzc3VlQ29tbWVudDg2MjgxNzE4NQ== | codecov[bot] 22429695 | 2021-06-17T00:15:34Z | 2021-06-17T00:15:34Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #273 +/-=======================================
Coverage ? 96.10% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils memory command for directly querying CSV/JSON data 922099793 | |
860031071 | https://github.com/simonw/sqlite-utils/issues/270#issuecomment-860031071 | https://api.github.com/repos/simonw/sqlite-utils/issues/270 | MDEyOklzc3VlQ29tbWVudDg2MDAzMTA3MQ== | frafra 4068 | 2021-06-12T10:00:24Z | 2021-06-12T10:00:24Z | NONE | Sure, I am sorry if my message hasn't been clear enough. I am also a new user :) At the beginning, I just call ``` sqlite-utils transform species.sqlite species --type criteria json Usage: sqlite-utils transform [OPTIONS] PATH TABLE Try 'sqlite-utils transform --help' for help. Error: Invalid value for '--type': 'json' is not one of 'INTEGER', 'TEXT', 'FLOAT', 'BLOB'. ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cannot set type JSON 919314806 | |
862574390 | https://github.com/simonw/sqlite-utils/issues/270#issuecomment-862574390 | https://api.github.com/repos/simonw/sqlite-utils/issues/270 | MDEyOklzc3VlQ29tbWVudDg2MjU3NDM5MA== | frafra 4068 | 2021-06-16T17:34:49Z | 2021-06-16T17:34:49Z | NONE | Sorry, I got confused because SQLite has a JSON column type, even if it is treated as TEXT, and I though automatic facets were available for JSON arrays stored as JSON only :) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cannot set type JSON 919314806 | |
859940977 | https://github.com/simonw/sqlite-utils/issues/269#issuecomment-859940977 | https://api.github.com/repos/simonw/sqlite-utils/issues/269 | MDEyOklzc3VlQ29tbWVudDg1OTk0MDk3Nw== | frafra 4068 | 2021-06-11T22:33:08Z | 2021-06-11T22:33:08Z | NONE |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bool type not supported 919250621 | |
860031217 | https://github.com/simonw/sqlite-utils/issues/269#issuecomment-860031217 | https://api.github.com/repos/simonw/sqlite-utils/issues/269 | MDEyOklzc3VlQ29tbWVudDg2MDAzMTIxNw== | frafra 4068 | 2021-06-12T10:01:53Z | 2021-06-12T10:01:53Z | NONE |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bool type not supported 919250621 | |
1493052396 | https://github.com/simonw/sqlite-utils/issues/265#issuecomment-1493052396 | https://api.github.com/repos/simonw/sqlite-utils/issues/265 | IC_kwDOCGYnMM5Y_ivs | dracos 154364 | 2023-04-01T17:27:18Z | 2023-04-01T17:27:18Z | NONE |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Using enable_fts before search term 907795562 | |
1141711418 | https://github.com/simonw/sqlite-utils/issues/26#issuecomment-1141711418 | https://api.github.com/repos/simonw/sqlite-utils/issues/26 | IC_kwDOCGYnMM5EDSI6 | nileshtrivedi 19304 | 2022-05-31T06:21:15Z | 2022-05-31T06:21:15Z | NONE | I ran into this. My use case has a JSON file with array of I think the right way to declare the relationship while inserting a JSON might be to describe the relationship:
This is relying on the assumption that foreign keys can point to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for turning nested JSON into foreign keys / many-to-many 455486286 | |
1170595021 | https://github.com/simonw/sqlite-utils/issues/26#issuecomment-1170595021 | https://api.github.com/repos/simonw/sqlite-utils/issues/26 | IC_kwDOCGYnMM5FxdzN | izzues 60892516 | 2022-06-29T23:35:29Z | 2022-06-29T23:35:29Z | NONE | Have you seen MakeTypes? Not the exact same thing but it may be relevant. And it's inspired by the paper "Types from Data: Making Structured Data First-Class Citizens in F#". |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for turning nested JSON into foreign keys / many-to-many 455486286 | |
803502424 | https://github.com/simonw/sqlite-utils/issues/249#issuecomment-803502424 | https://api.github.com/repos/simonw/sqlite-utils/issues/249 | MDEyOklzc3VlQ29tbWVudDgwMzUwMjQyNA== | prabhur 36287 | 2021-03-21T02:43:32Z | 2021-03-21T02:43:32Z | NONE |
Wow. Wasn't expecting a response this quick, especially during a weekend. :-) Sincerely appreciate it.
I tried the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Full text search possibly broken? 836963850 | |
954303095 | https://github.com/simonw/sqlite-utils/issues/248#issuecomment-954303095 | https://api.github.com/repos/simonw/sqlite-utils/issues/248 | IC_kwDOCGYnMM444YJ3 | Florents-Tselai 2118708 | 2021-10-28T23:46:47Z | 2021-10-28T23:46:47Z | NONE | @mhalle maybe you can try out #333 ? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
support for Apache Arrow / parquet files I/O 836829560 | |
901344634 | https://github.com/simonw/sqlite-utils/pull/247#issuecomment-901344634 | https://api.github.com/repos/simonw/sqlite-utils/issues/247 | IC_kwDOCGYnMM41uW16 | codecov[bot] 22429695 | 2021-08-18T18:42:54Z | 2021-08-18T18:42:54Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #247 +/-==========================================
- Coverage 96.28% 96.24% -0.04% | Impacted Files | Coverage Δ | |
|---|---|---|
| sqlite_utils/db.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
FTS quote functionality from datasette 832687563 | |
801816980 | https://github.com/simonw/sqlite-utils/issues/246#issuecomment-801816980 | https://api.github.com/repos/simonw/sqlite-utils/issues/246 | MDEyOklzc3VlQ29tbWVudDgwMTgxNjk4MA== | polyrand 37962604 | 2021-03-18T10:40:32Z | 2021-03-18T10:43:04Z | NONE | I have found a similar problem, but I only when using that type of query (with
I thought I could build a query like the first one using this function:
And then I use the output of that function as the query parameter for the standard However, my use case is different because I'm the one "deciding" when to use a prefix search, not the end user. I also haven't done many tests, but maybe you found that useful. One thing I could think of is checking if the query has an This is just for prefix queries, I think having the escaping function is still useful for other use cases. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escaping FTS search strings 831751367 | |
787150276 | https://github.com/simonw/sqlite-utils/issues/242#issuecomment-787150276 | https://api.github.com/repos/simonw/sqlite-utils/issues/242 | MDEyOklzc3VlQ29tbWVudDc4NzE1MDI3Ng== | polyrand 37962604 | 2021-02-27T21:27:26Z | 2021-02-27T21:27:26Z | NONE | I had this resource by Seth Michael Larson saved https://github.com/sethmlarson/pycon-async-sync-poster I haven't had a look at it, but it may contain useful info. On twitter, I mentioned passing an aiosqlite connection during the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Async support 817989436 | |
960292442 | https://github.com/simonw/sqlite-utils/issues/239#issuecomment-960292442 | https://api.github.com/repos/simonw/sqlite-utils/issues/239 | IC_kwDOCGYnMM45POZa | tmaier 350038 | 2021-11-03T23:28:55Z | 2021-11-03T23:28:55Z | NONE | I am super interested in this feature. After reading the other issues you referenced, I think the right way would be to use the current extract feature and then to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils extract could handle nested objects 816526538 | |
960295228 | https://github.com/simonw/sqlite-utils/issues/239#issuecomment-960295228 | https://api.github.com/repos/simonw/sqlite-utils/issues/239 | IC_kwDOCGYnMM45PPE8 | tmaier 350038 | 2021-11-03T23:35:37Z | 2021-11-03T23:36:50Z | NONE | I think I only wonder how I would parse the JSON My naive approach would have been |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils extract could handle nested objects 816526538 | |
1236200834 | https://github.com/simonw/sqlite-utils/issues/239#issuecomment-1236200834 | https://api.github.com/repos/simonw/sqlite-utils/issues/239 | IC_kwDOCGYnMM5Jru2C | hubgit 14294 | 2022-09-03T21:26:32Z | 2022-09-03T21:26:32Z | NONE | I was looking for something like this today, for extracting columns containing objects (and arrays of objects) into separate tables. Would it make sense (especially for the fields containing arrays of objects) to create a one-to-many relationship, where each row of the newly created table would contain the id of the row that originally contained it? If the extracted objects have a unique id and are repeated, it could even create a many-to-many relationship, with a third table for the joins. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils extract could handle nested objects 816526538 | |
1172697090 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1172697090 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5F5fAC | mdrovdahl 474467 | 2022-07-01T20:37:40Z | 2022-07-01T20:37:55Z | NONE | I just ran into what appears to be the same issue on a MacBook Pro, M1 Pro. Environment:
Error
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1172766270 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1172766270 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5F5v4- | mdrovdahl 474467 | 2022-07-01T22:40:26Z | 2022-07-01T22:40:26Z | NONE | Note, I do not get this issue using my Intel MacBook Pro =/ Environment
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1198414383 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1198414383 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5Hblov | mdrovdahl 474467 | 2022-07-28T17:10:06Z | 2022-07-28T17:10:06Z | NONE | I was able to fight through this by capturing the SQL commands from the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1206241356 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1206241356 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5H5chM | lfdebrux 503614 | 2022-08-05T09:26:15Z | 2022-08-05T09:29:42Z | NONE | I am getting the same error when using github-to-sqlite (which uses sqlite-utils internally). I am also using an M1 MacBook Pro, with macOS Monterey 12.5, with Python 3.10.6 for arm64 installed using pyenv. I have sqlite-utils 3.28 installed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1223378004 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1223378004 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5I60RU | wpears 1558033 | 2022-08-23T00:44:11Z | 2022-08-23T00:44:11Z | NONE | This bug affects me as well. Env:
Similar to @mdrovdahl, I was able to work around this bug by piping the SQL string constructed in
Then from your terminal:
If you want to run this with |
{ "total_count": 3, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 3, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1304539296 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1304539296 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5NwbCg | ryascott 559711 | 2022-11-05T12:40:12Z | 2022-11-05T12:40:12Z | NONE | I had the problem this morning when running:
I upgraded to:
and the error did not appear anymore. Hope this helps Ryan |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1354160286 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1354160286 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5Qttie | hydrosquall 9020979 | 2022-12-16T03:51:19Z | 2022-12-16T03:52:13Z | NONE | Hi @ryascott, thanks for sharing this! How did you upgrade your sqlite3 version? I'm running into this issue (also on an m1) with
Unfortunately, For me, the trigger is trying to use the
Some stackoverflow searching suggests that brew installing sqlite may fix it ( https://stackoverflow.com/questions/26345972/how-do-i-upgrade-the-sqlite-version-used-by-pythons-sqlite3-module-on-mac ), but I don't want to risk breaking the version of sqlite used by some other system, I'd only like to upgrade sqlite3 inside my current virtual environment. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1354192168 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1354192168 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5Qt1Uo | hydrosquall 9020979 | 2022-12-16T04:35:30Z | 2022-12-16T04:35:38Z | NONE | A related historical problem: https://github.com/tekartik/sqflite/issues/525#issuecomment-714500720 I wonder if the version of Sqlite or Python for Intel chip have defensive mode disabled by default, whereas M1 chips versions have it enabled. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1492777509 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1492777509 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5Y-fol | hydrosquall 9020979 | 2023-04-01T01:31:48Z | 2023-04-01T01:31:48Z | NONE | My current workaround is to use this library from a python script instead of as a CLI tool. This lets me set the foreign key constraint at table creation time, instead of trying to modify an existing table. docs I found this stackoverflow helpful, as it explained that Sqlite doesn't support modifying existing tables directly. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1495780111 | https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1495780111 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | IC_kwDOCGYnMM5ZJ8sP | Thomascountz 19786848 | 2023-04-04T11:09:56Z | 2023-04-04T11:13:40Z | NONE | @wpears' workaround also worked for me, but also required me to manually set
```shell $ python --version Python 3.11.2 $ sqlite3 --version 3.41.2 2023-03-22 11:56:21 0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da $ sqlite-utils --version sqlite-utils, version 3.30 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 810618495 | |
1001115286 | https://github.com/simonw/sqlite-utils/issues/228#issuecomment-1001115286 | https://api.github.com/repos/simonw/sqlite-utils/issues/228 | IC_kwDOCGYnMM47q86W | agguser 1206106 | 2021-12-26T07:01:31Z | 2021-12-26T07:01:31Z | NONE |
b 2 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--no-headers option for CSV and TSV 807437089 | |
779785638 | https://github.com/simonw/sqlite-utils/issues/227#issuecomment-779785638 | https://api.github.com/repos/simonw/sqlite-utils/issues/227 | MDEyOklzc3VlQ29tbWVudDc3OTc4NTYzOA== | camallen 295329 | 2021-02-16T11:48:03Z | 2021-02-16T11:48:03Z | NONE | Thank you @simonw |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Error reading csv files with large column data 807174161 | |
765678057 | https://github.com/simonw/sqlite-utils/pull/224#issuecomment-765678057 | https://api.github.com/repos/simonw/sqlite-utils/issues/224 | MDEyOklzc3VlQ29tbWVudDc2NTY3ODA1Nw== | polyrand 37962604 | 2021-01-22T20:53:06Z | 2021-01-23T20:13:27Z | NONE | I'm using the FTS methods in sqlite-utils for this website: drwn.io. I wanted to get pagination to have some kind of infinite scrolling in the landing page, and I ended up using that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add fts offset docs. 792297010 | |
761015218 | https://github.com/simonw/sqlite-utils/issues/220#issuecomment-761015218 | https://api.github.com/repos/simonw/sqlite-utils/issues/220 | MDEyOklzc3VlQ29tbWVudDc2MTAxNTIxOA== | mhalle 649467 | 2021-01-15T15:40:08Z | 2021-01-15T15:40:08Z | NONE | Make sense. If you're coming from the sqlite3 side of things, rather than the datasette side, wanting the fts methods to work for views makes more sense. sqlite3 allows fts5 tables on views, so I was looking for CLI functionality to build the fts virtual tables. Ultimately, though, sharing fts virtual tables across tables and derivative views is likely more efficient. Maybe an explicit error message like, "fts is not supported for views" rather than just throwing an exception that the method doesn't exist" might be helpful. Not critical though. Thanks. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better error message for *_fts methods against views 783778672 | |
783662968 | https://github.com/simonw/sqlite-utils/issues/220#issuecomment-783662968 | https://api.github.com/repos/simonw/sqlite-utils/issues/220 | MDEyOklzc3VlQ29tbWVudDc4MzY2Mjk2OA== | mhalle 649467 | 2021-02-22T20:44:51Z | 2021-02-22T20:44:51Z | NONE | Actually, coming back to this, I have a clearer use case for enabling fts generation for views: making it easier to bring in text from lookup tables and other joins. The datasette documentation describes populating an fts table like so:
The resulting fts table can then be used by a whole family of related tables and views in the manner you described earlier in this issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better error message for *_fts methods against views 783778672 | |
955365098 | https://github.com/simonw/sqlite-utils/issues/206#issuecomment-955365098 | https://api.github.com/repos/simonw/sqlite-utils/issues/206 | IC_kwDOCGYnMM448bbq | dufferzafar 1449512 | 2021-10-30T15:49:19Z | 2021-10-30T15:49:19Z | NONE | @simonw Hey! JSON parsing for me is failing and I'm getting this same error, but I feel that my json is correct. How can I debug this? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils should suggest --csv if JSON parsing fails 761915790 | |
955370190 | https://github.com/simonw/sqlite-utils/issues/206#issuecomment-955370190 | https://api.github.com/repos/simonw/sqlite-utils/issues/206 | IC_kwDOCGYnMM448crO | dufferzafar 1449512 | 2021-10-30T15:52:16Z | 2021-10-30T15:52:16Z | NONE | @simonw That was working fine. It turned out that I had to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils should suggest --csv if JSON parsing fails 761915790 | |
742299584 | https://github.com/simonw/sqlite-utils/issues/205#issuecomment-742299584 | https://api.github.com/repos/simonw/sqlite-utils/issues/205 | MDEyOklzc3VlQ29tbWVudDc0MjI5OTU4NA== | kaihendry 765871 | 2020-12-10T07:24:22Z | 2020-12-10T07:24:22Z | NONE | Bumping to ubuntu-20.04 appears to have solved my syntax error. 🤷 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite3.OperationalError: near "(": syntax error 760960559 | |
774217792 | https://github.com/simonw/sqlite-utils/pull/203#issuecomment-774217792 | https://api.github.com/repos/simonw/sqlite-utils/issues/203 | MDEyOklzc3VlQ29tbWVudDc3NDIxNzc5Mg== | drkane 1049910 | 2021-02-05T18:44:13Z | 2021-02-05T18:44:13Z | NONE | Thanks for looking at this - home schooling kids has prevented me from replying. I'd struggled with how to adapt the API for the foreign keys too - I definitely tried the String/Tuple approach. I hadn't considered the breaking changes that would introduce though. I can take a look at this and try and make the change - see which of your options works best. I've got a workaround for the use-case I was looking at this for, so it wouldn't be a problem for me if it was put on the back burner until a hypothetical v4.0 anyway. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
changes to allow for compound foreign keys 743384829 | |
1033641009 | https://github.com/simonw/sqlite-utils/pull/203#issuecomment-1033641009 | https://api.github.com/repos/simonw/sqlite-utils/issues/203 | IC_kwDOCGYnMM49nBwx | psychemedia 82988 | 2022-02-09T11:06:18Z | 2022-02-09T11:06:18Z | NONE | Is there any progress elsewhere on the handling of compound / composite foreign keys, or is this PR still effectively open? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
changes to allow for compound foreign keys 743384829 | |
710778368 | https://github.com/simonw/sqlite-utils/issues/188#issuecomment-710778368 | https://api.github.com/repos/simonw/sqlite-utils/issues/188 | MDEyOklzc3VlQ29tbWVudDcxMDc3ODM2OA== | aborruso 30607 | 2020-10-17T08:52:58Z | 2020-10-17T08:52:58Z | NONE | I have done a stupid question. If I run
I have Thank you for this great tool |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
About loading spatialite 723708310 | |
897588624 | https://github.com/simonw/sqlite-utils/issues/186#issuecomment-897588624 | https://api.github.com/repos/simonw/sqlite-utils/issues/186 | IC_kwDOCGYnMM41gB2Q | rayvoelker 9308268 | 2021-08-12T12:13:25Z | 2021-08-12T12:13:25Z | NONE | I think I ran into an issue that's perhaps related with I have a case where I want to create a lookup table for all the related title data where there are possibly multiple null values in the related columns .... ```python3 sql = """\ INSERT INTO "circulation_info" ("item_id", "bib_title", "bib_creator", "bib_format", "bib_pub_year", "checkout_date") VALUES (1, "title one", "creator one", "Book", 2018, "2021-08-12 00:01"), (2, "title two", "creator one", "Book", 2019, "2021-08-12 00:02"), (3, "title three", NULL, "DVD", 2020, "2021-08-12 00:03"), (4, "title four", NULL, "DVD", NULL, "2021-08-12 00:04"), (5, "title five", NULL, "DVD", NULL, "2021-08-12 00:05") """ with sqlite3.connect('test_bib.db') as con: con.execute(sql) ``` when I run the ```python3
db["circulation_info"].extract(
[
"bib_title",
"bib_creator",
"bib_format" db = sqlite_utils.Database("test_bib.db") for row in db["circulation_info"].rows: print(row) print("\n---\n") for row in db["bib_info"].rows: print(row) ``` results in this .. ``` {'id': 1, 'item_id': 1, 'bib_info_id': 1, 'bib_pub_year': 2018, 'checkout_date': '2021-08-12 00:01'} {'id': 2, 'item_id': 2, 'bib_info_id': 2, 'bib_pub_year': 2019, 'checkout_date': '2021-08-12 00:02'} {'id': 3, 'item_id': 3, 'bib_info_id': None, 'bib_pub_year': 2020, 'checkout_date': '2021-08-12 00:03'} {'id': 4, 'item_id': 4, 'bib_info_id': None, 'bib_pub_year': None, 'checkout_date': '2021-08-12 00:04'} {'id': 5, 'item_id': 5, 'bib_info_id': None, 'bib_pub_year': None, 'checkout_date': '2021-08-12 00:05'} {'id': 1, 'bib_title': 'title one', 'bib_creator': 'creator one', 'bib_format': 'Book'} {'id': 2, 'bib_title': 'title two', 'bib_creator': 'creator one', 'bib_format': 'Book'} {'id': 3, 'bib_title': 'title three', 'bib_creator': None, 'bib_format': 'DVD'} {'id': 4, 'bib_title': 'title four', 'bib_creator': None, 'bib_format': 'DVD'} {'id': 5, 'bib_title': 'title five', 'bib_creator': None, 'bib_format': 'DVD'} ``` Seems like it's correctly generating the row data for those lookups, but it's not correctly updating the foreign key back to the primary table? Looks like it just results in a Any ideas on why? Thanks again! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.extract() shouldn't extract null values 722816436 | |
897600677 | https://github.com/simonw/sqlite-utils/issues/186#issuecomment-897600677 | https://api.github.com/repos/simonw/sqlite-utils/issues/186 | IC_kwDOCGYnMM41gEyl | rayvoelker 9308268 | 2021-08-12T12:32:14Z | 2021-08-12T12:32:14Z | NONE | Actually, I forgot to include the But also, I tried again with empty string values instead of ```python3 sql = """\ INSERT INTO "circulation_info" ("item_id", "bib_title", "bib_creator", "bib_format", "bib_pub_year", "checkout_date") VALUES (1, "title one", "creator one", "Book", 2018, "2021-08-12 00:01"), (2, "title two", "creator one", "Book", 2019, "2021-08-12 00:02"), (3, "title three", "", "DVD", 2020, "2021-08-12 00:03"), (4, "title four", "", "DVD", "", "2021-08-12 00:04"), (5, "title five", "", "DVD", "", "2021-08-12 00:05") """ with sqlite3.connect('test_bib_2.db') as con: con.execute(sql) ```
``` {'id': 1, 'item_id': 1, 'bib_info_id': 1, 'bib_pub_year': 2018, 'checkout_date': '2021-08-12 00:01'} {'id': 2, 'item_id': 2, 'bib_info_id': 2, 'bib_pub_year': 2019, 'checkout_date': '2021-08-12 00:02'} {'id': 3, 'item_id': 3, 'bib_info_id': 3, 'bib_pub_year': 2020, 'checkout_date': '2021-08-12 00:03'} {'id': 4, 'item_id': 4, 'bib_info_id': 4, 'bib_pub_year': '', 'checkout_date': '2021-08-12 00:04'} {'id': 5, 'item_id': 5, 'bib_info_id': 5, 'bib_pub_year': '', 'checkout_date': '2021-08-12 00:05'} {'id': 1, 'bib_title': 'title one', 'bib_creator': 'creator one', 'bib_format': 'Book'} {'id': 2, 'bib_title': 'title two', 'bib_creator': 'creator one', 'bib_format': 'Book'} {'id': 3, 'bib_title': 'title three', 'bib_creator': '', 'bib_format': 'DVD'} {'id': 4, 'bib_title': 'title four', 'bib_creator': '', 'bib_format': 'DVD'} {'id': 5, 'bib_title': 'title five', 'bib_creator': '', 'bib_format': 'DVD'} ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.extract() shouldn't extract null values 722816436 | |
480621924 | https://github.com/simonw/sqlite-utils/issues/18#issuecomment-480621924 | https://api.github.com/repos/simonw/sqlite-utils/issues/18 | MDEyOklzc3VlQ29tbWVudDQ4MDYyMTkyNA== | psychemedia 82988 | 2019-04-07T19:31:42Z | 2019-04-07T19:31:42Z | NONE | I've just noticed that SQLite lets you IGNORE inserts that collide with a pre-existing key. This can be quite handy if you have a dataset that keeps changing in part, and you don't want to upsert and replace pre-existing PK rows but you do want to ignore collisions to existing PK rows. Do |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.insert/.upsert/.insert_all/.upsert_all should add missing columns 413871266 | |
956041692 | https://github.com/simonw/sqlite-utils/issues/173#issuecomment-956041692 | https://api.github.com/repos/simonw/sqlite-utils/issues/173 | IC_kwDOCGYnMM44_Anc | Florents-Tselai 2118708 | 2021-11-01T08:42:24Z | 2021-11-01T08:42:24Z | NONE |
I was thinking about this, while inserting a stream of ~40M line-delimited json docs. Wouldn't a That's how tqdm does it |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Progress bar for sqlite-utils insert 707478649 | |
714219725 | https://github.com/simonw/sqlite-utils/issues/171#issuecomment-714219725 | https://api.github.com/repos/simonw/sqlite-utils/issues/171 | MDEyOklzc3VlQ29tbWVudDcxNDIxOTcyNQ== | mhalle 649467 | 2020-10-22T04:38:35Z | 2020-10-22T04:38:35Z | NONE | Thanks. As I said, I think the result (being able to query tree structures like ancestors and descendants) is more important than the implementation, and I agree that this particular sqlite extension is too obscure. Just providing an sqlite utility to build or rebuild a transitive closure table might be more generically useful. I find that hierarchical data shows up pretty frequently in some data science problems. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Idea: transitive closure tables for tree structures 707407567 | |
693486183 | https://github.com/simonw/sqlite-utils/issues/159#issuecomment-693486183 | https://api.github.com/repos/simonw/sqlite-utils/issues/159 | MDEyOklzc3VlQ29tbWVudDY5MzQ4NjE4Mw== | spdkils 11712349 | 2020-09-16T15:34:13Z | 2020-09-16T15:34:13Z | NONE | I appreciate the response, it's just unexpected. If I insert, it commits, if I update it commits, if I upsert it commits... if I delete.. it doesn't??? Confused me... I did just db commit it... But it's confusing. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.delete_where() does not auto-commit (unlike .insert() or .upsert()) 702386948 | |
802032152 | https://github.com/simonw/sqlite-utils/issues/159#issuecomment-802032152 | https://api.github.com/repos/simonw/sqlite-utils/issues/159 | MDEyOklzc3VlQ29tbWVudDgwMjAzMjE1Mg== | limar 1025224 | 2021-03-18T15:42:52Z | 2021-03-18T15:42:52Z | NONE | I confirm the bug. Happens for me in version 3.6. I use the call to delete all the records:
I see that |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.delete_where() does not auto-commit (unlike .insert() or .upsert()) 702386948 | |
1111506339 | https://github.com/simonw/sqlite-utils/issues/159#issuecomment-1111506339 | https://api.github.com/repos/simonw/sqlite-utils/issues/159 | IC_kwDOCGYnMM5CQD2j | dracos 154364 | 2022-04-27T21:35:13Z | 2022-04-27T21:35:13Z | NONE | Just stumbled across this, wondering why none of my deletes were working. |
{ "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.delete_where() does not auto-commit (unlike .insert() or .upsert()) 702386948 | |
1493051222 | https://github.com/simonw/sqlite-utils/issues/159#issuecomment-1493051222 | https://api.github.com/repos/simonw/sqlite-utils/issues/159 | IC_kwDOCGYnMM5Y_idW | dracos 154364 | 2023-04-01T17:21:05Z | 2023-04-01T17:21:05Z | NONE | In a related issue, nearly a year later I just stumbled across this again, as I wondered why none of my rebuild-fts were rebuilding. It looks like: disable_fts in db.py commits; enable_fts partly commits except the last step (due to executescript committing a pending transaction); rebuild_fts won't commit unless manually done as above with e.g. a context manager. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.delete_where() does not auto-commit (unlike .insert() or .upsert()) 702386948 | |
704347565 | https://github.com/simonw/datasette/pull/995#issuecomment-704347565 | https://api.github.com/repos/simonw/datasette/issues/995 | MDEyOklzc3VlQ29tbWVudDcwNDM0NzU2NQ== | codecov[bot] 22429695 | 2020-10-06T15:22:55Z | 2020-10-06T15:22:55Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #995 +/-=======================================
Coverage 84.34% 84.34% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document setting Google Cloud SDK properties 715779909 | |
703878831 | https://github.com/simonw/datasette/pull/994#issuecomment-703878831 | https://api.github.com/repos/simonw/datasette/issues/994 | MDEyOklzc3VlQ29tbWVudDcwMzg3ODgzMQ== | codecov[bot] 22429695 | 2020-10-05T20:45:39Z | 2020-10-09T16:18:24Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #994 +/-==========================================
+ Coverage 84.28% 84.55% +0.26% | Impacted Files | Coverage Δ | |
|---|---|---|
| datasette/utils/testing.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Run tests against Python 3.9 715146588 | |
712855389 | https://github.com/simonw/datasette/issues/991#issuecomment-712855389 | https://api.github.com/repos/simonw/datasette/issues/991 | MDEyOklzc3VlQ29tbWVudDcxMjg1NTM4OQ== | furilo 24740 | 2020-10-20T13:36:41Z | 2020-10-20T13:36:41Z | NONE | Here is one quick sketch (done in Figma :P) for an idea: a possible filter to switch between showing all tables from all databases, or grouping tables by database. (the switch is interactive) When only 1 database: https://www.figma.com/proto/BjFrMroEtmVx6EeRjvSrox/Datasette-test?node-id=1%3A162&viewport=536%2C348%2C0.5&scaling=min-zoom Is this is useful, I can send some more suggestions/sketches. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign application homepage 714377268 | |
702171636 | https://github.com/simonw/datasette/pull/986#issuecomment-702171636 | https://api.github.com/repos/simonw/datasette/issues/986 | MDEyOklzc3VlQ29tbWVudDcwMjE3MTYzNg== | codecov[bot] 22429695 | 2020-10-01T14:24:11Z | 2020-10-01T14:24:11Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #986 +/-=======================================
Coverage 84.28% 84.28% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow facet by primary keys, fixes #985 712889459 | |
706413753 | https://github.com/simonw/datasette/issues/983#issuecomment-706413753 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDcwNjQxMzc1Mw== | yozlet 173848 | 2020-10-09T21:41:12Z | 2020-10-09T21:41:12Z | NONE | If you don't mind a somewhat bonkers idea: how about a JS client-side plugin capability that allows any user looking at a Datasette site to pull in external plugins for data manipulation, even if the Datasette owner hasn't added them? (Yes, this may be much too ambitious. If you're remotely interested, maybe fork this discussion to a different issue.) This is some fascinating reading about what JS sandboxing looks like these days: https://www.figma.com/blog/how-we-built-the-figma-plugin-system/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
752882797 | https://github.com/simonw/datasette/issues/983#issuecomment-752882797 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1Mjg4Mjc5Nw== | dracos 154364 | 2020-12-31T08:07:59Z | 2020-12-31T15:04:32Z | NONE | If you're using arrow functions, you can presumably use default parameters, not much difference in support. That would save you 9 bytes. But OTOH you need Your latest 250-byte one, with use strict, gzips to 199 bytes. The following might be 292 bytes, but compresses to 204, basically the same, and works in any browser (well, IE9+) at all:
Source for that is below; I replaced the [fn,parameters] because closure-compiler includes a polyfill for that, and I ran
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
752888552 | https://github.com/simonw/datasette/issues/983#issuecomment-752888552 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1Mjg4ODU1Mg== | dracos 154364 | 2020-12-31T08:33:11Z | 2020-12-31T08:34:27Z | NONE | If you could say that all hook functions had to accept one options parameter (and could use object destructuring if they wished to only see a subset), you could have this, which minifies (to all-browser-JS) to 200 bytes, gzips to 146, and works practically the same:
Called the same, definitions tiny bit different:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
753218817 | https://github.com/simonw/datasette/issues/983#issuecomment-753218817 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1MzIxODgxNw== | yozlet 173848 | 2020-12-31T22:32:25Z | 2020-12-31T22:32:25Z | NONE | Amazing work! And you've put in far more work than I'd expect to reduce the payload (which is admirable). So, to add a plugin with the current design, it goes in (a) the template or (b) a bookmarklet, right? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
753224999 | https://github.com/simonw/datasette/issues/983#issuecomment-753224999 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1MzIyNDk5OQ== | jussiarpalahti 11941245 | 2020-12-31T23:29:36Z | 2020-12-31T23:29:36Z | NONE | I have yet to build Datasette plugin and am unfamiliar with Pluggy. Since browsers have event handling builtin Datasette could communicate with plugins through it. Handlers register as listeners for custom Datasette events and Datasette's JS can then trigger said events. I was also wondering if you had looked at Javascript Modules for JS plugins? With services like Skypack (https://www.skypack.dev) NPM libraries can be loaded directly into browser, no build step needed. Same goes for local JS if you adhere to ES Module spec. If minification is required then tools such as Snowpack (https://www.snowpack.dev) could fit better. It uses https://github.com/evanw/esbuild for bundling and minification. On plugins you'd simply:
In Datasette HTML pages' head you'd merely import these files as modules one by one. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
753587963 | https://github.com/simonw/datasette/issues/983#issuecomment-753587963 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1MzU4Nzk2Mw== | dracos 154364 | 2021-01-03T09:02:50Z | 2021-01-03T10:00:05Z | NONE |
Don't think you are :) (e.g. gzipped, using arrow functions in my example saves 2 bytes over spelling out function). On FMS, past month, looking at popular browsers, looks like we'd have 95.41% arrow support, 94.19% module support, and 4.58% (mostly IE9/IE11/Safari 9) supporting neither. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
753600999 | https://github.com/simonw/datasette/issues/983#issuecomment-753600999 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1MzYwMDk5OQ== | MarkusH 475613 | 2021-01-03T11:11:21Z | 2021-01-03T11:11:21Z | NONE | With regards to JS/Browser events, given your example of menu items that plugins could add, I could imagine this code to work:
// as part of a plugin const event = new Event(datasette.events.AddMenuItem, {link: '/foo/bar', title: 'Go somewhere'}); Document.dispatchEvent(event) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
754181647 | https://github.com/simonw/datasette/issues/983#issuecomment-754181647 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1NDE4MTY0Nw== | jussiarpalahti 11941245 | 2021-01-04T19:52:40Z | 2021-01-04T19:52:40Z | NONE | I was thinking JavaScript plugins going with server side template extensions custom HTML. Attach my own widgets on there and listen for Datasette events to refresh when user interacts with main UI. Like a map view or table that updates according to selected column. There's certainly other ways to look at this. Perhaps you could list possible hooks or high level design doc on what would be possible with the plugin system? Re: modules. I would like to see modules supported at least in development. The developer experience is so much better than what JavaScript coding has been in the past. With large parts of NPM at your disposal I’d imagine even less experienced coder can whisk a custom plugin in no time. Proper production build system (like one you get with Pika or Parcel) could package everything up into bundles that older browsers can understand. Though that does come with performance and size penalties alongside the added complexity. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
754210356 | https://github.com/simonw/datasette/issues/983#issuecomment-754210356 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1NDIxMDM1Ng== | carlmjohnson 222245 | 2021-01-04T20:49:05Z | 2021-01-04T20:49:05Z | NONE | For reasons I've written about elsewhere, I'm in favor of modules. It has several beneficial effects. One, old browsers just ignore it all together. Two, if you include the same plain script on the page more than once, it will be executed twice, but if you include the same module script on a page twice, it will only execute once. Three, you get a module local namespace, instead of having to use the global window namespace or a function private namespace. OTOH, if you are going to use an old style script, the code from before isn't ideal, because you wipe out your registry if the script it included more than once. Also you may as well use object methods and splat arguments. The event based architecture probably makes more sense though. Just make up some event names prefixed with ```js function mycallback(){ // whatever } if (window.datasette) { window.datasette.init(mycallback); } else { document.addEventListener('datasette:init', mycallback); } ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
700012161 | https://github.com/simonw/datasette/pull/977#issuecomment-700012161 | https://api.github.com/repos/simonw/datasette/issues/977 | MDEyOklzc3VlQ29tbWVudDcwMDAxMjE2MQ== | codecov[bot] 22429695 | 2020-09-28T13:37:44Z | 2020-09-28T13:37:44Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #977 +/-=======================================
Coverage 84.27% 84.27% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update pytest requirement from <6.1.0,>=5.2.2 to >=5.2.2,<6.2.0 710269200 | |
697073465 | https://github.com/simonw/datasette/issues/970#issuecomment-697073465 | https://api.github.com/repos/simonw/datasette/issues/970 | MDEyOklzc3VlQ29tbWVudDY5NzA3MzQ2NQ== | secretGeek 2861690 | 2020-09-23T01:49:05Z | 2020-09-23T01:49:05Z | NONE | Oh wow oh wow. Thanks so much Simon. In an astoundingly rough week, this is a shining jewel. 🤣 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
request an "-o" option on "datasette server" to open the default browser at the running url 705108492 | |
345509500 | https://github.com/simonw/datasette/issues/97#issuecomment-345509500 | https://api.github.com/repos/simonw/datasette/issues/97 | MDEyOklzc3VlQ29tbWVudDM0NTUwOTUwMA== | yschimke 231923 | 2017-11-19T11:26:58Z | 2017-11-19T11:26:58Z | NONE | Specifically docs should make it clearer this file exists https://parlgov.datasettes.com/.json And from that you can build https://parlgov.datasettes.com/parlgov-25f9855.json Then https://parlgov.datasettes.com/parlgov-25f9855/cabinet.json |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Link to JSON for the list of tables 274022950 | |
392895733 | https://github.com/simonw/datasette/issues/97#issuecomment-392895733 | https://api.github.com/repos/simonw/datasette/issues/97 | MDEyOklzc3VlQ29tbWVudDM5Mjg5NTczMw== | yschimke 231923 | 2018-05-29T18:51:35Z | 2018-05-29T18:51:35Z | NONE | Do you have an existing example with views? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Link to JSON for the list of tables 274022950 | |
1791571572 | https://github.com/simonw/datasette/issues/949#issuecomment-1791571572 | https://api.github.com/repos/simonw/datasette/issues/949 | IC_kwDOBm6k_c5qyTZ0 | mhkeller 498744 | 2023-11-02T21:36:24Z | 2023-11-02T21:36:24Z | NONE | FWIW, code mirror 6 now has this standard although if you want table-specific suggestions, you'd have to handle parsing out which table the user is querying yourself. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Try out CodeMirror SQL hints 684961449 | |
736173084 | https://github.com/simonw/datasette/issues/942#issuecomment-736173084 | https://api.github.com/repos/simonw/datasette/issues/942 | MDEyOklzc3VlQ29tbWVudDczNjE3MzA4NA== | zaneselvans 596279 | 2020-12-01T02:20:58Z | 2020-12-01T02:20:58Z | NONE | Are there common patterns for storing column-based metadata inside SQLite itself? I know Postgres allows "comment" fields, which this is kind of trying to replicate. Should the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
737428262 | https://github.com/simonw/datasette/issues/942#issuecomment-737428262 | https://api.github.com/repos/simonw/datasette/issues/942 | MDEyOklzc3VlQ29tbWVudDczNzQyODI2Mg== | zaneselvans 596279 | 2020-12-02T18:55:21Z | 2020-12-02T18:55:21Z | NONE | Are you thinking that those metadata tables would be added to the SQLite DB by Datasette, when you tell it to wrap up the database, with the metadata coming from the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
898032118 | https://github.com/simonw/datasette/issues/942#issuecomment-898032118 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41huH2 | zaneselvans 596279 | 2021-08-12T23:12:00Z | 2021-08-12T23:12:00Z | NONE | This looks awesome. We'll definitely make extensive use of this feature! On Thu, Aug 12, 2021 at 5:52 PM Simon Willison @.***> wrote:
-- Zane A. Selvans, PhD Chief Data Wrangler Catalyst Cooperative https://catalyst.coop @.*** Signal/WhatsApp/SMS: +1 720 443 1363 Twitter: @ZaneSelvans https://twitter.com/ZaneSelvans PGP https://www.gnupg.org/: 0x64F7B56F3A127B04 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
946493045 | https://github.com/simonw/datasette/issues/942#issuecomment-946493045 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c44alZ1 | kokes 8451755 | 2021-10-19T08:42:39Z | 2021-10-19T08:42:39Z | NONE | @simonw I know this is closed, just found this via the annotated release notes, but I wanted to note this one thing: Not sure how widely used this is, but I've seen CSVW a couple times in the wild. It is trying to address these metadata challenges in a standardised way. See e.g. - https://www.w3.org/TR/tabular-data-primer/#h-documentation-columns - https://w3c.github.io/csvw/tests/ I'm not suggesting you change the syntax you've implemented, just letting you know of this effort by W3C. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
674566290 | https://github.com/simonw/datasette/pull/941#issuecomment-674566290 | https://api.github.com/repos/simonw/datasette/issues/941 | MDEyOklzc3VlQ29tbWVudDY3NDU2NjI5MA== | codecov[bot] 22429695 | 2020-08-16T19:18:43Z | 2020-08-18T05:04:31Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #941 +/-=======================================
Coverage 84.10% 84.10% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Run CI on GitHub Actions, not Travis 679809281 | |
674453772 | https://github.com/simonw/datasette/pull/936#issuecomment-674453772 | https://api.github.com/repos/simonw/datasette/issues/936 | MDEyOklzc3VlQ29tbWVudDY3NDQ1Mzc3Mg== | codecov[bot] 22429695 | 2020-08-15T22:35:29Z | 2020-08-15T22:35:29Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #936 +/-==========================================
+ Coverage 84.02% 84.04% +0.02% | Impacted Files | Coverage Δ | |
|---|---|---|
| datasette/app.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't hang in db.execute_write_fn() if connection fails 679650632 | |
344424382 | https://github.com/simonw/datasette/issues/93#issuecomment-344424382 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQyNDM4Mg== | atomotic 67420 | 2017-11-14T22:42:16Z | 2017-11-14T22:42:16Z | NONE | tried quickly, this seems working: ``` ~ pip3 install pyinstaller ~ pyinstaller -F --add-data /usr/local/lib/python3.6/site-packages/datasette/templates:datasette/templates --add-data /usr/local/lib/python3.6/site-packages/datasette/static:datasette/static /usr/local/bin/datasette ~ du -h dist/datasette 6.8M dist/datasette ~ file dist/datasette dist/datasette: Mach-O 64-bit executable x86_64 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
344430299 | https://github.com/simonw/datasette/issues/93#issuecomment-344430299 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDM0NDQzMDI5OQ== | atomotic 67420 | 2017-11-14T23:06:33Z | 2017-11-14T23:06:33Z | NONE | i will look better tomorrow, it's late i surely made some mistake https://asciinema.org/a/ZyAWbetrlriDadwWyVPUWB94H |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 |
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