issue_comments
8,358 rows where author_association = "OWNER" sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw 6,486
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1162234441 | https://github.com/simonw/sqlite-utils/issues/446#issuecomment-1162234441 | https://api.github.com/repos/simonw/sqlite-utils/issues/446 | IC_kwDOCGYnMM5FRkpJ | simonw 9599 | 2022-06-21T19:28:35Z | 2022-06-21T19:28:35Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use Just to automate running tests and linters locally 1277328147 | |
1162231111 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1162231111 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM5FRj1H | simonw 9599 | 2022-06-21T19:25:44Z | 2022-06-21T19:25:44Z | OWNER | Pushed that prototype to a branch. |
{ "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 | |
1162223668 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1162223668 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM5FRiA0 | simonw 9599 | 2022-06-21T19:19:22Z | 2022-06-21T19:22:15Z | OWNER | Built a prototype of ``` % time sqlite-utils memory taxi.csv 'SELECT passenger_count, COUNT(), AVG(total_amount) FROM taxi GROUP BY passenger_count' --fast passenger_count COUNT() AVG(total_amount)
0 42228 17.0214016766151
1 1533197 17.6418833067999
2 286461 18.0975870711456
3 72852 17.9153958710923
4 25510 18.452774990196 Without the Here's the prototype so far: ```diff diff --git a/sqlite_utils/cli.py b/sqlite_utils/cli.py index 86eddfb..1c83ef6 100644 --- a/sqlite_utils/cli.py +++ b/sqlite_utils/cli.py @@ -14,6 +14,8 @@ import io import itertools import json import os +import shutil +import subprocess import sys import csv as csv_std import tabulate @@ -1669,6 +1671,7 @@ def query( is_flag=True, help="Analyze resulting tables and output results", ) +@click.option("--fast", is_flag=True, help="Fast mode, only works with CSV and TSV") @load_extension_option def memory( paths, @@ -1692,6 +1695,7 @@ def memory( save, analyze, load_extension, + fast, ): """Execute SQL query against an in-memory database, optionally populated by imported data @@ -1719,6 +1723,22 @@ def memory( \b sqlite-utils memory animals.csv --schema """ + if fast: + if ( + attach + or flatten + or param + or encoding + or no_detect_types + or analyze + or load_extension + ): + raise click.ClickException( + "--fast mode does not support any of the following options: --attach, --flatten, --param, --encoding, --no-detect-types, --analyze, --load-extension" + ) + # TODO: Figure out and pass other supported options + memory_fast(paths, sql) + return db = sqlite_utils.Database(memory=True) # If --dump or --save or --analyze used but no paths detected, assume SQL query is a path: if (dump or save or schema or analyze) and not paths: @@ -1791,6 +1811,33 @@ def memory( ) +def memory_fast(paths, sql): + if not shutil.which("sqlite3"): + raise click.ClickException("sqlite3 not found in PATH") + args = ["sqlite3", ":memory:", "-cmd", ".mode csv"] + table_names = [] + + def name(path): + base_name = pathlib.Path(path).stem or "t" + table_name = base_name + prefix = 1 + while table_name in table_names: + prefix += 1 + table_name = "{}_{}".format(base_name, prefix) + return table_name + + for path in paths: + table_name = name(path) + table_names.append(table_name) + args.extend( + ["-cmd", ".import {} {}".format(pathlib.Path(path).resolve(), table_name)] + ) + + args.extend(["-cmd", ".mode column"]) + args.append(sql) + subprocess.run(args) + + def _execute_query( db, sql, param, raw, table, csv, tsv, no_headers, fmt, nl, arrays, json_cols ): ``` |
{ "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 | |
1162186856 | https://github.com/simonw/sqlite-utils/issues/447#issuecomment-1162186856 | https://api.github.com/repos/simonw/sqlite-utils/issues/447 | IC_kwDOCGYnMM5FRZBo | simonw 9599 | 2022-06-21T18:48:46Z | 2022-06-21T18:48:46Z | OWNER | That fixed it: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Incorrect syntax highlighting in docs CLI reference 1278571700 | |
1162179354 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1162179354 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM5FRXMa | simonw 9599 | 2022-06-21T18:44:03Z | 2022-06-21T18:44:03Z | OWNER | The thing I like about that |
{ "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 | |
1161869859 | https://github.com/simonw/sqlite-utils/issues/447#issuecomment-1161869859 | https://api.github.com/repos/simonw/sqlite-utils/issues/447 | IC_kwDOCGYnMM5FQLoj | simonw 9599 | 2022-06-21T15:00:42Z | 2022-06-21T15:00:42Z | OWNER | Deploying that to https://sqlite-utils.datasette.io/en/latest/cli-reference.html#insert |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Incorrect syntax highlighting in docs CLI reference 1278571700 | |
1161857806 | https://github.com/simonw/sqlite-utils/issues/447#issuecomment-1161857806 | https://api.github.com/repos/simonw/sqlite-utils/issues/447 | IC_kwDOCGYnMM5FQIsO | simonw 9599 | 2022-06-21T14:55:51Z | 2022-06-21T14:58:14Z | OWNER | https://stackoverflow.com/a/44379513 suggests that the fix is:
Or set this in
I like that better - I don't like that all |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Incorrect syntax highlighting in docs CLI reference 1278571700 | |
1161849874 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1161849874 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM5FQGwS | simonw 9599 | 2022-06-21T14:49:12Z | 2022-06-21T14:49:12Z | OWNER | Since there are all sorts of existing options for
|
{ "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 | |
882052693 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-882052693 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM40kw5V | simonw 9599 | 2021-07-18T12:57:54Z | 2022-06-21T13:17:15Z | OWNER | Another implementation option would be to use the CSV virtual table mechanism. This could avoid shelling out to the (Would be neat to produce a Python wheel of this, see https://simonwillison.net/2022/May/23/bundling-binary-tools-in-python-wheels/) This would also help solve the challenge of making this optimization available to the |
{ "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 | |
1160991031 | https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1160991031 | https://api.github.com/repos/simonw/sqlite-utils/issues/297 | IC_kwDOCGYnMM5FM1E3 | simonw 9599 | 2022-06-21T00:35:20Z | 2022-06-21T00:35:20Z | OWNER | { "total_count": 1, "+1": 1, "-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 | ||
1160798645 | https://github.com/simonw/sqlite-utils/issues/446#issuecomment-1160798645 | https://api.github.com/repos/simonw/sqlite-utils/issues/446 | IC_kwDOCGYnMM5FMGG1 | simonw 9599 | 2022-06-20T19:55:34Z | 2022-06-20T19:55:34Z | OWNER |
In all case it assumes you are using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use Just to automate running tests and linters locally 1277328147 | |
1160794604 | https://github.com/simonw/sqlite-utils/issues/443#issuecomment-1160794604 | https://api.github.com/repos/simonw/sqlite-utils/issues/443 | IC_kwDOCGYnMM5FMFHs | simonw 9599 | 2022-06-20T19:49:37Z | 2022-06-20T19:49:37Z | OWNER | Also now shows up here: https://sqlite-utils.datasette.io/en/latest/reference.html#sqlite-utils-utils-rows-from-file |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make `utils.rows_from_file()` a documented API 1269998342 | |
1160794175 | https://github.com/simonw/sqlite-utils/issues/445#issuecomment-1160794175 | https://api.github.com/repos/simonw/sqlite-utils/issues/445 | IC_kwDOCGYnMM5FMFA_ | simonw 9599 | 2022-06-20T19:49:02Z | 2022-06-20T19:49:02Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite_utils.utils.TypeTracker` should be a documented API 1277295119 | ||
1160793114 | https://github.com/simonw/sqlite-utils/issues/445#issuecomment-1160793114 | https://api.github.com/repos/simonw/sqlite-utils/issues/445 | IC_kwDOCGYnMM5FMEwa | simonw 9599 | 2022-06-20T19:47:36Z | 2022-06-20T19:47:36Z | OWNER | I also added inline documentation and types: https://github.com/simonw/sqlite-utils/blob/773f2b6b20622bb986984a1c3161d5b3aaa1046b/sqlite_utils/utils.py#L318-L360 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite_utils.utils.TypeTracker` should be a documented API 1277295119 | |
1160763268 | https://github.com/simonw/sqlite-utils/issues/445#issuecomment-1160763268 | https://api.github.com/repos/simonw/sqlite-utils/issues/445 | IC_kwDOCGYnMM5FL9eE | simonw 9599 | 2022-06-20T19:09:21Z | 2022-06-20T19:09:21Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite_utils.utils.TypeTracker` should be a documented API 1277295119 | ||
1160717735 | https://github.com/simonw/datasette/pull/1759#issuecomment-1160717735 | https://api.github.com/repos/simonw/datasette/issues/1759 | IC_kwDOBm6k_c5FLyWn | simonw 9599 | 2022-06-20T18:04:41Z | 2022-06-20T18:04:41Z | OWNER | I don't think this change needs any changes to the documentation: https://docs.datasette.io/en/stable/custom_templates.html#custom-templates |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Extract facet portions of table.html out into included templates 1275523220 | |
1160712911 | https://github.com/simonw/datasette/pull/1759#issuecomment-1160712911 | https://api.github.com/repos/simonw/datasette/issues/1759 | IC_kwDOBm6k_c5FLxLP | simonw 9599 | 2022-06-20T17:58:37Z | 2022-06-20T17:58:37Z | OWNER | This is a great idea. |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Extract facet portions of table.html out into included templates 1275523220 | |
1155966234 | https://github.com/simonw/sqlite-utils/issues/444#issuecomment-1155966234 | https://api.github.com/repos/simonw/sqlite-utils/issues/444 | IC_kwDOCGYnMM5E5qUa | simonw 9599 | 2022-06-15T04:18:05Z | 2022-06-15T04:18:05Z | OWNER | I'm going to push a branch with my not-yet-working code (which does at least include a test). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV `extras_key=` and `ignore_extras=` equivalents for CLI tool 1271426387 | |
1155953345 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155953345 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E5nLB | simonw 9599 | 2022-06-15T03:53:43Z | 2022-06-15T03:53:43Z | OWNER | I tried fixing this by using
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155815186 | https://github.com/simonw/sqlite-utils/issues/444#issuecomment-1155815186 | https://api.github.com/repos/simonw/sqlite-utils/issues/444 | IC_kwDOCGYnMM5E5FcS | simonw 9599 | 2022-06-14T23:48:16Z | 2022-06-14T23:48:16Z | OWNER | This is tricky to implement because of this code: https://github.com/simonw/sqlite-utils/blob/b8af3b96f5c72317cc8783dc296a94f6719987d9/sqlite_utils/cli.py#L938-L945 It's reconstructing each document using the known headers here:
So my first attempt at this - the diff here - did not have the desired result: ```diff diff --git a/sqlite_utils/cli.py b/sqlite_utils/cli.py index 86eddfb..00b920b 100644 --- a/sqlite_utils/cli.py +++ b/sqlite_utils/cli.py @@ -6,7 +6,7 @@ import hashlib import pathlib import sqlite_utils from sqlite_utils.db import AlterError, BadMultiValues, DescIndex -from sqlite_utils.utils import maximize_csv_field_size_limit +from sqlite_utils.utils import maximize_csv_field_size_limit, _extra_key_strategy from sqlite_utils import recipes import textwrap import inspect @@ -797,6 +797,15 @@ _import_options = ( "--encoding", help="Character encoding for input, defaults to utf-8", ), + click.option( + "--ignore-extras", + is_flag=True, + help="If a CSV line has more than the expected number of values, ignore the extras", + ), + click.option( + "--extras-key", + help="If a CSV line has more than the expected number of values put them in a list in this column", + ), ) @@ -885,6 +894,8 @@ def insert_upsert_implementation( sniff, no_headers, encoding, + ignore_extras, + extras_key, batch_size, alter, upsert, @@ -909,6 +920,10 @@ def insert_upsert_implementation( raise click.ClickException("--flatten cannot be used with --csv or --tsv") if encoding and not (csv or tsv): raise click.ClickException("--encoding must be used with --csv or --tsv") + if ignore_extras and extras_key: + raise click.ClickException( + "--ignore-extras and --extras-key cannot be used together" + ) if pk and len(pk) == 1: pk = pk[0] encoding = encoding or "utf-8-sig" @@ -935,7 +950,9 @@ def insert_upsert_implementation( csv_reader_args["delimiter"] = delimiter if quotechar: csv_reader_args["quotechar"] = quotechar - reader = csv_std.reader(decoded, csv_reader_args) + reader = _extra_key_strategy( + csv_std.reader(decoded, csv_reader_args), ignore_extras, extras_key + ) first_row = next(reader) if no_headers: headers = ["untitled_{}".format(i + 1) for i in range(len(first_row))] @@ -1101,6 +1118,8 @@ def insert( sniff, no_headers, encoding, + ignore_extras, + extras_key, batch_size, alter, detect_types, @@ -1176,6 +1195,8 @@ def insert( sniff, no_headers, encoding, + ignore_extras, + extras_key, batch_size, alter=alter, upsert=False, @@ -1214,6 +1235,8 @@ def upsert( sniff, no_headers, encoding, + ignore_extras, + extras_key, alter, not_null, default, @@ -1254,6 +1277,8 @@ def upsert( sniff, no_headers, encoding, + ignore_extras, + extras_key, batch_size, alter=alter, upsert=True, @@ -1297,6 +1322,8 @@ def bulk( sniff, no_headers, encoding, + ignore_extras, + extras_key, load_extension, ): """ @@ -1331,6 +1358,8 @@ def bulk( sniff=sniff, no_headers=no_headers, encoding=encoding, + ignore_extras=ignore_extras, + extras_key=extras_key, batch_size=batch_size, alter=False, upsert=False, ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV `extras_key=` and `ignore_extras=` equivalents for CLI tool 1271426387 | |
1155804591 | https://github.com/simonw/sqlite-utils/issues/444#issuecomment-1155804591 | https://api.github.com/repos/simonw/sqlite-utils/issues/444 | IC_kwDOCGYnMM5E5C2v | simonw 9599 | 2022-06-14T23:28:36Z | 2022-06-14T23:28:36Z | OWNER | I'm going with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV `extras_key=` and `ignore_extras=` equivalents for CLI tool 1271426387 | |
1155804459 | https://github.com/simonw/sqlite-utils/issues/444#issuecomment-1155804459 | https://api.github.com/repos/simonw/sqlite-utils/issues/444 | IC_kwDOCGYnMM5E5C0r | simonw 9599 | 2022-06-14T23:28:18Z | 2022-06-14T23:28:18Z | OWNER | I think these become part of the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV `extras_key=` and `ignore_extras=` equivalents for CLI tool 1271426387 | |
1155803262 | https://github.com/simonw/sqlite-utils/issues/430#issuecomment-1155803262 | https://api.github.com/repos/simonw/sqlite-utils/issues/430 | IC_kwDOCGYnMM5E5Ch- | simonw 9599 | 2022-06-14T23:26:11Z | 2022-06-14T23:26:11Z | OWNER | It looks like
I'm going to turn this into a help-wanted documentation issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document how to use `PRAGMA temp_store` to avoid errors when running VACUUM against huge databases 1224112817 | |
1155801812 | https://github.com/simonw/sqlite-utils/issues/434#issuecomment-1155801812 | https://api.github.com/repos/simonw/sqlite-utils/issues/434 | IC_kwDOCGYnMM5E5CLU | simonw 9599 | 2022-06-14T23:23:32Z | 2022-06-14T23:23:32Z | OWNER | Since table names can be quoted like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`detect_fts()` identifies the wrong table if tables have names that are subsets of each other 1243151184 | |
1155794149 | https://github.com/simonw/sqlite-utils/issues/434#issuecomment-1155794149 | https://api.github.com/repos/simonw/sqlite-utils/issues/434 | IC_kwDOCGYnMM5E5ATl | simonw 9599 | 2022-06-14T23:09:54Z | 2022-06-14T23:09:54Z | OWNER | A test that demonstrates the problem: ```python @pytest.mark.parametrize("reverse_order", (True, False)) def test_detect_fts_similar_tables(fresh_db, reverse_order): # https://github.com/simonw/sqlite-utils/issues/434 table1, table2 = ("demo", "demo2") if reverse_order: table1, table2 = table2, table1
tests/test_introspect.py:53: AssertionError ========================================================================================= short test summary info ========================================================================================= FAILED tests/test_introspect.py::test_detect_fts_similar_tables[True] - AssertionError: assert 'demo2_fts' == 'demo_fts' =============================================================================== 1 failed, 1 passed, 855 deselected in 1.00s =============================================================================== ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`detect_fts()` identifies the wrong table if tables have names that are subsets of each other 1243151184 | |
1155791109 | https://github.com/simonw/sqlite-utils/issues/434#issuecomment-1155791109 | https://api.github.com/repos/simonw/sqlite-utils/issues/434 | IC_kwDOCGYnMM5E4_kF | simonw 9599 | 2022-06-14T23:04:40Z | 2022-06-14T23:04:40Z | OWNER | Definitely a bug - thanks for the detailed write-up! You're right, the code at fault is here: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`detect_fts()` identifies the wrong table if tables have names that are subsets of each other 1243151184 | |
1155789101 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155789101 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E4_Et | simonw 9599 | 2022-06-14T23:00:45Z | 2022-06-14T23:00:45Z | OWNER | I'm going to mark this as "help wanted" and leave it open. I'm glad that it's not actually a bug where errors get swallowed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155788944 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155788944 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E4_CQ | simonw 9599 | 2022-06-14T23:00:24Z | 2022-06-14T23:00:24Z | OWNER | The progress bar only works if the file-like object passed to it has a If we know the file size in bytes AND we know the character encoding, can we change I don't think so: I can't see a way of definitively saying "for this encoding the number of bytes per character is X" - and in fact I'm pretty sure that question doesn't even make sense since variable-length encodings exist. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155784284 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155784284 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E495c | simonw 9599 | 2022-06-14T22:51:03Z | 2022-06-14T22:52:13Z | OWNER | Yes, this is the problem. The progress bar length is set to the length in bytes of the file - So if the file is in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155782835 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155782835 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E49iz | simonw 9599 | 2022-06-14T22:48:22Z | 2022-06-14T22:49:53Z | OWNER | Here's the code that implements the progress bar in question: https://github.com/simonw/sqlite-utils/blob/1b09538bc6c1fda773590f3e600993ef06591041/sqlite_utils/cli.py#L918-L932 It calls Which uses this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155781399 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155781399 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E49MX | simonw 9599 | 2022-06-14T22:45:41Z | 2022-06-14T22:45:41Z | OWNER | TIL how to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155776023 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155776023 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E474X | simonw 9599 | 2022-06-14T22:36:07Z | 2022-06-14T22:36:07Z | OWNER | Wait! The arguments in that are the wrong way round. This is correct:
It still outputs the following: [------------------------------------] 0% [#################-------------------] 49% 00:00:02% But it creates a That database has 3141 rows in it: ``` % sqlite-utils tables test.db --counts -t table count test 3142
And it contains 3142 lines:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155772244 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155772244 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E469U | simonw 9599 | 2022-06-14T22:30:03Z | 2022-06-14T22:30:03Z | OWNER | Tried this: ``` % python -i $(which sqlite-utils) insert --csv --delimiter ";" --encoding "utf-16-le" test test.db csv [------------------------------------] 0% [#################-------------------] 49% 00:00:01Traceback (most recent call last): File "/Users/simon/.local/share/virtualenvs/sqlite-utils-C4Ilevlm/lib/python3.8/site-packages/click/core.py", line 1072, in main ctx.exit() File "/Users/simon/.local/share/virtualenvs/sqlite-utils-C4Ilevlm/lib/python3.8/site-packages/click/core.py", line 692, in exit raise Exit(code) click.exceptions.Exit: 0 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/simon/.local/share/virtualenvs/sqlite-utils-C4Ilevlm/bin/sqlite-utils", line 33, in <module> sys.exit(load_entry_point('sqlite-utils', 'console_scripts', 'sqlite-utils')()) File "/Users/simon/.local/share/virtualenvs/sqlite-utils-C4Ilevlm/lib/python3.8/site-packages/click/core.py", line 1137, in call return self.main(args, *kwargs) File "/Users/simon/.local/share/virtualenvs/sqlite-utils-C4Ilevlm/lib/python3.8/site-packages/click/core.py", line 1090, in main sys.exit(e.exit_code) SystemExit: 0
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155771462 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155771462 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E46xG | simonw 9599 | 2022-06-14T22:28:38Z | 2022-06-14T22:28:38Z | OWNER | Maybe this isn't a CSV field value problem - I tried this patch and didn't seem to hit the new breakpoints:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155769216 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155769216 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E46OA | simonw 9599 | 2022-06-14T22:24:49Z | 2022-06-14T22:25:06Z | OWNER | I have a hunch that this crash may be caused by a CSV value which is too long, as addressed at the library level in: - #440 But not yet addressed in the CLI tool, see:
Either way though, I really don't like that errors like this are swallowed! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155767915 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155767915 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E455r | simonw 9599 | 2022-06-14T22:22:27Z | 2022-06-14T22:22:27Z | OWNER | I forgot to add equivalents of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1155767202 | https://github.com/simonw/sqlite-utils/issues/439#issuecomment-1155767202 | https://api.github.com/repos/simonw/sqlite-utils/issues/439 | IC_kwDOCGYnMM5E45ui | simonw 9599 | 2022-06-14T22:21:10Z | 2022-06-14T22:21:10Z | OWNER | I can't figure out why that error is being swallowed like that. The most likely culprit was this code: But I tried changing it like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Misleading progress bar against utf-16-le CSV input 1250495688 | |
1155764428 | https://github.com/simonw/sqlite-utils/issues/432#issuecomment-1155764428 | https://api.github.com/repos/simonw/sqlite-utils/issues/432 | IC_kwDOCGYnMM5E45DM | simonw 9599 | 2022-06-14T22:16:21Z | 2022-06-14T22:16:21Z | OWNER | Initial idea of how the
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support `rows_where()`, `delete_where()` etc for attached alias databases 1236693079 | |
1155764064 | https://github.com/simonw/sqlite-utils/issues/432#issuecomment-1155764064 | https://api.github.com/repos/simonw/sqlite-utils/issues/432 | IC_kwDOCGYnMM5E449g | simonw 9599 | 2022-06-14T22:15:44Z | 2022-06-14T22:15:44Z | OWNER | Implementing this would be a pretty big change - initial instinct is that I'd need to introduce a To look like this instead:
Would have to know to query The cached table counts logic like this would need a bunch of changes too: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support `rows_where()`, `delete_where()` etc for attached alias databases 1236693079 | |
1155759857 | https://github.com/simonw/sqlite-utils/issues/432#issuecomment-1155759857 | https://api.github.com/repos/simonw/sqlite-utils/issues/432 | IC_kwDOCGYnMM5E437x | simonw 9599 | 2022-06-14T22:09:07Z | 2022-06-14T22:09:07Z | OWNER | Third option, and I think the one I like the best:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support `rows_where()`, `delete_where()` etc for attached alias databases 1236693079 | |
1155758664 | https://github.com/simonw/sqlite-utils/issues/432#issuecomment-1155758664 | https://api.github.com/repos/simonw/sqlite-utils/issues/432 | IC_kwDOCGYnMM5E43pI | simonw 9599 | 2022-06-14T22:07:50Z | 2022-06-14T22:07:50Z | OWNER | Another potential fix: add a
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support `rows_where()`, `delete_where()` etc for attached alias databases 1236693079 | |
1155756742 | https://github.com/simonw/sqlite-utils/issues/432#issuecomment-1155756742 | https://api.github.com/repos/simonw/sqlite-utils/issues/432 | IC_kwDOCGYnMM5E43LG | simonw 9599 | 2022-06-14T22:05:38Z | 2022-06-14T22:05:49Z | OWNER | I don't like the idea of It would be neat if functions like One thought would be to support something like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support `rows_where()`, `delete_where()` etc for attached alias databases 1236693079 | |
1155753397 | https://github.com/simonw/sqlite-utils/issues/431#issuecomment-1155753397 | https://api.github.com/repos/simonw/sqlite-utils/issues/431 | IC_kwDOCGYnMM5E42W1 | simonw 9599 | 2022-06-14T22:01:38Z | 2022-06-14T22:01:38Z | OWNER | Yeah, I think it would be neat if the library could support self-referential many-to-many in a nice way. I'm not sure about the
Are there other reasons people might wan the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow making m2m relation of a table to itself 1227571375 | |
1155750270 | https://github.com/simonw/sqlite-utils/issues/441#issuecomment-1155750270 | https://api.github.com/repos/simonw/sqlite-utils/issues/441 | IC_kwDOCGYnMM5E41l- | simonw 9599 | 2022-06-14T21:57:57Z | 2022-06-14T21:57:57Z | OWNER | I added |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Combining `rows_where()` and `search()` to limit which rows are searched 1257724585 | |
1155749696 | https://github.com/simonw/sqlite-utils/issues/433#issuecomment-1155749696 | https://api.github.com/repos/simonw/sqlite-utils/issues/433 | IC_kwDOCGYnMM5E41dA | simonw 9599 | 2022-06-14T21:57:05Z | 2022-06-14T21:57:05Z | OWNER | Marking this as help wanted because I can't figure out how to replicate it! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CLI eats my cursor 1239034903 | |
1155748444 | https://github.com/simonw/sqlite-utils/issues/442#issuecomment-1155748444 | https://api.github.com/repos/simonw/sqlite-utils/issues/442 | IC_kwDOCGYnMM5E41Jc | simonw 9599 | 2022-06-14T21:55:15Z | 2022-06-14T21:55:15Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`maximize_csv_field_size_limit()` utility function 1269886084 | ||
1155714131 | https://github.com/simonw/sqlite-utils/issues/442#issuecomment-1155714131 | https://api.github.com/repos/simonw/sqlite-utils/issues/442 | IC_kwDOCGYnMM5E4sxT | simonw 9599 | 2022-06-14T21:07:50Z | 2022-06-14T21:07:50Z | OWNER | Here's the commit where I added that originally, including a test: https://github.com/simonw/sqlite-utils/commit/1a93b72ba710ea2271eaabc204685a27d2469374 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`maximize_csv_field_size_limit()` utility function 1269886084 | |
1155672675 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155672675 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E4ipj | simonw 9599 | 2022-06-14T20:19:07Z | 2022-06-14T20:19:07Z | OWNER | { "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | ||
1155672522 | https://github.com/simonw/sqlite-utils/issues/443#issuecomment-1155672522 | https://api.github.com/repos/simonw/sqlite-utils/issues/443 | IC_kwDOCGYnMM5E4inK | simonw 9599 | 2022-06-14T20:18:58Z | 2022-06-14T20:18:58Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make `utils.rows_from_file()` a documented API 1269998342 | ||
1155666672 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155666672 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E4hLw | simonw 9599 | 2022-06-14T20:11:52Z | 2022-06-14T20:11:52Z | OWNER | I'm going to rename |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1155421299 | https://github.com/simonw/sqlite-utils/issues/441#issuecomment-1155421299 | https://api.github.com/repos/simonw/sqlite-utils/issues/441 | IC_kwDOCGYnMM5E3lRz | simonw 9599 | 2022-06-14T16:23:52Z | 2022-06-14T16:23:52Z | OWNER | Actually I have a thought for something that could help here: I could add a mechanism for inserting additional where filters and parameters into that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Combining `rows_where()` and `search()` to limit which rows are searched 1257724585 | |
1155389614 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155389614 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E3diu | simonw 9599 | 2022-06-14T15:54:03Z | 2022-06-14T15:54:03Z | OWNER | Filed an issue against |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1155364367 | https://github.com/simonw/sqlite-utils/issues/412#issuecomment-1155364367 | https://api.github.com/repos/simonw/sqlite-utils/issues/412 | IC_kwDOCGYnMM5E3XYP | simonw 9599 | 2022-06-14T15:36:28Z | 2022-06-14T15:36:28Z | OWNER | Here's as far as I got with my initial prototype, in ```python from .db import Database as _Database, Table as _Table, View as _View import pandas as pd from typing import ( Iterable, Union, Optional, ) class Database(_Database): def query( self, sql: str, params: Optional[Union[Iterable, dict]] = None ) -> pd.DataFrame: return pd.DataFrame(super().query(sql, params))
class PandasQueryable: def rows_where( self, where: str = None, where_args: Optional[Union[Iterable, dict]] = None, order_by: str = None, select: str = "*", limit: int = None, offset: int = None, ) -> pd.DataFrame: return pd.DataFrame( super().rows_where( where, where_args, order_by=order_by, select=select, limit=limit, offset=offset, ) ) class Table(PandasQueryable, _Table): pass class View(PandasQueryable, _View): pass ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Optional Pandas integration 1160182768 | |
1155358637 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155358637 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E3V-t | simonw 9599 | 2022-06-14T15:31:34Z | 2022-06-14T15:31:34Z | OWNER | Getting this past
Which is legit here - we have a dictionary where one of the keys is |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1155350755 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155350755 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E3UDj | simonw 9599 | 2022-06-14T15:25:18Z | 2022-06-14T15:25:18Z | OWNER | That broke
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1155317293 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155317293 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E3L4t | simonw 9599 | 2022-06-14T15:04:01Z | 2022-06-14T15:04:01Z | OWNER | I think that's unavoidable: it looks like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1155310521 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1155310521 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5E3KO5 | simonw 9599 | 2022-06-14T14:58:50Z | 2022-06-14T14:58:50Z | OWNER | Interesting challenge in writing tests for this: if you give
It decided the delimiter there was |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154475454 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154475454 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez-W- | simonw 9599 | 2022-06-13T21:52:03Z | 2022-06-13T21:52:03Z | OWNER | The exception will be called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154474482 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154474482 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez-Hy | simonw 9599 | 2022-06-13T21:50:59Z | 2022-06-13T21:51:24Z | OWNER | Decision: I'm going to default to raising an exception if a row has too many values in it. You'll be able to pass |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154457893 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154457893 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez6El | simonw 9599 | 2022-06-13T21:29:02Z | 2022-06-13T21:29:02Z | OWNER | Here's the current function signature for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154457028 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154457028 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez53E | simonw 9599 | 2022-06-13T21:28:03Z | 2022-06-13T21:28:03Z | OWNER | Whatever I decide, I can implement it in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154456183 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154456183 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez5p3 | simonw 9599 | 2022-06-13T21:26:55Z | 2022-06-13T21:26:55Z | OWNER | So I need to make a design decision here: what should Some options:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154454127 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154454127 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez5Jv | simonw 9599 | 2022-06-13T21:24:18Z | 2022-06-13T21:24:18Z | OWNER | That weird behaviour is documented here: https://docs.python.org/3/library/csv.html#csv.DictReader
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154453319 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154453319 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez49H | simonw 9599 | 2022-06-13T21:23:16Z | 2022-06-13T21:23:16Z | OWNER | Aha! I think I see what's happening here. Here's what ```pycon
That's a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154449442 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154449442 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ez4Ai | simonw 9599 | 2022-06-13T21:18:26Z | 2022-06-13T21:20:12Z | OWNER | Here are full steps to replicate the bug:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154396400 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154396400 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5EzrDw | simonw 9599 | 2022-06-13T20:28:25Z | 2022-06-13T20:28:25Z | OWNER | Fixing that ``` File ~/Dropbox/Development/sqlite-utils/sqlite_utils/utils.py:376, in hash_record(record, keys) 373 if keys is not None: 374 to_hash = {key: record[key] for key in keys} 375 return hashlib.sha1( --> 376 json.dumps(to_hash, separators=(",", ":"), sort_keys=True, default=repr).encode( 377 "utf8" 378 ) 379 ).hexdigest() File ~/.pyenv/versions/3.8.2/lib/python3.8/json/init.py:234, in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, kw) 232 if cls is None: 233 cls = JSONEncoder --> 234 return cls( 235 skipkeys=skipkeys, ensure_ascii=ensure_ascii, 236 check_circular=check_circular, allow_nan=allow_nan, indent=indent, 237 separators=separators, default=default, sort_keys=sort_keys, 238 kw).encode(obj) File ~/.pyenv/versions/3.8.2/lib/python3.8/json/encoder.py:199, in JSONEncoder.encode(self, o) 195 return encode_basestring(o) 196 # This doesn't pass the iterator directly to ''.join() because the 197 # exceptions aren't as detailed. The list call should be roughly 198 # equivalent to the PySequence_Fast that ''.join() would do. --> 199 chunks = self.iterencode(o, _one_shot=True) 200 if not isinstance(chunks, (list, tuple)): 201 chunks = list(chunks) File ~/.pyenv/versions/3.8.2/lib/python3.8/json/encoder.py:257, in JSONEncoder.iterencode(self, o, _one_shot) 252 else: 253 _iterencode = _make_iterencode( 254 markers, self.default, _encoder, self.indent, floatstr, 255 self.key_separator, self.item_separator, self.sort_keys, 256 self.skipkeys, _one_shot) --> 257 return _iterencode(o, 0) TypeError: '<' not supported between instances of 'NoneType' and 'str' ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154387591 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154387591 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ezo6H | simonw 9599 | 2022-06-13T20:17:51Z | 2022-06-13T20:17:51Z | OWNER | I don't understand why that works but calling |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154386795 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154386795 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ezotr | simonw 9599 | 2022-06-13T20:16:53Z | 2022-06-13T20:16:53Z | OWNER | Steps to demonstrate that
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154385916 | https://github.com/simonw/sqlite-utils/issues/440#issuecomment-1154385916 | https://api.github.com/repos/simonw/sqlite-utils/issues/440 | IC_kwDOCGYnMM5Ezof8 | simonw 9599 | 2022-06-13T20:15:49Z | 2022-06-13T20:15:49Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
CSV files with too many values in a row cause errors 1250629388 | |
1154373361 | https://github.com/simonw/sqlite-utils/issues/441#issuecomment-1154373361 | https://api.github.com/repos/simonw/sqlite-utils/issues/441 | IC_kwDOCGYnMM5Ezlbx | simonw 9599 | 2022-06-13T20:01:25Z | 2022-06-13T20:01:25Z | OWNER | Yeah, at the moment the best way to do this is with Here's how I would do this, using a CTE trick to combine the queries:
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Combining `rows_where()` and `search()` to limit which rows are searched 1257724585 | |
1142556455 | https://github.com/simonw/datasette/pull/1740#issuecomment-1142556455 | https://api.github.com/repos/simonw/datasette/issues/1740 | IC_kwDOBm6k_c5EGgcn | simonw 9599 | 2022-05-31T19:25:49Z | 2022-05-31T19:25:49Z | OWNER | Thanks, this looks like a good idea to me. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
chore: Set permissions for GitHub actions 1226106354 | |
1141488533 | https://github.com/simonw/sqlite-utils/pull/437#issuecomment-1141488533 | https://api.github.com/repos/simonw/sqlite-utils/issues/437 | IC_kwDOCGYnMM5ECbuV | simonw 9599 | 2022-05-30T21:32:36Z | 2022-05-30T21:32:36Z | OWNER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
docs to dogs 1244294227 | |
1133417432 | https://github.com/simonw/sqlite-utils/issues/435#issuecomment-1133417432 | https://api.github.com/repos/simonw/sqlite-utils/issues/435 | IC_kwDOCGYnMM5DjpPY | simonw 9599 | 2022-05-20T21:56:10Z | 2022-05-20T21:56:10Z | OWNER | Before: After: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch to Furo documentation theme 1243704847 | |
1133416698 | https://github.com/simonw/sqlite-utils/issues/435#issuecomment-1133416698 | https://api.github.com/repos/simonw/sqlite-utils/issues/435 | IC_kwDOCGYnMM5DjpD6 | simonw 9599 | 2022-05-20T21:54:43Z | 2022-05-20T21:54:43Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch to Furo documentation theme 1243704847 | ||
1133396285 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133396285 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjkE9 | simonw 9599 | 2022-05-20T21:28:29Z | 2022-05-20T21:28:29Z | OWNER | That fixed it: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133348094 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133348094 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjYT- | simonw 9599 | 2022-05-20T20:40:09Z | 2022-05-20T20:40:09Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | ||
1133347051 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133347051 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjYDr | simonw 9599 | 2022-05-20T20:39:17Z | 2022-05-20T20:39:17Z | OWNER | Now live at https://docs.datasette.io/en/latest/ - the JavaScript that adds the banner about that not being the stable version doesn't seem to work though. Before: After: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133335940 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133335940 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjVWE | simonw 9599 | 2022-05-20T20:30:29Z | 2022-05-20T20:30:29Z | OWNER | I think the trick will be to extend the https://github.com/pradyunsg/furo/blob/2022.04.07/src/furo/theme/furo/base.html - the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133333144 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133333144 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjUqY | simonw 9599 | 2022-05-20T20:28:25Z | 2022-05-20T20:28:25Z | OWNER | One last question: how to include the Plausible analytics? Furo doesn't have any specific tools for this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133331997 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133331997 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjUYd | simonw 9599 | 2022-05-20T20:27:31Z | 2022-05-20T20:27:31Z | OWNER | I'm going to move my custom JavaScript from |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133331564 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133331564 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjURs | simonw 9599 | 2022-05-20T20:27:12Z | 2022-05-20T20:27:12Z | OWNER | This seems to work for ```html+jinja ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133310253 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133310253 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjPEt | simonw 9599 | 2022-05-20T20:11:00Z | 2022-05-20T20:11:00Z | OWNER | Oh but |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133309452 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133309452 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjO4M | simonw 9599 | 2022-05-20T20:10:36Z | 2022-05-20T20:10:36Z | OWNER | Weird, I cannot figure out this |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133299417 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133299417 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjMbZ | simonw 9599 | 2022-05-20T20:05:34Z | 2022-05-20T20:05:34Z | OWNER | I can't get that thing that displays the version working. https://github.com/readthedocs/sphinx_rtd_theme/blob/9264091087620d421b0804c00937b00980ac3916/sphinx_rtd_theme/layout.html#L154 is where |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133288501 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133288501 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjJw1 | simonw 9599 | 2022-05-20T20:00:17Z | 2022-05-20T20:00:17Z | OWNER | Here's a TIL from when I first customized the Note that Furo doesn't use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133267290 | https://github.com/simonw/datasette/issues/1153#issuecomment-1133267290 | https://api.github.com/repos/simonw/datasette/issues/1153 | IC_kwDOBm6k_c5DjEla | simonw 9599 | 2022-05-20T19:44:05Z | 2022-05-20T19:50:58Z | OWNER | Undocumented Sphinx feature: you can add extra classes to a code example like this: ``` .. code-block:: json :class: metadata-json
``` https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-code-block doesn't mention this. Filed an issue about the lack of documentation here: - https://github.com/sphinx-doc/sphinx/issues/10461 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use YAML examples in documentation by default, not JSON 771202454 | |
1133254599 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133254599 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjBfH | simonw 9599 | 2022-05-20T19:33:08Z | 2022-05-20T19:33:08Z | OWNER | Actually maybe I don't? I just noticed that on other pages on https://docs.datasette.io/en/stable/installation.html the only way to get back to that useful table of context / index page at https://docs.datasette.io/en/stable/index.html is by clicking the tiny house icon. Can I do better or should I have the logo do that? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133252598 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133252598 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjA_2 | simonw 9599 | 2022-05-20T19:31:30Z | 2022-05-20T19:31:30Z | OWNER | I'd also like to bring back this stable / latest / version indicator: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133250151 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133250151 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5DjAZn | simonw 9599 | 2022-05-20T19:29:37Z | 2022-05-20T19:29:37Z | OWNER | I want the Datasette logo in the sidebar to link to https://datasette.io/ Looks like I can do that by dropping in my own |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133246791 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133246791 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di_lH | simonw 9599 | 2022-05-20T19:26:49Z | 2022-05-20T19:26:49Z | OWNER | Putting this in the
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133242063 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133242063 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di-bP | simonw 9599 | 2022-05-20T19:22:49Z | 2022-05-20T19:22:49Z | OWNER | I have some custom CSS in this file: I tested and the The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133232301 | https://github.com/simonw/datasette/issues/1748#issuecomment-1133232301 | https://api.github.com/repos/simonw/datasette/issues/1748 | IC_kwDOBm6k_c5Di8Ct | simonw 9599 | 2022-05-20T19:15:00Z | 2022-05-20T19:15:00Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add copy buttons next to code examples in the documentation 1243517592 | ||
1133229196 | https://github.com/simonw/datasette/issues/1747#issuecomment-1133229196 | https://api.github.com/repos/simonw/datasette/issues/1747 | IC_kwDOBm6k_c5Di7SM | simonw 9599 | 2022-05-20T19:12:30Z | 2022-05-20T19:12:30Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add tutorials to the getting started guide 1243512344 | ||
1133225441 | https://github.com/simonw/datasette/issues/1748#issuecomment-1133225441 | https://api.github.com/repos/simonw/datasette/issues/1748 | IC_kwDOBm6k_c5Di6Xh | simonw 9599 | 2022-05-20T19:09:13Z | 2022-05-20T19:09:13Z | OWNER | I'm going to add this Sphinx plugin: https://github.com/executablebooks/sphinx-copybutton |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add copy buttons next to code examples in the documentation 1243517592 | |
1133222848 | https://github.com/simonw/datasette/issues/1153#issuecomment-1133222848 | https://api.github.com/repos/simonw/datasette/issues/1153 | IC_kwDOBm6k_c5Di5vA | simonw 9599 | 2022-05-20T19:07:10Z | 2022-05-20T19:07:10Z | OWNER | I could use https://github.com/pradyunsg/sphinx-inline-tabs for this - recommended by https://pradyunsg.me/furo/recommendations/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use YAML examples in documentation by default, not JSON 771202454 | |
1133217219 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133217219 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di4XD | simonw 9599 | 2022-05-20T18:58:54Z | 2022-05-20T18:58:54Z | OWNER | Need to address other customizations I've made in https://github.com/simonw/datasette/blob/0.62a0/docs/_templates/layout.html - such as Plausible analytics and some custom JavaScript. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133215684 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133215684 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di3_E | simonw 9599 | 2022-05-20T18:56:29Z | 2022-05-20T18:56:29Z | OWNER | One other problem: in dark mode the Datasette logo looks bad: This helps a bit:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133210942 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133210942 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di20- | simonw 9599 | 2022-05-20T18:49:40Z | 2022-05-20T18:49:40Z | OWNER | And for those local table of contents, do this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133210651 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133210651 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di2wb | simonw 9599 | 2022-05-20T18:49:11Z | 2022-05-20T18:49:11Z | OWNER | I found a workaround for the no-longer-nested left hand navigation: drop this into ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 | |
1133210032 | https://github.com/simonw/datasette/issues/1746#issuecomment-1133210032 | https://api.github.com/repos/simonw/datasette/issues/1746 | IC_kwDOBm6k_c5Di2mw | simonw 9599 | 2022-05-20T18:48:17Z | 2022-05-20T18:48:17Z | OWNER | A couple of changes I want to make. First, I don't really like the way Furo keeps the in-page titles in a separate menu on the right rather than expanding them on the left. I like this: Furo wants to do this instead: I also still want to include those inline tables of contents on the two pages that have them: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Switch documentation theme to Furo 1243498298 |
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]);
issue >1000