issues
604 rows where repo = 140912432 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: user, milestone, comments, updated_at, closed_at, author_association, body, draft, updated_at (date), closed_at (date)
title 600 ✖
- Add SpatiaLite helpers to CLI 2
- Add paths for homebrew on Apple silicon 2
- `sqlite-utils bulk` command 2
- insert_all(..., alter=True) should work for new columns introduced after the first 100 records 2
- ResourceWarning: unclosed file 1
- "Error: near "(": syntax error" when using sqlite-utils indexes CLI 1
- "Too many SQL variables" on large inserts 1
- "apt-get: command not found" error on macOS 1
- "insert-files --sqlar" for creating SQLite archives 1
- "sqlite-utils convert" command to replace the separate "sqlite-transform" tool 1
- "sqlite-utils insert" should support newline-delimited JSON 1
- "sqlite-utils triggers" command 1
- "sqlite-utils views" command 1
- 'unclosed file' warning when using insert_upsert_implementation from Python 1
- --attach command line option for attaching extra databases 1
- --delimiter option for CSV import 1
- --lines and --text and --convert and --import 1
- --load-extension for other sqlite-utils commands 1
- --load-extension option for sqlite-utils query 1
- --load-extension=spatialite shortcut option 1
- --no-headers option for CSV and TSV 1
- --raw option for outputting binary content 1
- --schema option to "sqlite-utils tables" 1
- --sniff option for sniffing delimiters 1
- --tsv output format option 1
- .add_column() doesn't match indentation of initial creation 1
- .add_foreign_key() corrupts database if column contains a space 1
- .add_missing_columns() does not take case insensitivity into account 1
- .columns_dict doesn't work for all possible column types 1
- .delete_where() does not auto-commit (unlike .insert() or .upsert()) 1
- .extract() doesn't set foreign key when extracted columns contain NULL value 1
- .extract() shouldn't extract null values 1
- .get() method plus support for compound primary keys 1
- .insert/.upsert/.insert_all/.upsert_all should add missing columns 1
- .insert_all() fails if subsequent chunks contain additional columns 1
- .insert_all() should accept a generator and process it efficiently 1
- .m2m() should accept alter=True parameter 1
- .search(columns=) and sqlite-utils search -c ... bug 1
- .transform() fails to drop column if table is part of a view 1
- .transform() instead of modifying sqlite_master for add_foreign_keys 1
- .transform() now preserves rowid values, refs #592 1
- .transform(types=) turns rowid into a concrete column 1
- .upsert() with hash_id throws error 1
- .upsert_all() should maybe error if dictionaries passed to it do not have the same keys 1
- 3.0 release with some minor breaking changes 1
- 3.4 release is broken - includes a rogue line 1
- :pencil: Updates my_database.py to my_database.db 1
- @db.register_function(..., replace=False) to avoid double-registering custom functions 1
- A decorator for registering custom SQL functions 1
- A way of creating indexes on newly created tables 1
- Ability to add columns to tables 1
- Ability to add descending order indexes 1
- Ability to automatically create IDs from content hash of row 1
- Ability to customize columns used by extracts= feature 1
- Ability to define unique columns when creating a table 1
- Ability to execute insert/update statements with the CLI 1
- Ability to insert binary data on the CLI using JSON 1
- Ability to insert data that is transformed by a SQL function 1
- Ability to insert file contents as text, in addition to blob 1
- Ability to insert files piped to insert-files stdin 1
- Ability to insert multi-line files 1
- Ability to introspect and run queries against views 1
- Ability to introspect triggers 1
- Ability to list views, and to access db["view_name"].rows / rows_where / etc 1
- Ability to load JSON records held in a file with a single top level key that is a list of objects 1
- Ability to merge databases and tables 1
- Ability to remove a foreign key 1
- Ability to see just specific table schemas with `sqlite-utils schema` 1
- Ability to tell if a Database is an in-memory one 1
- About loading spatialite 1
- Add "copy to clipboard" button to code examples in documentation 1
- Add --encoding option to sqlite-utils memory 1
- Add --ignore option to more commands 1
- Add COLUMN_TYPE_MAPPING for timedelta 1
- Add a `sqlite-utils memory` example to the README 1
- Add an interactive tutorial as a Jupyter notebook 1
- Add an option for specifying column names when inserting CSV data 1
- Add contributing documentation 1
- Add dict type to be mapped as TEXT in sqllite 1
- Add docs for .transform(column_order=) 1
- Add documentation page with the output of `--help` 1
- Add duplicate table feature 1
- Add example of `--convert` to the help for `sqlite-utils insert` 1
- Add examples to every `--help` 1
- Add fts offset docs. 1
- Add functionality to read Parquet files. 1
- Add generated files to .gitignore 1
- Add insert --truncate option 1
- Add installation instructions 1
- Add more STRICT table support 1
- Add new spatialite helper methods 1
- Add or document streamlined workflow for importing Datasette csv / json exports 1
- Add reference documentation generated from docstrings 1
- Add reference page to documentation using Sphinx autodoc 1
- Add some types, enforce with mypy 1
- Add spatialite arm64 linux path 1
- Add support for porter stemming in FTS 1
- Add triggers while enabling FTS 1
- Add type conversion for Panda's Timestamp 1
- Add way to export to a csv file using the Python library 1
- Adding a "recreate" flag to the `Database` constructor 1
- Additional Column Constraints? 1
- Adopt flake8 1
- Advanced class-based `conversions=` mechanism 1
- Aliased ROWID option for tables created from alter=True commands 1
- Allow .insert(..., foreign_keys=()) to auto-detect table and primary key 1
- Allow iterables other than Lists in m2m records 1
- Allow making m2m relation of a table to itself 1
- Allow passing a file of code to "sqlite-utils convert" 1
- Allow surrogates in parameters 1
- Allow users to pass a full convert() function definition 1
- Analyze tables options: --common-limit, --no-most, --no-least 1
- Async support 1
- AttributeError: 'EntryPoints' object has no attribute 'get' for flake8 on Python 3.7 1
- Automate (as much as possible) updates published to Homebrew 1
- Automatic type detection for CSV data 1
- Backfill the release notes prior to 0.4 1
- Better "contributing" documentation 1
- Better documentation for insert-replace 1
- Better error message for *_fts methods against views 1
- Better error message if `--convert` code fails to return a dict 1
- Better error message if you try to create a table with no columns 1
- Better handling of encodings other than utf-8 for "sqlite-utils insert" 1
- Bug when first record contains fewer columns than subsequent records 1
- CLI command for duplicating tables 1
- CLI docs should link to Python docs and vice versa 1
- CLI eats my cursor 1
- CLI equivalents to `transform(add_foreign_keys=)` 1
- CLI options for running ANALYZE 1
- CLI utility for inserting binary files into SQLite 1
- CSV `extras_key=` and `ignore_extras=` equivalents for CLI tool 1
- CSV files with too many values in a row cause errors 1
- Can't store an array or dictionary containing a bytes value 1
- Cannot .enable_fts() for columns with spaces in their names 1
- Cannot enable FTS5 despite it being available 1
- Cannot find spatialite on arm64 linux 1
- Cannot set type JSON 1
- Cascading DELETE not working with Table.delete(pk) 1
- Code for finding SpatiaLite in the usual locations 1
- Columns with only null values are no longer created in the database 1
- Combining `rows_where()` and `search()` to limit which rows are searched 1
- Command for creating an empty database 1
- Conda Forge 1
- Configure sphinx.ext.extlinks for issues 1
- Consider including animated SVG console demos 1
- Convert with `--multi` and `--dry-run` flag does not work 1
- Correct some typos 1
- Correct spelling mistakes (found with codespell) 1
- Create index doesn't work for columns containing spaces 1
- Creating tables with custom datatypes 1
- Cross-link CLI to Python docs 1
- Custom JSON encoder 1
- Default values for `--attach` and `--param` options 1
- Depend on click-default-group-wheel 1
- Detect numpy types when creating tables 1
- Discord badge 1
- Display autodoc type information more legibly 1
- Document how to add a primary key to a rowid table using `sqlite-utils transform --pk` 1
- Document how to setup shell auto-completion 1
- Document how to use Just 1
- Document how to use `PRAGMA temp_store` to avoid errors when running VACUUM against huge databases 1
- Document how to use a `--convert` function that runs initialization code first 1
- Document that running `db.transform()` tidies up the schema indentation 1
- Documentation for table.pks introspection property 1
- Documentation unit tests for CLI commands 1
- Don't test Python 3.7 against textual 1
- Drop support for Python 3.6 1
- Enable `Table.convert()` on falsey values 1
- Enable code coverage 1
- Enable ordering FTS results by rank 1
- Error in upsert if column named 'order' 1
- Error reading csv files with large column data 1
- Escape the table name in populate_fts and search. 1
- Escaping FTS search strings 1
- Experiment with contentless FTS tables 1
- Experiment with type hints 1
- Explicitly include tests and docs in sdist 1
- Explore the intersection between sqlite-utils and dataclasses 1
- Expose convert recipes to `sqlite-utils --functions` 1
- Extra options to `lookup()` which get passed to `insert()` 1
- Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified 1
- Extract expand - work in progress 1
- Extract expand: Support JSON Arrays 1
- FTS quote functionality from datasette 1
- FTS table with 7 rows has _fts_docsize table with 9,141 rows 1
- Feature for tracing SQL queries 1
- Feature request: enable extensions loading 1
- Feature request: output number of ignored/replaced rows for insert command 1
- Feature request: trim all leading and trailing white space for all columns for all tables in a database 1
- Features for enabling and disabling WAL mode 1
- Filter by datetime objects using rows_where() 1
- Filter table by a large bunch of ids 1
- Fix accidental mega long line in docs 1
- Fix for too many SQL variables, closes #50 1
- Fix incorrect create-table cli description 1
- Fix query command's support for DML 1
- Fix repeated calls to `Table.convert()` 1
- Fix tests for Python 3.11 1
- Fix visible backticks on reference page 1
- Fixed implementation of upsert 1
- Fixed issue #433 - CLI eats cursor 1
- Fixes breaking DEFAULT values 1
- Fixes mapping for time fields related to mysql, closes #522 1
- Fixing insert from JSON containing strings with non-ascii characters … 1
- Fts5 1
- Full text search possibly broken? 1
- Get `add_foreign_keys()` to work without modifying `sqlite_master` 1
- Get rid of test.utils.collapse_whitespace 1
- Get tests to pass with `pytest -Werror` 1
- Handle byte order marks (BOMs) in CSV files 1
- Handle case where subsequent records (after first batch) include extra columns 1
- Handling CSV/file input that contains NUL bytes 1
- Helper methods for working with SpatiaLite 1
- Hitting `_csv.Error: field larger than field limit (131072)` 1
- How can i use this utils to deal with fts on column meta of tables ? 1
- I forgot to include the changelog in the 3.25.1 release 1
- Idea: @db.register_function(deterministic=True) 1
- Idea: `sqlite-utils create-table tablename --sql "select ..."` 1
- Idea: `suffix` and `stem` file columns 1
- Idea: ability to pass extra variables to `--convert` scripts 1
- Idea: conversions= could take Python functions 1
- Idea: import CSV to memory, run SQL, export in a single command 1
- Idea: insert-files mechanism for adding extra columns with fixed values 1
- Idea: transitive closure tables for tree structures 1
- If column data is a mixture of integers and nulls, detected type should be INTEGER 1
- Ignore common generated files 1
- Implement ON DELETE and ON UPDATE actions for foreign keys 1
- Implemented table.lookup(...), closes #44 1
- Improve and document foreign_keys=... argument to insert/create/etc 1
- Improve performance of extract operations 1
- Improved (and better documented) support for transactions 1
- Incorrect help text for enable-fts command 1
- Incorrect syntax highlighting in docs CLI reference 1
- Initial prototype of .analyze() methods 1
- Insert fails with `Error: Python int too large to convert to SQLite INTEGER`; can we use `NUMERIC` here? 1
- Insert from JSON containing strings with non-ascii characters are escaped as unicode for lists, tuples, dicts. 1
- Insert with --tsv and --no-headers give error about --nl arguments 1
- Introspect if table is FTS4 or FTS5 1
- Introspection property for telling if a table is a rowid table 1
- Invalid JSON output when no rows 1
- JSON column values get extraneously quoted 1
- Jupyter notebook demo of the library, launchable on Binder 1
- Keyword only arguments for transform() 1
- Link from documentation to source code 1
- Link to a better example on docs index 1
- Link to installation instructions 1
- Link to stable docs from older versions 1
- List `--fmt` options in the docs 1
- Make .indexes compatible with older SQLite versions 1
- Make .transform() a keyword arguments only function 1
- Make `cursor.rowcount` accessible (wontfix) 1
- Make `utils.rows_from_file()` a documented API 1
- Make as many examples in the CLI docs as possible copy-and-pastable 1
- Make db["table"].exists a documented API 1
- Make it easier to insert geometries, with documentation and maybe code 1
- Make sqlite_utils.utils.chunks a documented function 1
- Maybe: Utility method / CLI tool for initializing SpatiaLite 1
- Mechanism for adding foreign keys to an existing table 1
- Mechanism for adding multiple foreign key constraints at once 1
- Mechanism for de-registering registered SQL functions 1
- Mechanism for ensuring a table has all the columns 1
- Mechanism for explicitly stating CSV or JSON or TSV for sqlite-utils memory 1
- Mechanism for forcing column-type, over-riding auto-detection 1
- Mechanism for maintaining cache of table counts using triggers 1
- Mechanism for turning nested JSON into foreign keys / many-to-many 1
- MemoryError 1
- Microsoft line endings 1
- Misleading progress bar against utf-16-le CSV input 1
- More attractive indentation of created FTS table schema 1
- Move plugin directory into documentation 1
- Move to GitHub Actions CI 1
- Much, much faster extract() implementation 1
- Mypy error: found module but no type hints or library stubs 1
- Mypy fixes for rows_from_file() 1
- New .add_foreign_key() can break if PRAGMA legacy_alter_table=ON and there's an invalid foreign key reference 1
- New conversions= feature, refs #77 1
- New options for analyze-tables --common-limit --no-most and --no-least 1
- No need to show common values if everything is null 1
- Offer `python -m sqlite_utils` as an alternative to `sqlite-utils` 1
- Only set .last_rowid and .last_pk for single update/inserts, not for .insert_all()/.upsert_all() with multiple records 1
- OperationalError: cannot VACUUM from within a transaction 1
- OperationalError: cannot change into wal mode from within a transaction 1
- Option for importing CSV data using the SQLite .import mechanism 1
- Option to ignore inserts if primary key exists already 1
- Option to open database in read-only mode 1
- Optional Pandas integration 1
- Optional caching mechanism for table.lookup() 1
- Options for how `r.parsedate()` should handle invalid dates 1
- Output binary columns in "sqlite-utils query" JSON 1
- Plausible analytics for documentation 1
- Plugin hook for adding new output formats 1
- Plugin system 1
- Prevent accidental add-foreign-key with invalid column 1
- Problem with square bracket in CSV column name 1
- Problems handling column names containing spaces or - 1
- Progress bar for "sqlite-utils extract" 1
- Progress bar for sqlite-utils insert 1
- Progress bar for sqlite-utils insert command 1
- Progressbar not shown when inserting/upserting jsonlines file 1
- Provide function to generate hash_id from specified columns 1
- Pyhton 3.12 Bug report 1
- Python API ability to opt-out of connection plugins 1
- Python library docs should start with a self contained example 1
- Python library methods for calling ANALYZE 1
- Python library version of `sqlite-utils convert` 1
- Python: need a way to execute a count with an extra where clause 1
- README should include an example of CLI data insertion 1
- Read lines with JSON object 1
- ReadTheDocs error: not all arguments converted during string formatting 1
- Reading rows from a file => AttributeError: '_io.StringIO' object has no attribute 'readinto' 1
- Rearrange the docs by area, not CLI vs Python 1
- Reconsider not running convert functions against null values 1
- Reformatted CLI examples in docs 1
- Release 1.12.1 1
- Release a sdist to PyPI 1
- Release notes for 1.0 1
- Release notes for 2.20 1
- Release notes for 3.21 1
- Release notes for 3.29 1
- Release sqlite-utils 3.30 1
- Remove .detect_column_types() from table, make it a documented API 1
- Remove `skip_false=True` and `--no-skip-false` in `sqlite-utils` 4.0 1
- Rename .escape() to .quote() 1
- Repeated calls to `Table.convert()` fail 1
- Represent compound foreign keys in table.foreign_keys output 1
- Research adding support for savepoints 1
- Research how much of a difference analyze / sqlite_stat1 makes 1
- Research: handle gzipped CSV directly 1
- Rethink approach to [ and ] in column names (currently throws error) 1
- Rethink how table.search() method works 1
- Returning underlying cause for User Defined Functions 1
- Reuse the locals/globals fix from --functions for other code accepting options 1
- Review the foreign key pragma stuff 1
- Run Travis tests against Python 3.8-dev 1
- Run some tests against numpy 1
- Run tests against 3.5 too 1
- Run tests against Ubuntu, macOS and Windows 1
- Run tests against Windows in GitHub Actions 1
- SQLITE_MAX_VARS maybe hard-coded too low 1
- Should detect collections.OrderedDict as a regular dictionary 1
- Show more information when JSON can't be imported with sqlite-utils insert 1
- Simplify .transform(drop_foreign_keys=) and sqlite-transform --drop-foreign-key 1
- Single quoted transform recipes on Windows do not work as expected 1
- Special handling for SQLite column of type `JSON` 1
- Specify foreign key against compound key in other table 1
- Suggest the --alter option if a new column cannot be added 1
- Support IF NOT EXISTS for table creation 1
- Support JSON values returned from .convert() functions 1
- Support STRICT tables 1
- Support UUID and memoryview types 1
- Support `--import xml.etree.ElementTree` in `sqlite-utils convert` 1
- Support `rows_where()`, `delete_where()` etc for attached alias databases 1
- Support compound primary keys 1
- Support creating descending order indexes 1
- Support custom names for registered functions 1
- Support db as first parameter before subcommand, or as environment variable 1
- Support decimal.Decimal type 1
- Support enabling FTS on views 1
- Support entrypoints for `--load-extension` 1
- Support for CHECK constraints 1
- Support for compound (composite) foreign keys 1
- Support for generated columns 1
- Support for numpy types, closes #11 1
- Support json-line files 1
- Support more string values for types in .add_column() 1
- Support mutating row in `--convert` without returning it 1
- Support of RData files 1
- Support order by relevance against FTS4 1
- Support self-referencing FKs in `Table.create` 1
- Support storing incrementally piped values 1
- Support tokenize option for FTS 1
- Supporting additional output formats, like GeoJSON 1
- Switch to Furo documentation theme 1
- Syntactic sugar for ATTACH DATABASE 1
- Syntactic sugar for creating m2m records 1
- TUI powered by Trogon 1
- Table renaming: db.rename_table() and sqlite-utils rename-table 1
- Test against 3.10-dev 1
- Test against Python 3.10 1
- Test against Python 3.10-dev 1
- Test against Python 3.11-dev 1
- Test against Python 3.12 preview 1
- Test against Python 3.9 1
- Test against pysqlite3 running SQLite 3.37 1
- Test failure in test_rebuild_fts 1
- Test failure with sqlite 3.34 in test_cli.py::test_optimize 1
- Test failures on openSUSE 15.1: AssertionError: Explicit other_table and other_column 1
- Tests are failing due to missing FTS5 1
- Tests broken on Windows due to new convert() lambda names 1
- Tests failing due to updated tabulate library 1
- The ".upsert()" method is misnamed 1
- Throws error if .insert_all() / .upsert_all() called with empty list 1
- Tiny typographical error in install/uninstall docs 1
- Tracer mechanism for seeing underlying SQL 1
- Transformation type `--type DATETIME` 1
- Try out GitHub code scanning 1
- Try out Trogon for a tui interface 1
- Try running some tests using Hypothesis 1
- Turn --flatten into a documented utility function 1
- Turn on recursive_triggers by default 1
- Tutorial command no longer works 1
- Type signatures for `.create_table()` and `.create_table_sql()` and `.create()` and `Table.__init__` 1
- Typo in upsert example 1
- Typos in tests 1
- Update README.md 1
- Update SpatiaLite example in the documentation 1
- Update rowid examples in the docs 1
- Upgrade `--load-extension` to accept entrypoints like Datasette 1
- Use Just to automate running tests and linters locally 1
- Use RETURNING if available to populate last_pk 1
- Use Read the Docs action v1 1
- Use Read the Docs action v1 (#463) 1
- Use _counts to speed up counts 1
- Use db[table] consistently in documentation 1
- Use python-dateutil package instead of dateutils 1
- Use sqlean if available in environment 1
- Using enable_fts before search term 1
- Utilities for adding indexes 1
- Utilities for building lookup tables 1
- Utilities for duplicating tables and creating a table with the results of a query 1
- Way to test SQLite 3.37 (and potentially other versions) in CI 1
- Work in progress: m2m() method for creating many-to-many records 1
- [Enhancement] Please allow 'insert-files' to insert content as text. 1
- [enhancement] Method to delete a row in python 1
- [insert_all, upsert_all] IntegrityError: constraint failed 1
- `--batch-size 1` doesn't seem to commit for every item 1
- `--empty-null` option when importing CSV 1
- `--fmt` should imply `-t` 1
- `--nl` mode should ignore blank lines 1
- `--no-headers` doesn't work on most formats 1
- `--raw-lines` option, like `--raw` for multiple lines 1
- `--stop-after` option for `insert` and `upsert` commands 1
- `--where` option for `sqlite-rows` 1
- `.add_foreign_keys()` doesn't reject being called with a View 1
- `.delete_where()` returns `[]` when it should return self 1
- `.transform(keep_table=...)` option 1
- `Database(memory_name="name")` constructor argument 1
- `IndexError` when doing `.insert(..., pk='id')` after `insert_all` 1
- `Table.convert()` skips falsey values 1
- `db.query()` method (renamed `db.execute_returning_dicts()`) 1
- `detect_fts()` identifies the wrong table if tables have names that are subsets of each other 1
- `deterministic=True` fails on versions of SQLite prior to 3.8.3 1
- `hash_id: Optional[Any]` should be `hash_id: Optional[str]` 1
- `maximize_csv_field_size_limit()` utility function 1
- `prepare_connection()` plugin hook 1
- `sqlite-utils bulk --batch-size` option 1
- `sqlite-utils bulk` progress bar 1
- `sqlite-utils convert --pdb` option 1
- `sqlite-utils create-table` ... `--if-not-exists` 1
- `sqlite-utils indexes` command 1
- `sqlite-utils insert --convert` option 1
- `sqlite-utils insert --extract colname` 1
- `sqlite-utils insert --flatten` option to flatten nested JSON 1
- `sqlite-utils install -e` option 1
- `sqlite-utils install` command 1
- `sqlite-utils memory --flatten` option to flatten nested JSON 1
- `sqlite-utils rows` options `--limit` and `--offset` 1
- `sqlite-utils tables data.db table1 table2` 1
- `sqlite-utils transform` breaks DEFAULT string values and STRFTIME() 1
- `sqlite-utils transform` removes the `AUTOINCREMENT` keyword 1
- `sqlite-utils transform` should set empty strings to null when converting text columns to integer/float 1
- `sqlite-utils upsert` should require `--pk` more elegantly 1
- `sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher 1
- `sqlite_utils.utils.TypeTracker` should be a documented API 1
- `table.convert()` method should clean up after itself 1
- `table.convert(..., where=)` and `sqlite-utils convert ... --where=` 1
- `table.get(column=value)` option for retrieving things not by their primary key 1
- `table.lookup()` option to populate additional columns when creating a record 1
- `table.search(..., quote=True)` parameter and `sqlite-utils search --quote` option 1
- `table.strict` introspection boolean for identifying STRICT mode tables 1
- `table.transform()` should preserve `rowid` values 1
- `table.upsert_all` fails to write rows when `not_null` is present 1
- `table.xindexes` using `PRAGMA index_xinfo(table)` 1
- `with db:` for transactions 1
- add -h support closes #276 1
- add ability to configure "on delete" and "on update" attributes of foreign keys: 1
- add_column() should support REFERENCES {other_table}({other_column}) 1
- add_foreign_key(...., ignore=True) 1
- analyze-tables should validate provide --column names 1
- analyze=True parameter for some methods 1
- balanced table default column_order 1
- beanbag-docutils>=2.0 1
- bool type not supported 1
- changes to allow for compound foreign keys 1
- codespell to spell check documentation 1
- column_names 1
- conn.execute: UnicodeEncodeError: 'utf-8' codec can't encode character 1
- create-index should run analyze after creating index 1
- create_view(..., ignore=True, replace=True) parameters 1
- database.triggers_dict introspection property 1
- db.add_foreign_keys() method 1
- db.close() method, calling db.conn.close() 1
- db.enable_counts() method 1
- db.schema property and sqlite-utils schema command 1
- db.triggers and table.triggers introspection 1
- db["my_table"].drop(ignore=True) parameter, plus sqlite-utils drop-table --ignore and drop-view --ignore 1
- db[table].create(..., transform=True) and create-table --transform 1
- devrel/python api: Pylance type hinting 1
- dict, list, tuple should all map to TEXT 1
- docs to dogs 1
- ensure_index() method 1
- extracts= doesn't configure foreign keys 1
- extracts= option for insert/update/etc 1
- extracts= should support multiple-column extracts 1
- extracts= table parameter 1
- feat: Implement a prepare_connection plugin hook 1
- feat: recreate fts triggers after table transform 1
- feature request: pivot command 1
- fix for problem in Table.insert_all on search for columns per chunk of rows 1
- fix: enable-fts permanently save triggers 1
- fixtures.db example error in sql-utils blog post 1
- flake8 ValueError: Error code '#' supplied to 'extend-ignore' option... 1
- illegal UTF-16 surrogate 1
- importing CSV to SQLite as library 1
- in extract code, check equality with IS instead of = for nulls 1
- index_foreign_keys / index-foreign-keys utilities 1
- insert fails on JSONL with whitespace 1
- insert-files should get a --silent option 1
- insert-files support for compressed values 1
- inserting with --nl errors with: sqlite3.OperationalError: table <table> has no column named <column> 1
- limit=X, offset=Y parameters for more Python methods 1
- memory: Shouldn't detect types for JSON 1
- mypy failure, sqlite_utils/utils.py:56 1
- mypy failures in CI 1
- on_create mechanism for after table creation 1
- order_by mechanism 1
- pk=["id"] should have same effect as pk="id" 1
- progressbar for inserts/upserts of all fileformats, closes #485 1
- pytest-runner is not required 1
- rebuild-fts command and table.rebuild_fts() method 1
- register_command plugin hook 1
- reset_counts() method and command 1
- row.update() or row.pk 1
- rows: --transpose or psql extended view-like functionality 1
- rows_from_file() raises confusing error if file-like object is not in binary mode 1
- search_sql add include_rank option 1
- sphinx.builders.linkcheck build error 1
- sqlean support 1
- sqlite-util tranform --column-order mangles columns of type "timestamp" 1
- sqlite-utils add-foreign-keys command 1
- sqlite-utils analyze-tables command 1
- sqlite-utils analyze-tables command and table.analyze_column() method 1
- sqlite-utils convert command and db[table].convert(...) method 1
- sqlite-utils convert date parsing recipe complains about trying to parse "*" 1
- sqlite-utils create-table command 1
- sqlite-utils create-view CLI command 1
- sqlite-utils drop-table and drop-view commands 1
- sqlite-utils dump my.db command 1
- sqlite-utils enable-counts command 1
- sqlite-utils extract could handle nested objects 1
- sqlite-utils index-foreign-keys / db.index_foreign_keys() 1
- sqlite-utils index-foreign-keys fails due to pre-existing index 1
- sqlite-utils insert --tsv option 1
- sqlite-utils insert -f colname - for configuring full-text search 1
- sqlite-utils insert errors should show SQL and parameters, if possible 1
- sqlite-utils insert-files should be able to convert fields 1
- sqlite-utils insert: options for column types 1
- sqlite-utils memory --analyze option 1
- sqlite-utils memory blah.json --schema 1
- sqlite-utils memory can't deal with multiple files with the same name 1
- sqlite-utils memory command for directly querying CSV/JSON data 1
- sqlite-utils memory should handle TSV and JSON in addition to CSV 1
- sqlite-utils query --functions mechanism for registering extra functions 1
- sqlite-utils query should support named parameters 1
- sqlite-utils rows --order option 1
- sqlite-utils rows -c option 1
- sqlite-utils search command 1
- sqlite-utils should suggest --csv if JSON parsing fails 1
- sqlite-utils transform column order option 1
- sqlite-utils transform sub-command 1
- sqlite-utils transform/insert --detect-types 1
- sqlite3.OperationalError: near "(": syntax error 1
- sqlite3.OperationalError: too many SQL variables in insert_all when using rows with varying numbers of columns 1
- str and int as aliases for text and integer 1
- support for Apache Arrow / parquet files I/O 1
- support small help flag -h 1
- table.create(..., replace=True) 1
- table.create_index(..., ignore=True) 1
- table.default_values introspection property 1
- table.disable_fts() method and "sqlite-utils disable-fts ..." command 1
- table.enable_fts(..., replace=True) 1
- table.extract(...) method and "sqlite-utils extract" command 1
- table.get(...) method 1
- table.optimize() should delete junk rows from *_fts_docsize 1
- table.pks_and_rows_where() method returning primary keys along with the rows 1
- table.search() improvements plus sqlite-utils search command 1
- table.transform() method 1
- table.transform() method for advanced alter table 1
- table.triggers_dict introspection property 1
- table.update() method 1
- table.update(...) method 1
- table.upsert_all() fails if input has a single column that should be a primary key 1
- test_insert_upsert_all_empty_list 1
- test_recreate failing on Windows Python 3.11 1
- transform --help should tell you the available types 1
- upsert --detect-types is broken 1
- upsert new rows with constraints, fixes #514 1
- upsert of new row with check constraints fails 1
- upsert_all() throws issue when upserting to empty table 1
- use jsonify_if_need for sql updates 1
created_at (date) 370 ✖
- 2023-05-21 10
- 2020-09-22 8
- 2022-08-27 8
- 2023-07-22 8
- 2019-02-24 7
- 2020-09-07 7
- 2021-01-02 7
- 2022-01-09 7
- 2019-07-23 5
- 2020-07-26 5
- 2020-08-28 5
- 2021-02-14 5
- 2021-06-19 5
- 2021-08-10 5
- 2022-01-11 5
- 2022-01-26 5
- 2020-08-21 4
- 2020-09-23 4
- 2020-09-24 4
- 2020-11-03 4
- 2021-02-25 4
- 2021-05-29 4
- 2021-11-29 4
- 2022-01-06 4
- 2022-02-04 4
- 2022-10-25 4
- 2019-01-28 3
- 2019-05-29 3
- 2019-06-13 3
- 2019-06-30 3
- 2019-09-02 3
- 2020-01-31 3
- 2020-05-01 3
- 2020-08-30 3
- 2020-09-09 3
- 2021-06-11 3
- 2021-06-16 3
- 2021-06-17 3
- 2021-06-18 3
- 2021-06-20 3
- 2021-08-01 3
- 2021-08-02 3
- 2021-11-15 3
- 2021-12-10 3
- 2022-01-10 3
- 2022-02-06 3
- 2022-02-09 3
- 2022-03-23 3
- 2022-05-20 3
- 2022-08-02 3
- 2022-09-26 3
- 2023-05-08 3
- 2023-07-03 3
- 2019-05-25 2
- 2019-07-14 2
- 2019-07-19 2
- 2019-08-03 2
- 2019-11-07 2
- 2020-01-07 2
- 2020-02-03 2
- 2020-03-23 2
- 2020-04-16 2
- 2020-05-02 2
- 2020-06-23 2
- 2020-07-08 2
- 2020-07-27 2
- 2020-09-28 2
- 2020-09-30 2
- 2020-10-16 2
- 2020-11-05 2
- 2020-11-06 2
- 2020-11-07 2
- 2020-12-12 2
- 2021-01-03 2
- 2021-01-18 2
- 2021-02-12 2
- 2021-04-26 2
- 2021-06-23 2
- 2021-07-14 2
- 2021-08-09 2
- 2021-08-22 2
- 2021-08-25 2
- 2021-09-08 2
- 2021-11-02 2
- 2021-12-07 2
- 2022-01-07 2
- 2022-02-24 2
- 2022-03-11 2
- 2022-03-25 2
- 2022-05-27 2
- 2022-06-13 2
- 2022-06-20 2
- 2022-06-21 2
- 2022-08-17 2
- 2022-08-23 2
- 2022-08-28 2
- 2022-08-30 2
- 2022-09-06 2
- 2022-09-08 2
- 2022-10-01 2
- 2022-10-11 2
- 2022-10-18 2
- 2022-10-31 2
- 2022-11-26 2
- 2022-12-10 2
- 2023-02-10 2
- 2023-03-12 2
- 2023-05-07 2
- 2023-06-04 2
- 2023-06-25 2
- 2023-07-23 2
- 2023-07-26 2
- 2023-08-17 2
- 2023-08-18 2
- 2023-09-03 2
- 2023-09-08 2
- 2023-11-03 2
- 2018-08-02 1
- 2018-08-12 1
- 2018-08-18 1
- 2019-01-25 1
- 2019-01-26 1
- 2019-02-01 1
- 2019-02-16 1
- 2019-02-23 1
- 2019-04-11 1
- 2019-04-12 1
- 2019-06-20 1
- 2019-06-26 1
- 2019-06-27 1
- 2019-06-28 1
- 2019-07-01 1
- 2019-07-09 1
- 2019-07-15 1
- 2019-07-20 1
- 2019-07-24 1
- 2019-07-25 1
- 2019-07-28 1
- 2019-08-15 1
- 2019-08-17 1
- 2019-09-01 1
- 2019-09-03 1
- 2019-09-09 1
- 2019-10-01 1
- 2019-11-04 1
- 2019-11-12 1
- 2019-11-27 1
- 2019-12-02 1
- 2019-12-08 1
- 2019-12-17 1
- 2019-12-27 1
- 2019-12-30 1
- 2020-01-05 1
- 2020-01-14 1
- 2020-01-30 1
- 2020-02-01 1
- 2020-02-07 1
- 2020-02-11 1
- 2020-02-13 1
- 2020-02-16 1
- 2020-02-27 1
- 2020-03-01 1
- 2020-03-02 1
- 2020-03-07 1
- 2020-03-14 1
- 2020-03-15 1
- 2020-03-29 1
- 2020-04-04 1
- 2020-04-10 1
- 2020-04-13 1
- 2020-04-18 1
- 2020-05-03 1
- 2020-05-05 1
- 2020-05-07 1
- 2020-05-10 1
- 2020-05-12 1
- 2020-05-19 1
- 2020-05-20 1
- 2020-06-12 1
- 2020-07-06 1
- 2020-07-07 1
- 2020-07-30 1
- 2020-08-01 1
- 2020-08-09 1
- 2020-08-10 1
- 2020-08-12 1
- 2020-08-23 1
- 2020-08-27 1
- 2020-09-08 1
- 2020-09-16 1
- 2020-09-20 1
- 2020-09-21 1
- 2020-09-25 1
- 2020-09-26 1
- 2020-10-08 1
- 2020-10-11 1
- 2020-10-17 1
- 2020-10-26 1
- 2020-10-27 1
- 2020-10-28 1
- 2020-11-08 1
- 2020-11-16 1
- 2020-11-29 1
- 2020-12-10 1
- 2020-12-11 1
- 2020-12-14 1
- 2020-12-15 1
- 2021-01-11 1
- 2021-01-12 1
- 2021-01-22 1
- 2021-01-29 1
- 2021-02-06 1
- 2021-02-13 1
- 2021-02-17 1
- 2021-02-19 1
- 2021-02-24 1
- 2021-02-27 1
- 2021-03-01 1
- 2021-03-02 1
- 2021-03-13 1
- 2021-03-15 1
- 2021-03-16 1
- 2021-03-20 1
- 2021-03-21 1
- 2021-03-22 1
- 2021-03-25 1
- 2021-03-26 1
- 2021-03-31 1
- 2021-04-13 1
- 2021-04-15 1
- 2021-04-19 1
- 2021-05-19 1
- 2021-05-31 1
- 2021-06-01 1
- 2021-06-07 1
- 2021-06-08 1
- 2021-06-13 1
- 2021-06-15 1
- 2021-06-22 1
- 2021-06-25 1
- 2021-06-28 1
- 2021-06-30 1
- 2021-07-23 1
- 2021-07-24 1
- 2021-07-30 1
- 2021-08-03 1
- 2021-08-04 1
- 2021-08-13 1
- 2021-08-17 1
- 2021-08-18 1
- 2021-08-24 1
- 2021-09-03 1
- 2021-09-19 1
- 2021-09-22 1
- 2021-09-23 1
- 2021-10-13 1
- 2021-10-14 1
- 2021-10-16 1
- 2021-10-28 1
- 2021-11-04 1
- 2021-11-05 1
- 2021-11-19 1
- 2021-11-25 1
- 2021-11-30 1
- 2021-12-05 1
- 2021-12-06 1
- 2021-12-11 1
- 2021-12-14 1
- 2021-12-16 1
- 2021-12-29 1
- 2022-01-01 1
- 2022-01-08 1
- 2022-01-12 1
- 2022-01-14 1
- 2022-01-19 1
- 2022-01-22 1
- 2022-01-30 1
- 2022-02-02 1
- 2022-02-05 1
- 2022-02-08 1
- 2022-02-15 1
- 2022-02-21 1
- 2022-03-04 1
- 2022-03-05 1
- 2022-03-16 1
- 2022-03-17 1
- 2022-03-21 1
- 2022-04-10 1
- 2022-04-12 1
- 2022-04-13 1
- 2022-04-15 1
- 2022-04-22 1
- 2022-04-26 1
- 2022-05-02 1
- 2022-05-03 1
- 2022-05-06 1
- 2022-05-16 1
- 2022-05-17 1
- 2022-05-22 1
- 2022-05-26 1
- 2022-06-02 1
- 2022-06-14 1
- 2022-06-22 1
- 2022-07-02 1
- 2022-07-08 1
- 2022-07-09 1
- 2022-07-13 1
- 2022-07-15 1
- 2022-07-19 1
- 2022-07-20 1
- 2022-07-27 1
- 2022-07-28 1
- 2022-08-01 1
- 2022-08-10 1
- 2022-08-13 1
- 2022-09-02 1
- 2022-09-05 1
- 2022-09-09 1
- 2022-09-14 1
- 2022-09-15 1
- 2022-09-22 1
- 2022-09-23 1
- 2022-09-30 1
- 2022-10-30 1
- 2022-11-02 1
- 2022-11-03 1
- 2022-11-04 1
- 2022-11-16 1
- 2022-11-17 1
- 2022-12-06 1
- 2022-12-21 1
- 2023-01-02 1
- 2023-01-20 1
- 2023-01-23 1
- 2023-01-28 1
- 2023-02-06 1
- 2023-02-07 1
- 2023-02-09 1
- 2023-02-12 1
- 2023-02-22 1
- 2023-03-11 1
- 2023-03-14 1
- 2023-04-05 1
- 2023-04-08 1
- 2023-04-12 1
- 2023-05-04 1
- 2023-05-22 1
- 2023-05-31 1
- 2023-06-13 1
- 2023-06-27 1
- 2023-07-02 1
- 2023-07-09 1
- 2023-07-12 1
- 2023-07-24 1
- 2023-07-25 1
- 2023-08-07 1
- 2023-08-19 1
- 2023-08-28 1
- 2023-09-06 1
- 2023-09-12 1
- 2023-09-21 1
- 2023-09-29 1
- 2023-09-30 1
- 2023-10-04 1
- 2023-11-04 1
- 2023-11-06 1
- 2023-11-10 1
- 2023-11-19 1
- 2023-11-23 1
- 2023-12-06 1
repo 1
- sqlite-utils · 604 ✖
id | node_id | number | title | user | state | locked | assignee | milestone | comments | created_at | updated_at ▲ | closed_at | author_association | pull_request | body | repo | type | active_lock_reason | performed_via_github_app | reactions | draft | state_reason |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1066474200 | I_kwDOCGYnMM4_kRrY | 344 | Support STRICT tables | simonw 9599 | closed | 0 | 14 | 2021-11-29T20:32:23Z | 2023-12-08T05:22:39Z | 2023-12-08T05:22:39Z | OWNER | New in SQLite 3.37.0, released a few days ago: https://www.sqlite.org/stricttables.html |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/344/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
2001006157 | PR_kwDOCGYnMM5f2OZC | 604 | Add more STRICT table support | tkhattra 16437338 | closed | 0 | 4 | 2023-11-19T19:38:53Z | 2023-12-08T05:17:20Z | 2023-12-08T05:05:27Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/604 | Make :books: Documentation preview :books:: https://sqlite-utils--604.org.readthedocs.build/en/604/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1988525411 | I_kwDOCGYnMM52hn1j | 603 | Pyhton 3.12 Bug report | constantinedev 1324252 | open | 0 | 1 | 2023-11-10T22:57:48Z | 2023-12-08T05:10:31Z | NONE | I start with new python3 verison 3.12.0 Also have the error where connect DataBase
As well now of the resolved plan just keep the sqlite-utils version in python3.12 with v3.32.1 [tested] but where are the sqlite3.Connection problem.... This won't happen on python version down to 3.11[tested]
Just the python3.12.0, I have test this error are come from the sqlite3 connection
The error say from Let fix together. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/603/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
2007893839 | I_kwDOCGYnMM53rgdP | 605 | Insert fails with `Error: Python int too large to convert to SQLite INTEGER`; can we use `NUMERIC` here? | Zac-HD 12229877 | closed | 0 | 1 | 2023-11-23T10:19:46Z | 2023-12-08T05:07:54Z | 2023-12-08T05:07:54Z | NONE | I'm currently working on a new feature for Hypothesis, where we can dump a tidy jsonlines table of all the test cases we tried - including arguments, outcomes, timings, coverage, etc. Exploring this seems like a perfect cases for I originally went to report this as a bug... and then found https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895581038 almost exactly matched my repro 😅 https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626391063 suggests that using After a bit more hacking, "manually cast large integers to float" seems like a decent solution for my particular case, but having written it up I thought I might as well post this issue anyway - I hope it's useful feedback, and won't mind at all if you close as wontfix if it's not. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/605/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
2029161033 | I_kwDOCGYnMM548opJ | 606 | str and int as aliases for text and integer | simonw 9599 | closed | 0 | 2 | 2023-12-06T18:35:49Z | 2023-12-06T19:44:04Z | 2023-12-06T18:49:32Z | OWNER | I keep making this mistake:
Error: Invalid value for '[[integer|float|blob|text|INTEGER|FLOAT|BLOB|TEXT]]': 'int' is not one of 'integer', 'float', 'blob', 'text', 'INTEGER', 'FLOAT', 'BLOB', 'TEXT'. ``` |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/606/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1978603203 | I_kwDOCGYnMM517xbD | 602 | `sqlite-utils transform` removes the `AUTOINCREMENT` keyword | ArsTapatun 4472046 | open | 0 | 0 | 2023-11-06T08:48:43Z | 2023-11-06T08:48:43Z | NONE | ContextWe ran into this bug randomly, noticing that deleted Reproducible exampleOriginal database ```sql $ sqlite3 test.db << EOF CREATE TABLE mytable ( col1 INTEGER PRIMARY KEY AUTOINCREMENT, col2 TEXT NOT NULL ) EOF $ sqlite3 test.db ".schema mytable" CREATE TABLE mytable ( col1 INTEGER PRIMARY KEY AUTOINCREMENT, col2 TEXT NOT NULL ); ``` Modified database after sqlite-utils ```sql $ sqlite-utils transform test.db mytable --rename col2 renamedcol2 $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE IF NOT EXISTS "mytable" ( [col1] INTEGER PRIMARY KEY, [renamedcol2] TEXT NOT NULL ); ``` |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/602/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1977155641 | I_kwDOCGYnMM512QA5 | 601 | Move plugin directory into documentation | simonw 9599 | open | 0 | 0 | 2023-11-04T04:07:52Z | 2023-11-04T04:07:52Z | OWNER | https://github.com/simonw/sqlite-utils-plugins should be in the official documentation. I can use the same pattern as https://llm.datasette.io/en/stable/plugins/directory.html |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/601/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1976986318 | I_kwDOCGYnMM511mrO | 599 | Cannot find spatialite on arm64 linux | MikeCoats 37802088 | closed | 0 | 1 | 2023-11-03T22:05:51Z | 2023-11-04T01:06:31Z | 2023-11-04T00:33:28Z | CONTRIBUTOR | Initially, I found an issue in
I did some digging and realised the issue originates in this project. Even with the ``` $ apt list --installed | grep spatial […] libsqlite3-mod-spatialite/stable,now 5.0.1-3 arm64 [installed] $ ls -l /usr/lib//spatial* lrwxrwxrwx 1 root root 23 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so -> mod_spatialite.so.7.1.0 lrwxrwxrwx 1 root root 23 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so.7 -> mod_spatialite.so.7.1.0 -rw-r--r-- 1 root root 7348584 Dec 1 2022 /usr/lib/aarch64-linux-gnu/mod_spatialite.so.7.1.0 ```
I tracked the issue down to the |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/599/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1884335789 | PR_kwDOCGYnMM5Zs0KB | 591 | Test against Python 3.12 preview | simonw 9599 | closed | 0 | 3 | 2023-09-06T16:10:00Z | 2023-11-04T00:58:03Z | 2023-11-04T00:58:02Z | OWNER | simonw/sqlite-utils/pulls/591 | https://dev.to/hugovk/help-test-python-312-beta-1508/ :books: Documentation preview :books:: https://sqlite-utils--591.org.readthedocs.build/en/591/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/591/reactions", "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0 } |
0 | |||||
1553425465 | I_kwDOCGYnMM5cl2Q5 | 522 | Add COLUMN_TYPE_MAPPING for timedelta | maport 81377 | closed | 0 | 0 | 2023-01-23T16:49:54Z | 2023-11-04T00:49:51Z | 2023-11-04T00:49:51Z | NONE | Currently trying to create a column with Python type ```
The reason this would be useful is that ```
So currently any attempt to convert a MySQL DB with a I was rather surprised that |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/522/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1919296686 | PR_kwDOCGYnMM5bifPC | 596 | Fixes mapping for time fields related to mysql, closes #522 | nezhar 4420927 | closed | 0 | 1 | 2023-09-29T13:41:48Z | 2023-11-04T00:49:50Z | 2023-11-04T00:49:50Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/596 | Adds :books: Documentation preview :books:: https://sqlite-utils--596.org.readthedocs.build/en/596/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/596/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1926729132 | PR_kwDOCGYnMM5b7Z_y | 598 | Fixed issue #433 - CLI eats cursor | spookylukey 62745 | closed | 0 | 2 | 2023-10-04T18:06:58Z | 2023-11-04T00:46:55Z | 2023-11-04T00:40:30Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/598 | The issue is that underlying iterator is not fully consumed within the body of the These iterables are consumed later, outside the This means that the The fix is to move consumption of the (An additional fix, to make ProgressBar more robust against this kind of misuse, would to make it refusing to update after its Note that Github diff obscures the simplicity of this diff, it's just indenting a block of code. :books: Documentation preview :books:: https://sqlite-utils--598.org.readthedocs.build/en/598/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/598/reactions", "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0 } |
0 | |||||
1239034903 | I_kwDOCGYnMM5J2iwX | 433 | CLI eats my cursor | chapmanjacobd 7908073 | closed | 0 | 10 | 2022-05-17T18:52:52Z | 2023-11-04T00:46:30Z | 2023-11-04T00:46:30Z | CONTRIBUTOR | I'm not sure why this happens but I can still type commands after it runs but the text cursor is invisible |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/433/reactions", "total_count": 5, "+1": 5, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1977004379 | PR_kwDOCGYnMM5elFZf | 600 | Add spatialite arm64 linux path | MikeCoats 37802088 | closed | 0 | 5 | 2023-11-03T22:23:26Z | 2023-11-04T00:34:33Z | 2023-11-04T00:31:49Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/600 | According to both Debian and Ubuntu, the correct “target triple” for arm64 is I can confirm that on both of my Debian arm64 SBCs,
This is a set of before and after snippets of pytest’s output for this PR. Before
After
Issue: #599 :books: Documentation preview :books:: https://sqlite-utils--600.org.readthedocs.build/en/600/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1920416843 | I_kwDOCGYnMM5ydzxL | 597 | sqlite-utils insert-files should be able to convert fields | grimnight 1737541 | open | 0 | 0 | 2023-09-30T22:20:47Z | 2023-09-30T22:20:47Z | NONE | Currently using both ```shell ~ ❯ cat test.py import os class Example: def init(self, arg1, arg2): self.arg1 = arg1 ~ ❯ sqlite-utils insert-files test.sqlar sqlar test.py -c name:name -c data:content -c mode:mode -c mtime:mtime -c sz:size --pk=name [####################################] 100% ~ ❯ sqlite-utils convert test.sqlar sqlar data "zlib.compress(value)" --import=zlib --where "name = 'test.py'" [####################################] 100% ~ ❯ cat test.py | sqlite-utils convert test.sqlar sqlar data "zlib.compress(sys.stdin.buffer.read())" --import=zlib --import=sys --where "name = 'test.py'" # Alternative way [####################################] 100% ~ ❯ sqlite3 test.sqlar "SELECT hex(data) FROM sqlar WHERE name = 'test.py';" | python3 -c "import sys, zlib; sys.stdout.buffer.write(zlib.decompress(bytes.fromhex(sys.stdin.read())))" import os class Example: def init(self, arg1, arg2): self.arg1 = arg1 ~ ❯ rm test.py ~ ❯ sqlar -l test.sqlar test.py ~ ❯ sqlar -x test.sqlar ~ ❯ cat test.py import os class Example: def init(self, arg1, arg2): self.arg1 = arg1 ``` |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/597/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1907281675 | I_kwDOCGYnMM5xrs8L | 595 | Cascading DELETE not working with Table.delete(pk) | cycle-data 123451970 | closed | 0 | 1 | 2023-09-21T15:46:41Z | 2023-09-25T09:38:57Z | 2023-09-25T09:38:13Z | NONE | Hi ! I noticed that when I am trying to use the delete method of the Table object, the record get properly deleted from the table, but the cascading delete triggers on foreign keys do not activate.
I tried querying the database directly via DB Browser and the triggers work without any issue. Looked up the source code and behind the scene this method is just querying the database normally so I'm not exactly sure where this behavior comes from. Thank you in advance for your time ! |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/595/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
944846776 | MDU6SXNzdWU5NDQ4NDY3NzY= | 297 | Option for importing CSV data using the SQLite .import mechanism | simonw 9599 | open | 0 | 23 | 2021-07-14T22:36:41Z | 2023-09-22T20:49:52Z | OWNER | As seen in https://til.simonwillison.net/sqlite/import-csv - An option to use this would be useful - maybe something like this:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/297/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1891614971 | I_kwDOCGYnMM5wv8D7 | 594 | Represent compound foreign keys in table.foreign_keys output | simonw 9599 | open | 0 | 2 | 2023-09-12T03:48:24Z | 2023-09-12T03:51:13Z | OWNER | Given this schema:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/594/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1886771493 | I_kwDOCGYnMM5wddkl | 592 | `table.transform()` should preserve `rowid` values | simonw 9599 | closed | 0 | 6 | 2023-09-08T00:42:38Z | 2023-09-10T17:46:41Z | 2023-09-09T00:45:32Z | OWNER | I just spotted a bug when using https://datasette.io/plugins/datasette-configure-fts and https://datasette.io/plugins/datasette-edit-schema at the same time. Steps to reproduce:
I got the wrong search results, which I think is because the Reconfiguring FTS on the table fixed the problem. I think |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/592/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1886783150 | PR_kwDOCGYnMM5Z1H1d | 593 | .transform() now preserves rowid values, refs #592 | simonw 9599 | closed | 0 | 1 | 2023-09-08T01:02:28Z | 2023-09-10T17:44:59Z | 2023-09-09T00:45:30Z | OWNER | simonw/sqlite-utils/pulls/593 | Refs: - #592
I need to test that this works against:
:books: Documentation preview :books:: https://sqlite-utils--593.org.readthedocs.build/en/593/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/593/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1879214365 | I_kwDOCGYnMM5wAokd | 590 | Ability to tell if a Database is an in-memory one | simonw 9599 | open | 0 | 1 | 2023-09-03T19:50:15Z | 2023-09-03T19:50:36Z | OWNER | Currently the constructor accepts This makes it hard to tell if a database object is to an in-memory or a file-based database, which is sometimes useful to know. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/590/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1879209560 | I_kwDOCGYnMM5wAnZY | 589 | Mechanism for de-registering registered SQL functions | simonw 9599 | open | 0 | 3 | 2023-09-03T19:32:39Z | 2023-09-03T19:36:34Z | OWNER | I used a custom SQL function in a migration script and then realized that it should be de-registered before the end of the script to avoid leaking into the calling code. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/589/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1868713944 | I_kwDOCGYnMM5vYk_Y | 588 | `table.get(column=value)` option for retrieving things not by their primary key | simonw 9599 | open | 0 | 1 | 2023-08-28T00:41:23Z | 2023-08-28T00:41:54Z | OWNER | This came up working on this feature: - https://github.com/simonw/llm/pull/186 I have a table with this schema:
Problem is, fetching the collection by name is actually pretty inconvenient. Fetch by numeric ID:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/588/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1857851384 | I_kwDOCGYnMM5uvI_4 | 587 | New .add_foreign_key() can break if PRAGMA legacy_alter_table=ON and there's an invalid foreign key reference | simonw 9599 | closed | 0 | 3 | 2023-08-19T20:01:26Z | 2023-08-19T20:04:33Z | 2023-08-19T20:04:32Z | OWNER | Extremely detailed story of how I got to this point: Steps to reproduce (only if that pragma is on though):
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/587/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1817289521 | I_kwDOCGYnMM5sUaMx | 577 | Get `add_foreign_keys()` to work without modifying `sqlite_master` | simonw 9599 | closed | 0 | 9 | 2023-07-23T20:40:18Z | 2023-08-18T17:43:11Z | 2023-08-18T00:48:10Z | OWNER | This is the only place in the code that attempts to modify Could this use the Or automatically switch to that trick if it hits an error? |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/577/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1856075668 | I_kwDOCGYnMM5uoXeU | 586 | .transform() fails to drop column if table is part of a view | simonw 9599 | open | 0 | 3 | 2023-08-18T05:25:22Z | 2023-08-18T06:13:47Z | OWNER | I got this error trying to drop a column from a table that was part of a SQL view:
Upon further investigation I found that this pattern seemed to fix it:
Originally posted by @simonw in https://github.com/simonw/datasette-edit-schema/issues/35#issuecomment-1683370548 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/586/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1855894222 | I_kwDOCGYnMM5unrLO | 585 | CLI equivalents to `transform(add_foreign_keys=)` | simonw 9599 | closed | 0 | 7 | 2023-08-18T01:07:15Z | 2023-08-18T01:51:16Z | 2023-08-18T01:51:15Z | OWNER | The new options added in: - #577 Deserve consideration in the CLI as well. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/585/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1754174496 | I_kwDOCGYnMM5ojpQg | 558 | Ability to define unique columns when creating a table | aguinane 1910303 | open | 0 | 0 | 2023-06-13T06:56:19Z | 2023-08-18T01:06:03Z | NONE | When creating a new table, it would be good to have an option to set unique columns similar to how not_null is set. ```python from sqlite_utils import Database columns = {"mRID": str, "name": str} db = Database("example.db") db["ExampleTable"].create(columns, pk="mRID", not_null=["mRID"], if_not_exists=True) db["ExampleTable"].create_index(["mRID"], unique=True, if_not_exists=True) ``` So something like this would add the UNIQUE flag to the table definition.
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/558/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1855836914 | I_kwDOCGYnMM5undLy | 583 | Get rid of test.utils.collapse_whitespace | simonw 9599 | closed | 0 | 1 | 2023-08-17T23:31:09Z | 2023-08-18T00:59:19Z | 2023-08-18T00:59:19Z | OWNER | I have a neater pattern for this now - instead of: https://github.com/simonw/sqlite-utils/blob/1dc6b5aa644a92d3654f7068110ed7930989ce71/tests/test_create.py#L472-L475 I now prefer: |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/583/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1855838223 | PR_kwDOCGYnMM5YM-I3 | 584 | .transform() instead of modifying sqlite_master for add_foreign_keys | simonw 9599 | closed | 0 | 13 | 2023-08-17T23:32:45Z | 2023-08-18T00:48:13Z | 2023-08-18T00:48:08Z | OWNER | simonw/sqlite-utils/pulls/584 | Refs: - #577 :books: Documentation preview :books:: https://sqlite-utils--584.org.readthedocs.build/en/584/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/584/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1818838294 | I_kwDOCGYnMM5saUUW | 578 | Plugin hook for adding new output formats | simonw 9599 | open | 0 | 5 | 2023-07-24T17:29:18Z | 2023-08-07T15:41:49Z | OWNER |
https://discord.com/channels/823971286308356157/997738192360964156/1133076679011602432 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/578/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1839344979 | I_kwDOCGYnMM5toi1T | 582 | Handling CSV/file input that contains NUL bytes | betatim 1448859 | open | 0 | 0 | 2023-08-07T12:24:14Z | 2023-08-07T12:24:14Z | NONE | I was using sqlite-utils to create a DB from a CSV and it turns out the CSV contains a NUL byte. When the processing reaches the line that contains the NUL an exception is raised. I'm wondering if there is something that can be done in Concretely the file is the This is the command and output:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/582/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1823160748 | I_kwDOCGYnMM5sqzms | 581 | `sqlite-utils convert --pdb` option | simonw 9599 | closed | 0 | 1 | 2023-07-26T21:02:50Z | 2023-07-26T21:07:45Z | 2023-07-26T21:06:10Z | OWNER | While using |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/581/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1822918995 | I_kwDOCGYnMM5sp4lT | 580 | Add way to export to a csv file using the Python library | kevinlinxc 44324811 | open | 0 | 0 | 2023-07-26T18:09:26Z | 2023-07-26T18:09:26Z | NONE | According to the documentation, we can make a csv output using the CLI tool, but not the Python library. Could we have the latter? |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/580/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1821108702 | I_kwDOCGYnMM5si-ne | 579 | Special handling for SQLite column of type `JSON` | asg017 15178711 | open | 0 | 0 | 2023-07-25T20:37:23Z | 2023-07-25T20:37:23Z | CONTRIBUTOR |
Automatic NestingAccording to "Nested JSON Values", sqlite-utils will only expand JSON if the Instead,
I'm sure there's other ways |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/579/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1816997390 | I_kwDOCGYnMM5sTS4O | 576 | Backfill the release notes prior to 0.4 | simonw 9599 | closed | 0 | 2 | 2023-07-23T05:41:42Z | 2023-07-23T05:49:51Z | 2023-07-23T05:48:21Z | OWNER | Currently the changelog starts at 0.4: https://sqlite-utils.datasette.io/en/3.34/changelog.html#id115 I want the other releases - according to https://pypi.org/project/sqlite-utils/#history there are three missing: |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/576/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816919568 | I_kwDOCGYnMM5sS_4Q | 575 | Python API ability to opt-out of connection plugins | simonw 9599 | closed | 0 | 2 | 2023-07-22T23:01:13Z | 2023-07-22T23:17:22Z | 2023-07-22T23:08:22Z | OWNER | Plugins affecting the CLI by default makes sense to me. I'm less confident about them always affecting users of the Python API. I'm going to have them apply by default, but I'm going to add a mechanism to opt-out on an individual database basis. Basically this: ```python from sqlite_utils import Database db = Database(memory=True, execute_plugins=False) Anything using db from here on will not execute plugins``` cc @asg017 Refs: - #567 - #574 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/575/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816918185 | I_kwDOCGYnMM5sS_ip | 574 | `prepare_connection()` plugin hook | simonw 9599 | closed | 0 | 3 | 2023-07-22T22:52:47Z | 2023-07-22T23:13:14Z | 2023-07-22T22:59:10Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646686424 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/574/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1801394744 | I_kwDOCGYnMM5rXxo4 | 567 | Plugin system | asg017 15178711 | closed | 0 | 9 | 2023-07-12T17:02:14Z | 2023-07-22T22:59:37Z | 2023-07-22T22:59:36Z | CONTRIBUTOR | I'd like there to be a plugin system for sqlite-utils, similar to the datasette/llm plugins. I'd like to make plugins that would do things like:
A few real-world use-cases of plugins I'd like to see in sqlite-utils:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816917522 | PR_kwDOCGYnMM5WJ6Jm | 573 | feat: Implement a prepare_connection plugin hook | asg017 15178711 | closed | 0 | 4 | 2023-07-22T22:48:44Z | 2023-07-22T22:59:09Z | 2023-07-22T22:59:09Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/573 | Just like the Datasette prepare_connection hook, this PR adds a similar hook for the The sole argument is I want to do this so I can release An example plugin: https://gist.github.com/asg017/d7cdf0d56e2be87efda28cebee27fa3c ```bash $ sqlite-utils install https://gist.github.com/asg017/d7cdf0d56e2be87efda28cebee27fa3c/archive/5f5ad549a40860787629c69ca120a08c32519e99.zip $ sqlite-utils memory 'select hello("alex") as response' [{"response": "Hello, alex!"}] ``` Refs: - #574 :books: Documentation preview :books:: https://sqlite-utils--573.org.readthedocs.build/en/573/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/573/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1816876211 | I_kwDOCGYnMM5sS1Sz | 571 | `.transform(keep_table=...)` option | simonw 9599 | closed | 0 | 1 | 2023-07-22T19:49:29Z | 2023-07-22T22:32:18Z | 2023-07-22T22:32:18Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/565#issuecomment-1646657324 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/571/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816877910 | I_kwDOCGYnMM5sS1tW | 572 | Don't test Python 3.7 against textual | simonw 9599 | closed | 0 | 2 | 2023-07-22T19:57:03Z | 2023-07-22T22:16:50Z | 2023-07-22T22:16:50Z | OWNER | Spotted this in the GitHub Actions logs: |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/572/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1786243905 | I_kwDOCGYnMM5qd-tB | 564 | Document that running `db.transform()` tidies up the schema indentation | simonw 9599 | closed | 0 | 0 | 2023-07-03T13:59:28Z | 2023-07-22T22:15:34Z | 2023-07-22T22:15:34Z | OWNER |
```pycon <Table log (id, name2, age, weight, foo)> >>> db["log"].add_column("bar", str) <Table log (id, name2, age, weight, foo, bar)> >>> db["log"].add_column("baz", str) <Table log (id, name2, age, weight, foo, bar, baz)> >>> print(db["log"].schema) CREATE TABLE "log" ( [id] INTEGER PRIMARY KEY, [name2] TEXT, [age] INTEGER, [weight] FLOAT , [foo] TEXT, [bar] TEXT, [baz] TEXT) >>> db["log"].transform() <Table log (id, name2, age, weight, foo, bar, baz)> >>> print(db["log"].schema) CREATE TABLE "log" ( [id] INTEGER PRIMARY KEY, [name2] TEXT, [age] INTEGER, [weight] FLOAT, [foo] TEXT, [bar] TEXT, [baz] TEXT ) ``` _Originally posted by @simonw in https://github.com/simonw/llm/issues/65#issuecomment-1618347727_ |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/564/reactions", "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 1 } |
completed | ||||||
1205687423 | I_kwDOCGYnMM5H3VR_ | 426 | CLI docs should link to Python docs and vice versa | simonw 9599 | closed | 0 | simonw 9599 | 1 | 2022-04-15T16:05:15Z | 2023-07-22T22:13:22Z | 2023-07-22T22:13:22Z | OWNER | For every command/API method there should be a link to the equivalent in the other form factor. Maybe also link to the API and CLI reference pages too. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/426/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
1786258502 | I_kwDOCGYnMM5qeCRG | 565 | Table renaming: db.rename_table() and sqlite-utils rename-table | simonw 9599 | closed | 0 | 6 | 2023-07-03T14:07:42Z | 2023-07-22T22:12:40Z | 2023-07-22T22:12:40Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/llm/issues/65#issuecomment-1618375042 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/565/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816851056 | I_kwDOCGYnMM5sSvJw | 568 | table.create(..., replace=True) | simonw 9599 | closed | 0 | 7 | 2023-07-22T18:12:22Z | 2023-07-22T19:25:35Z | 2023-07-22T19:15:44Z | OWNER | Found myself using this pattern to quickly prototype a schema: ```python import sqlite_utils db = sqlite_utils.Database(memory=True) print(db["answers_chunks"].create({ "id": int, "content": str, "embedding_type_id": int, "embedding": bytes, "embedding_content_md5": str, "source": str, }, pk="id", transform=True).schema) ``` Using |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/568/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816852402 | I_kwDOCGYnMM5sSvey | 569 | register_command plugin hook | simonw 9599 | closed | 0 | 3 | 2023-07-22T18:17:27Z | 2023-07-22T19:19:35Z | 2023-07-22T19:19:35Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646643450 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/569/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1816857105 | I_kwDOCGYnMM5sSwoR | 570 | `sqlite-utils install -e` option | simonw 9599 | closed | 0 | 0 | 2023-07-22T18:32:23Z | 2023-07-22T18:55:59Z | 2023-07-22T18:32:56Z | OWNER | As seen in LLM. Needed while working on: - #567 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/570/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1795219865 | I_kwDOCGYnMM5rAOGZ | 566 | `--no-headers` doesn't work on most formats | zellyn 33625 | open | 0 | 2 | 2023-07-09T03:43:36Z | 2023-07-09T04:13:35Z | NONE | Version 3.33
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/566/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1785360409 | I_kwDOCGYnMM5qanAZ | 563 | `--empty-null` option when importing CSV | simonw 9599 | closed | 0 | 1 | 2023-07-03T05:23:36Z | 2023-07-03T05:44:43Z | 2023-07-03T05:42:30Z | OWNER | CSV files with empty cells in (which come through as the empty string) are common and a bit gross. Having an option that means "and if it's an empty string store I brainstormed name options here https://chat.openai.com/share/c947b738-ee7d-419c-af90-bc84e90987da |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/563/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1784794489 | I_kwDOCGYnMM5qYc15 | 562 | Explore the intersection between sqlite-utils and dataclasses | simonw 9599 | open | 0 | 1 | 2023-07-02T19:23:08Z | 2023-07-02T19:26:39Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/llm/issues/65#issuecomment-1616742529 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/562/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1777548699 | I_kwDOCGYnMM5p8z2b | 561 | `--stop-after` option for `insert` and `upsert` commands | simonw 9599 | closed | 0 | 1 | 2023-06-27T18:44:15Z | 2023-06-27T18:50:09Z | 2023-06-27T18:50:08Z | OWNER | I found myself wanting to insert rows from a 849MB CSV file without processing the whole thing: https://huggingface.co/datasets/jerpint-org/HackAPrompt-Playground-Submissions/tree/main |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/561/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1773458985 | PR_kwDOCGYnMM5T2mMb | 560 | Use sqlean if available in environment | simonw 9599 | closed | 0 | 10 | 2023-06-25T19:48:48Z | 2023-06-26T08:21:00Z | 2023-06-25T23:25:51Z | OWNER | simonw/sqlite-utils/pulls/560 | Refs: - #559 :books: Documentation preview :books:: https://sqlite-utils--560.org.readthedocs.build/en/560/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/560/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
810618495 | MDU6SXNzdWU4MTA2MTg0OTU= | 235 | Extract columns cannot create foreign key relation: sqlite3.OperationalError: table sqlite_master may not be modified | kristomi 6913891 | closed | 0 | 18 | 2021-02-17T23:33:23Z | 2023-06-26T01:47:01Z | 2023-06-25T23:25:53Z | NONE | Thanks for what seems like a truly great suite of libraries. I wanted to try out Datasette, but never got more than half way through your YouTube video with the SF tree dataset. Whenever I try to extract a column, I get a I have tried googling the problem, but all I've found is that this might be a problem with the sqlite3 database running in defensive mode, but I definitely can't know for sure. Does the problem seem familiar to you? |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/235/reactions", "total_count": 3, "+1": 3, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1773450152 | I_kwDOCGYnMM5ptLOo | 559 | sqlean support | simonw 9599 | closed | 0 | 0 | 2023-06-25T19:27:26Z | 2023-06-25T23:25:53Z | 2023-06-25T23:25:53Z | OWNER | If sqlean is available, use that. Refs: - https://github.com/nalgeon/sqlean.py/issues/1#issuecomment-1605707788 This will provide a good workaround for: - #235 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/559/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1655860104 | I_kwDOCGYnMM5ismuI | 535 | rows: --transpose or psql extended view-like functionality | chapmanjacobd 7908073 | closed | 0 | 2 | 2023-04-05T15:37:33Z | 2023-06-15T08:39:49Z | 2023-06-14T22:05:28Z | CONTRIBUTOR | It would be nice if the rows subcommand had a flag, perhaps called In other words instead of this:
| track_id | title | song_id | release | artist_id | artist_mbid | artist_name | duration | artist_familiarity | artist_hotttnesss | year | track_7digitalid | shs_perf | shs_work | |--------------------|-------------------|--------------------|--------------------------------------|--------------------|--------------------------------------|------------------|------------|----------------------|---------------------|--------|--------------------|------------|------------| | TRMMMYQ128F932D901 | Silent Night | SOQMMHC12AB0180CB8 | Monster Ballads X-Mas | ARYZTJS1187B98C555 | 357ff05d-848a-44cf-b608-cb34b5701ae5 | Faster Pussy cat | 252.055 | 0.649822 | 0.394032 | 2003 | 7032331 | -1 | 0 | | TRMMMKD128F425225D | Tanssi vaan | SOVFVAK12A8C1350D9 | Karkuteillä | ARMVN3U1187FB3A1EB | 8d7ef530-a6fd-4f8f-b2e2-74aec765e0f9 | Karkkiautomaatti | 156.551 | 0.439604 | 0.356992 | 1995 | 1514808 | -1 | 0 | | TRMMMRX128F93187D9 | No One Could Ever | SOGTUKN12AB017F4F1 | Butter | ARGEKB01187FB50750 | 3d403d44-36ce-465c-ad43-ae877e65adc4 | Hudson Mohawke | 138.971 | 0.643681 | 0.437504 | 2006 | 6945353 | -1 | 0 | | TRMMMCH128F425532C | Si Vos Querés | SOBNYVR12A8C13558C | De Culo | ARNWYLR1187B9B2F9C | 12be7648-7094-495f-90e6-df4189d68615 | Yerba Brava | 145.058 | 0.448501 | 0.372349 | 2003 | 2168257 | -1 | 0 | | TRMMMWA128F426B589 | Tangle Of Aspens | SOHSBXH12A8C13B0DF | Rene Ablaze Presents Winter Sessions | AREQDTE1269FB37231 | | Der Mystic | 514.298 | 0 | 0 | 0 | 2264873 | -1 | 0 | The output would look something like this:
| track_id | |--------------------| | TRYYYVU12903CD01E3 | | TRYYYDJ128F9310A21 | | TRYYYMG128F4260ECA | | TRYYYJO128F426DA37 | | TRYYYUS12903CD2DF0 | | title | |-------------------------------------| | Fernweh feat. Sektion Kuchikäschtli | | Faraday | | Novemba | | Jago Chhadeo | | O Samba Da Vida | | song_id | |--------------------| | SOWXJXQ12AB0189F43 | | SOLXGOR12A81C21EB7 | | SOHODZI12A8C137BB3 | | SOXQYIQ12A8C137FBB | | SOTXAME12AB018F136 | | release | |---------------------------------| | So Oder So | | The Trance Collection Vol. 2 | | Dub_Connected: electronic music | | Naale Baba Lassi Pee Gya | | Pacha V.I.P. | | artist_id | |--------------------| | AR7PLM21187B990D08 | | ARCMCOK1187B9B1073 | | ARZ3R6M1187B9AF750 | | ART5FZD1187B9A7FCF | | AR7Z4J81187FB3FC59 | | artist_mbid | |--------------------------------------| | 3af2b07e-c91c-4160-9bda-f0b9e3144ed3 | | 4ac5f3de-c5ad-475e-ad50-41f1ef9dba20 | | 8b97e9c8-61f5-4615-9a96-276f24204e34 | | 2357c400-9109-42b6-b3fe-9e2d9f8e3872 | | 9d50cb20-7e42-45cc-b0dd-154c3e92a577 | | artist_name | |----------------| | Texta | | Elude | | Gabriel Le Mar | | Kuldeep Manak | | Kiko Navarro | | duration | |------------| | 295.079 | | 484.519 | | 553.038 | | 244.166 | | 217.443 | | artist_familiarity | |----------------------| | 0.552977 | | 0.403668 | | 0.556918 | | 0.4015 | | 0.528617 | | artist_hotttnesss | |---------------------| | 0.454869 | | 0.256935 | | 0.336914 | | 0.374866 | | 0.411595 | | year | |--------| | 2004 | | 0 | | 0 | | 0 | | 0 | | track_7digitalid | |--------------------| | 8486723 | | 5472456 | | 2219291 | | 1632096 | | 7522478 | | shs_perf | |------------| | -1 | | -1 | | -1 | | -1 | | -1 | | shs_work | |------------| | 0 | | 0 | | 0 | | 0 | | 0 | |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/535/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1581090327 | I_kwDOCGYnMM5ePYYX | 529 | Microsoft line endings | chapmanjacobd 7908073 | closed | 0 | 1 | 2023-02-12T02:20:48Z | 2023-06-14T23:12:12Z | 2023-06-14T23:11:47Z | CONTRIBUTOR | sqlite-utils prints It has tripped me up a few times when piping the output of sqlite-utils to other programs:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/529/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1383646615 | I_kwDOCGYnMM5SeMWX | 491 | Ability to merge databases and tables | sgraaf 8904453 | open | 0 | 7 | 2022-09-23T11:10:55Z | 2023-06-14T22:14:24Z | NONE | Hi! Let me firstly say that I am a big fan of your work -- I follow your tweets and blog posts with great interest 😄. Now onto the matter at hand: I think it would be great if This could look something like this:
I imagine this is rather straightforward if all databases involved in the merge contain differently named tables (i.e. no chance of conflicts), but things get slightly more complicated if two or more of the databases to be merged contain tables with the same name. Not only do you have to "do something" with the primary key(s), but these tables could also simply have different schemas (and therefore be incompatible for concatenation to begin with). Anyhow, I would love your thoughts on this, and, if you are open to it, work together on the design and implementation! |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/491/reactions", "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1733198948 | I_kwDOCGYnMM5nToRk | 555 | Filter table by a large bunch of ids | redraw 10843208 | open | 0 | 1 | 2023-05-31T00:29:51Z | 2023-06-14T22:01:57Z | NONE | Hi! this might be a question related to both SQLite & sqlite-utils, and you might be more experienced with them. I have a large bunch of ids, and I'm wondering which is the best way to query them in terms of performance, and simplicity if possible. The naive approach would be something like Another approach might be creating a temp table, or in-memory db table, insert all ids in that table and then join with the target one. I failed to attach an in-memory db both using sqlite-utils, and plain sql's execute(), so my closest approach is something like,
That kinda worked, I couldn't find an option in sqlite-utils's |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/555/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1740150327 | I_kwDOCGYnMM5nuJY3 | 557 | Aliased ROWID option for tables created from alter=True commands | chapmanjacobd 7908073 | closed | 0 | 2 | 2023-06-04T05:29:28Z | 2023-06-14T06:09:21Z | 2023-06-05T19:26:26Z | CONTRIBUTOR |
ROWID should never be used with foreign keys but the simple act of aliasing rowid to id (which is what happens when one does It would be convenient if there were more options to use a string column (eg. filepath) as the PK, and be able to use it during upserts, but when creating a foreign key, to create an integer column which aliases rowid I made an attempt to switch to integer primary keys here but it is not going well... In my usecase the path column is a business key. Yes, it should be as simple as including the https://github.com/chapmanjacobd/library/actions/runs/5173602136/jobs/9319024777 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/557/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1740026046 | I_kwDOCGYnMM5ntrC- | 556 | Support storing incrementally piped values | mcint 601708 | open | 0 | 1 | 2023-06-04T00:45:23Z | 2023-06-04T01:21:15Z | CONTRIBUTOR | I'm trying to use sqlite-utils to data generated incrementally. There are a few aspects of this that I don't currently know how to handle. I would like an option to apply writes incrementally, line-by-line as they are received. I would like an option to echo incremental progress. And, it would be nice to have In particular, I'm using CoreLocationCLI -w -j to generate, newline-delimited JSON. One variant of the command
It looks like I can get what I want with:
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/556/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1720096994 | I_kwDOCGYnMM5mhpji | 554 | `IndexError` when doing `.insert(..., pk='id')` after `insert_all` | xavdid 1231935 | open | 0 | 1 | 2023-05-22T17:13:02Z | 2023-05-22T17:18:33Z | NONE | I believe this is related to https://github.com/simonw/sqlite-utils/issues/98. When ```py from sqlite_utils import Database def test_pk_for_insert(fresh_db): user = {"id": "abc", "name": "david"}
if name == "main": db = Database("bug.db") if db["users"].exists(): raise ValueError( "bug only shows on a new database - remove bug.db before running the script" ) test_pk_for_insert(db) ``` The error is:
The issue is in this block: relevant locals are:
What's most interesting is the comment |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/554/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1718612569 | I_kwDOCGYnMM5mb_JZ | 552 | Document how to setup shell auto-completion | simonw 9599 | closed | 0 | 1 | 2023-05-21T19:20:41Z | 2023-05-21T21:05:16Z | 2023-05-21T21:03:40Z | OWNER | https://click.palletsprojects.com/en/8.1.x/shell-completion/ This works for
This will probably work for
Need to add this to the installation docs here: https://sqlite-utils.datasette.io/en/stable/installation.html - along with the pattern for adding that to |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/552/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1718607907 | I_kwDOCGYnMM5mb-Aj | 551 | Make as many examples in the CLI docs as possible copy-and-pastable | simonw 9599 | closed | 0 | 6 | 2023-05-21T19:04:10Z | 2023-05-21T21:04:04Z | 2023-05-21T20:57:24Z | OWNER | e.g. in this section: https://sqlite-utils.datasette.io/en/stable/cli.html#running-queries-directly-against-csv-or-json The little copy button will also copy the |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/551/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1718635018 | PR_kwDOCGYnMM5Q9lY4 | 553 | Reformatted CLI examples in docs | simonw 9599 | closed | 0 | 2 | 2023-05-21T20:44:34Z | 2023-05-21T20:57:27Z | 2023-05-21T20:57:23Z | OWNER | simonw/sqlite-utils/pulls/553 | Refs: - #551 :books: Documentation preview :books:: https://sqlite-utils--553.org.readthedocs.build/en/553/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/553/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1718517882 | I_kwDOCGYnMM5mboB6 | 545 | Try out Trogon for a tui interface | simonw 9599 | closed | 0 | 6 | 2023-05-21T14:08:25Z | 2023-05-21T19:33:13Z | 2023-05-21T18:41:58Z | OWNER | sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/545/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
1718595700 | I_kwDOCGYnMM5mb7B0 | 550 | AttributeError: 'EntryPoints' object has no attribute 'get' for flake8 on Python 3.7 | simonw 9599 | closed | 0 | 3 | 2023-05-21T18:24:39Z | 2023-05-21T18:42:25Z | 2023-05-21T18:41:58Z | OWNER | https://github.com/simonw/sqlite-utils/actions/runs/5039064797/jobs/9036965488
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/550/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1718586377 | PR_kwDOCGYnMM5Q9cAv | 549 | TUI powered by Trogon | simonw 9599 | closed | 0 | 3 | 2023-05-21T17:55:42Z | 2023-05-21T18:42:00Z | 2023-05-21T18:41:56Z | OWNER | simonw/sqlite-utils/pulls/549 | Refs: - #545 :books: Documentation preview :books:: https://sqlite-utils--549.org.readthedocs.build/en/549/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/549/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1718576761 | I_kwDOCGYnMM5mb2Z5 | 548 | analyze-tables should validate provide --column names | simonw 9599 | closed | 0 | 1 | 2023-05-21T17:20:24Z | 2023-05-21T17:35:52Z | 2023-05-21T17:35:52Z | OWNER | Noticed this while testing: - #547 If you pass a non-existent column to |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/548/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1718572201 | I_kwDOCGYnMM5mb1Sp | 547 | No need to show common values if everything is null | simonw 9599 | closed | 0 | 1 | 2023-05-21T17:05:07Z | 2023-05-21T17:19:21Z | 2023-05-21T17:19:21Z | OWNER | Noticed this: ``` % sqlite-utils analyze-tables content.db repos -c delete_branch_on_merge --common-limit 20 --no-least repos.delete_branch_on_merge: (1/1) Total rows: 158 Null rows: 158 Blank rows: 0 Distinct values: 0 Most common: 158: None ``` The |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/547/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1718515590 | I_kwDOCGYnMM5mbneG | 544 | New options for analyze-tables --common-limit --no-most and --no-least | simonw 9599 | closed | 0 | 2 | 2023-05-21T14:03:19Z | 2023-05-21T17:03:06Z | 2023-05-21T16:19:31Z | OWNER | The "least common" section is frequently uninteresting, especially for huge tables with a large number of repeated-once values.
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/544/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1718550688 | PR_kwDOCGYnMM5Q9VH0 | 546 | Analyze tables options: --common-limit, --no-most, --no-least | simonw 9599 | closed | 0 | 2 | 2023-05-21T15:54:39Z | 2023-05-21T16:19:30Z | 2023-05-21T16:19:30Z | OWNER | simonw/sqlite-utils/pulls/546 | Refs #544
|
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/546/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1124731464 | I_kwDOCGYnMM5DCgpI | 399 | Make it easier to insert geometries, with documentation and maybe code | simonw 9599 | open | 0 | 25 | 2022-02-05T00:11:26Z | 2023-05-16T03:11:52Z | OWNER | In playing with the new SpatiaLite helpers from #385 I noticed that actually populating geometry columns is still a little bit tricky. Here's what I ended up doing: ```python import httpx, sqlite_utils db = sqlite_utils.Database("/tmp/spatial.db") attractions = httpx.get("https://latest.datasette.io/fixtures/roadside_attractions.json?_shape=array").json() db["attractions"].insert_all(attractions, pk="pk") Schema of that table is now:CREATE TABLE [attractions] ([pk] INTEGER PRIMARY KEY,[name] TEXT,[address] TEXT,[latitude] FLOAT,[longitude] FLOAT)db.init_spatialite() db["attractions"].add_geometry_column("point", "POINT") db.execute("""
update attractions set point = GeomFromText(
'POINT(' || longitude || ' ' || latitude || ')', 4326
)
""")
It would be good to both document this in more detail, but ideally also to come up with a more obvious pattern for inserting common types of spatial data. Also related: - #398 - #79 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/399/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1578790070 | I_kwDOCGYnMM5eGmy2 | 527 | `Table.convert()` skips falsey values | mcarpenter 167893 | closed | 0 | 5 | 2023-02-10T00:00:52Z | 2023-05-09T21:15:05Z | 2023-05-08T21:03:24Z | CONTRIBUTOR | SummaryBy design, ExampleIncrement a column of integers by one ``` python from sqlite_utils import Database db = Database(memory=True) table = db['table'] col = 'x' table.insert_all([{col: 0}, {col:1}]) print(table.get(1)) # 0 print(table.get(2)) # 1 print() table.convert(col, lambda x: x+1) print(table.get(1)) # got 0, expected 1 ⚠⚠⚠ print(table.get(2)) # got 2, expected 2 ``` Another example might be, say, transforming cells containing empty string to DiscussionThis was, I think, a pragmatic choice so that consumers can skip writing guard clauses for these falsey values (particularly from the CLI). But this surprising undocumented behavior can lead to incorrect data. I don't think this is a good trade-off between convenience and correctness. In the absence of this convenience users will either have to write guard clauses into their conversion expressions (or adapt the called function to do the same), so:
Such a change will certainly inconvenience some existing consumers; there will be some breakage. But I think this is worth it to avoid quietly not converting some values by default, which can lead to quietly bad data. I have a PR that I will attach, please take a look and see what you think. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/527/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1665200812 | PR_kwDOCGYnMM5OKveS | 537 | Support self-referencing FKs in `Table.create` | numist 544011 | closed | 0 | 3 | 2023-04-12T20:26:59Z | 2023-05-08T22:45:33Z | 2023-05-08T21:10:01Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/537 | :books: Documentation preview :books:: https://sqlite-utils--537.org.readthedocs.build/en/537/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/537/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1701018909 | I_kwDOCGYnMM5lY30d | 543 | Tests broken on Windows due to new convert() lambda names | simonw 9599 | closed | 0 | 0 | 2023-05-08T22:11:29Z | 2023-05-08T22:19:04Z | 2023-05-08T22:19:04Z | OWNER | https://github.com/simonw/sqlite-utils/actions/runs/4920084038/jobs/8788501314
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/543/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1516644980 | I_kwDOCGYnMM5aZip0 | 520 | rows_from_file() raises confusing error if file-like object is not in binary mode | simonw 9599 | closed | 0 | 3 | 2023-01-02T19:00:14Z | 2023-05-08T22:08:07Z | 2023-05-08T22:08:07Z | OWNER | I got this error:
@cli.command()
@click.argument(
"db_path",
type=click.Path(file_okay=True, dir_okay=False, allow_dash=False),
)
@click.option(
"-i",
"--input",
type=click.File("r"),
default="-",
)
def embeddings(db_path, input):
"Store embeddings for one or more text documents"
click.echo("Here is some output")
db = sqlite_utils.Database(db_path)
rows, _ = rows_from_file(input)
print(list(rows))
This should either be called out in the documentation or |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/520/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1279144769 | I_kwDOCGYnMM5MPjNB | 448 | Reading rows from a file => AttributeError: '_io.StringIO' object has no attribute 'readinto' | mungewell 236907 | closed | 0 | 5 | 2022-06-21T21:48:27Z | 2023-05-08T22:01:00Z | 2023-05-08T22:01:00Z | NONE | Attempting to run the example given here (without extra bracket ;-): https://sqlite-utils.datasette.io/en/stable/python-api.html#reading-rows-from-a-file ``` from sqlite_utils.utils import rows_from_file import io rows, format = rows_from_file(io.StringIO("id,name\n1,Cleo")) print(list(rows), format) Outputs [{'id': '1', 'name': 'Cleo'}] Format.CSV``` Gives error ```
I am running Python on Windows. ```
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/448/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1575131737 | I_kwDOCGYnMM5d4ppZ | 525 | Repeated calls to `Table.convert()` fail | mcarpenter 167893 | closed | 0 | 4 | 2023-02-07T22:40:47Z | 2023-05-08T21:59:41Z | 2023-05-08T21:54:02Z | CONTRIBUTOR | SummaryWhen using the API, repeated calls to Example```python from sqlite_utils import Database db = Database(memory=True) table = db['table'] col = 'x' table.insert_all([{col: 1}]) print(table.get(1)) table.convert(col, lambda x: x*2) print(table.get(1)) def zeroize(x): return 0 zeroize = lambda x: 0zeroize.name = 'zeroize'table.convert(col, zeroize) print(table.get(1)) ``` Output:
ExplanationThis is some relevant documentation.
There's a mismatch between the comments and the code: https://github.com/simonw/sqlite-utils/blob/fc221f9b62ed8624b1d2098e564f525c84497969/sqlite_utils/db.py#L404 but actually the existing function is returned/used instead (as the "registering custom sql functions" doc I linked above says too). Seems like this can be rectified to match the comment? Suggested fixI think there are four things:
1. The call to See also
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/525/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1576990618 | PR_kwDOCGYnMM5JkkED | 526 | Fix repeated calls to `Table.convert()` | mcarpenter 167893 | closed | 0 | 0 | 2023-02-09T00:14:49Z | 2023-05-08T21:56:05Z | 2023-05-08T21:53:58Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/526 | Fixes #525. All tests pass. There's perhaps a better way to name lambdas? There could be a collision if a caller passes a function with name like SQLite documentation is a little, ah, lite on function name specs. If there is a character that can be used in place of underscore in a SQLite function name that is not permitted in a Python function identifier then that could be a good way to prevent accidental collisions. (I tried dash, colon, dot, no joy). Otherwise, there is little chance of this happening and if it should happen the risk is mitigated by now throwing an exception in the case of a (name, arity) collision without :books: Documentation preview :books:: https://sqlite-utils--526.org.readthedocs.build/en/526/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/526/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1465194249 | I_kwDOCGYnMM5XVRcJ | 514 | upsert of new row with check constraints fails | cldellow 193185 | closed | 0 | 5 | 2022-11-26T16:12:23Z | 2023-05-08T21:50:52Z | 2023-05-08T21:50:51Z | NONE | (I originally opened this in https://github.com/simonw/datasette-insert/issues/20, but I see that that library depends on sqlite-utils) In the case of a new row, upsert first adds the row, specifying only its pkeys: https://github.com/simonw/sqlite-utils/blob/965ca0d5f5bffe06cc02cd7741344d1ddddf9d56/sqlite_utils/db.py#L2783-L2787 This means that a table with NON NULL (or other constraint) columns that aren't part of the pkey can't have new rows upserted. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/514/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1465194930 | PR_kwDOCGYnMM5DvZxa | 515 | upsert new rows with constraints, fixes #514 | cldellow 193185 | closed | 0 | 1 | 2022-11-26T16:15:21Z | 2023-05-08T21:27:11Z | 2023-05-08T21:27:10Z | NONE | simonw/sqlite-utils/pulls/515 | This fixes #514 by making the initial insert for upserts include all columns, so that new rows can be added to tables with non-pkey columns that have constraints. (aside: I'm not a python programmer. :books: Documentation preview :books:: https://sqlite-utils--515.org.readthedocs.build/en/515/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/515/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1044267332 | I_kwDOCGYnMM4-PkFE | 336 | sqlite-util tranform --column-order mangles columns of type "timestamp" | fgregg 536941 | closed | 0 | 1 | 2021-11-04T01:15:38Z | 2023-05-08T21:13:38Z | 2023-05-08T21:13:38Z | CONTRIBUTOR | Reproducible code below: ```bash
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/336/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1432377191 | I_kwDOCGYnMM5VYFdn | 509 | `sqlite-utils transform` breaks DEFAULT string values and STRFTIME() | kennysong 2199875 | closed | 0 | 0 | 2022-11-02T02:32:23Z | 2023-05-08T21:13:38Z | 2023-05-08T21:13:38Z | NONE | Very nice library! Our team found sqlite-utils through @simonw's comment on the "Simple declarative schema migration for SQLite" article, and we were excited to use it, but unfortunately Running
Here are steps to reproduce: Original database ``` $ sqlite3 test.db << EOF CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) EOF $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) ``` Modified database after sqlite-utils ``` $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-11-02 02:26:58.038 $ sqlite-utils transform test.db mytable --rename col1 renamedcol1 $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE "mytable" ( [renamedcol1] TEXT DEFAULT '''foo''', [col2] TEXT DEFAULT 'STRFTIME(''%Y-%m-%d %H:%M:%f'', ''NOW'')' ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-11-02 02:26:58.038 'foo'|STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') ``` (Related: #336) |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/509/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1505568103 | PR_kwDOCGYnMM5F609a | 519 | Fixes breaking DEFAULT values | rhoboro 13819005 | closed | 0 | 1 | 2022-12-21T01:27:52Z | 2023-05-08T21:13:37Z | 2023-05-08T21:13:37Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/519 | Fixes #509, Fixes #336 Thanks for the great library!
I fixed a bug that In #509 case, fixed here. ```shell $ sqlite3 test.db << EOF CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) EOF $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE mytable ( col1 TEXT DEFAULT 'foo', col2 TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-12-21 01:15:39.669 $ sqlite-utils transform test.db mytable --rename col1 renamedcol1 $ sqlite3 test.db "SELECT sql FROM sqlite_master WHERE name = 'mytable';" CREATE TABLE "mytable" ( [renamedcol1] TEXT DEFAULT 'foo', [col2] TEXT DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) # ← Non-String Value ) $ sqlite3 test.db "INSERT INTO mytable DEFAULT VALUES; SELECT * FROM mytable;" foo|2022-12-21 01:15:39.669 foo|2022-12-21 01:15:56.432 ``` And #336 case also fixed. Special values are described here.
```shell $ echo 'create table bar (baz text, created_at timestamp default CURRENT_TIMESTAMP)' | sqlite3 foo.db $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE bar (baz text, created_at timestamp default CURRENT_TIMESTAMP); sqlite> .exit $ sqlite-utils transform foo.db bar --column-order baz $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE IF NOT EXISTS "bar" ( [baz] TEXT, [created_at] FLOAT DEFAULT CURRENT_TIMESTAMP ); sqlite> .exit $ sqlite-utils transform foo.db bar --column-order baz $ sqlite3 foo.db SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .schema bar CREATE TABLE IF NOT EXISTS "bar" ( [baz] TEXT, [created_at] FLOAT DEFAULT CURRENT_TIMESTAMP # ← Non-String Value ); ``` :books: Documentation preview :books:: https://sqlite-utils--519.org.readthedocs.build/en/519/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/519/reactions", "total_count": 3, "+1": 3, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1578793661 | PR_kwDOCGYnMM5Jqn1u | 528 | Enable `Table.convert()` on falsey values | mcarpenter 167893 | closed | 0 | 1 | 2023-02-10T00:04:09Z | 2023-05-08T21:08:23Z | 2023-05-08T21:08:23Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/528 | Fixes #527 :books: Documentation preview :books:: https://sqlite-utils--528.org.readthedocs.build/en/528/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/528/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1700936245 | I_kwDOCGYnMM5lYjo1 | 542 | Remove `skip_false=True` and `--no-skip-false` in `sqlite-utils` 4.0 | simonw 9599 | open | 0 | 4.0 backwards incomatible changes 9374594 | 1 | 2023-05-08T21:04:28Z | 2023-05-08T21:07:41Z | OWNER | Following: - #527 The only reason I didn't remove fix this mis-feature entirely is that it represents a backwards incompatible change. I'll make that change in 4.0. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/542/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
|||||||
1595340692 | I_kwDOCGYnMM5fFveU | 530 | add ability to configure "on delete" and "on update" attributes of foreign keys: | fgregg 536941 | open | 0 | 2 | 2023-02-22T15:44:14Z | 2023-05-08T20:39:01Z | CONTRIBUTOR | sqlite supports these, and it would be quite nice to be able to add them with sqlite-utils. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/530/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1620254998 | I_kwDOCGYnMM5gkyEW | 532 | Show more information when JSON can't be imported with sqlite-utils insert | voltagex 83080728 | closed | 0 | 2 | 2023-03-12T06:41:44Z | 2023-05-08T20:32:16Z | 2023-05-08T20:32:02Z | NONE | I am currently trying to import the JSON export of my data from Discord, specifically
Please show more information as to why this is invalid, if possible. I am using version 3.30 with Python 3.10 on Windows 11. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/532/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1695428235 | I_kwDOCGYnMM5lDi6L | 538 | `table.upsert_all` fails to write rows when `not_null` is present | xavdid 1231935 | closed | 0 | 9 | 2023-05-04T07:30:38Z | 2023-05-08T20:06:35Z | 2023-05-08T19:27:02Z | NONE | I found an odd bug today, where calls to Repro Example```py from sqlite_utils import Database db = Database("upsert-test.db") db["comments"].upsert_all( [{"id": 1, "name": "david"}], pk="id", not_null=["name"], ) assert list(db["comments"].rows) # err! ``` The schema is correctly created:
But no rows are created. Removing either the Version Info
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/538/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1700840265 | I_kwDOCGYnMM5lYMNJ | 541 | Get tests to pass with `pytest -Werror` | simonw 9599 | open | 0 | 1 | 2023-05-08T19:57:23Z | 2023-05-08T19:59:35Z | OWNER | Inspired by: - #534 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/541/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1622640374 | I_kwDOCGYnMM5gt4b2 | 534 | ResourceWarning: unclosed file | djhenderson 1244826 | closed | 0 | 1 | 2023-03-14T03:02:18Z | 2023-05-08T19:56:29Z | 2023-05-08T19:56:29Z | NONE | Issuing either
exhibits a ResourceWarning indicating that the CSV file being loaded is not closed. sqlite-utils --version sqlite-utils, version 3.30 py --version Python 3.11.2 Windows Version 10.0.19045 Build 19045 SQLite version 3.41.0 2023-02-21 18:09:37 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/534/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1699184583 | I_kwDOCGYnMM5lR3_H | 540 | sphinx.builders.linkcheck build error | simonw 9599 | closed | 0 | 4 | 2023-05-07T18:37:09Z | 2023-05-08T04:56:13Z | 2023-05-07T18:42:36Z | OWNER | https://readthedocs.org/projects/sqlite-utils/builds/20512693/ ``` Running Sphinx v6.2.1 Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/sphinx/registry.py", line 442, in load_extension mod = import_module(extname) File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 783, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/sphinx/builders/linkcheck.py", line 20, in <module> from requests import Response File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/requests/init.py", line 43, in <module> import urllib3 File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/urllib3/init.py", line 38, in <module> raise ImportError( ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2n 7 Dec 2017. See: https://github.com/urllib3/urllib3/issues/2168 The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/sphinx/cmd/build.py", line 280, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/sphinx/application.py", line 225, in init self.setup_extension(extension) File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/sphinx/application.py", line 404, in setup_extension self.registry.load_extension(self, extname) File "/home/docs/checkouts/readthedocs.org/user_builds/sqlite-utils/envs/latest/lib/python3.8/site-packages/sphinx/registry.py", line 445, in load_extension raise ExtensionError(__('Could not import extension %s') % extname, sphinx.errors.ExtensionError: Could not import extension sphinx.builders.linkcheck (exception: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2n 7 Dec 2017. See: https://github.com/urllib3/urllib3/issues/2168) Extension error: Could not import extension sphinx.builders.linkcheck (exception: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2n 7 Dec 2017. See: https://github.com/urllib3/urllib3/issues/2168) ``` |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/540/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1699174055 | I_kwDOCGYnMM5lR1an | 539 | `--raw-lines` option, like `--raw` for multiple lines | simonw 9599 | closed | 0 | 4 | 2023-05-07T18:07:46Z | 2023-05-07T18:43:24Z | 2023-05-07T18:26:18Z | OWNER | I wanted to output newline-separated output of the first column of every row in the results - like |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/539/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1393202060 | I_kwDOCGYnMM5TCpOM | 496 | devrel/python api: Pylance type hinting | chapmanjacobd 7908073 | open | 0 | 4 | 2022-10-01T03:03:34Z | 2023-05-03T05:53:27Z | CONTRIBUTOR | Pylance is generally pretty good at figuring out stuff but For example:
I think this is because DEFAULT is an empty class? maybe a few small changes could be made to make the library more type-friendly The interim solution is of course to turn off type hints completely for the line
|
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/496/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
1203842656 | I_kwDOCGYnMM5HwS5g | 425 | `sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher | simonw 9599 | closed | 0 | 5 | 2022-04-13T22:16:53Z | 2023-04-15T20:14:58Z | 2022-04-13T22:48:57Z | OWNER | Got this error while investigating: - #421 Even though I was using the Originally posted by @simonw in https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098531354 |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/425/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1659525418 | PR_kwDOCGYnMM5N35VZ | 536 | Add paths for homebrew on Apple silicon | eyeseast 25778 | closed | 0 | 1 | 2023-04-08T13:34:21Z | 2023-04-13T01:44:43Z | 2023-04-13T01:44:43Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/536 | Does what it says and nothing else. This is the same set of paths as Datasette uses. :books: Documentation preview :books:: https://sqlite-utils--536.org.readthedocs.build/en/536/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/536/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
1620164673 | PR_kwDOCGYnMM5L08O8 | 531 | Add paths for homebrew on Apple silicon | eyeseast 25778 | closed | 0 | 4 | 2023-03-11T22:27:52Z | 2023-04-09T01:49:44Z | 2023-04-09T01:49:43Z | CONTRIBUTOR | simonw/sqlite-utils/pulls/531 | This also passes in the extension path when specified in GIS methods. Wherever we know an extension path, we use :books: Documentation preview :books:: https://sqlite-utils--531.org.readthedocs.build/en/531/ |
sqlite-utils 140912432 | pull | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/531/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
907795562 | MDU6SXNzdWU5MDc3OTU1NjI= | 265 | Using enable_fts before search term | prabhur 36287 | open | 0 | 1 | 2021-06-01T01:43:34Z | 2023-04-01T17:27:18Z | NONE | Many thanks for the sqlite-utils suite of utilities. Has made my life much much easier. I used this to create a table and enable FTS. All works fine. The datasette utility detects FTS and shows a text box. Searching for a term using that interface works well. However, when I start to use features by following https://www.sqlite.org/fts5.html section "3. Full-text Query Syntax" I seem to run into issues that I suspect is due to As an example, if i search for the term Similarly, when I try to restrict the search to a single column in FTS using a spec like
Any ideas why? How can I get the benefits of both escaping as well as utilizing different facets of providing / controlling search terms? Thanks. |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/265/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
702386948 | MDU6SXNzdWU3MDIzODY5NDg= | 159 | .delete_where() does not auto-commit (unlike .insert() or .upsert()) | spdkils 11712349 | open | 0 | 9 | 2020-09-16T01:55:52Z | 2023-04-01T17:21:05Z | NONE | When you use the delete_where() function on a table, it never commits.... Is that intentional? |
sqlite-utils 140912432 | issue | { "url": "https://api.github.com/repos/simonw/sqlite-utils/issues/159/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issues] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [state] TEXT, [locked] INTEGER, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [comments] INTEGER, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [author_association] TEXT, [pull_request] TEXT, [body] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [type] TEXT , [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT); CREATE INDEX [idx_issues_repo] ON [issues] ([repo]); CREATE INDEX [idx_issues_milestone] ON [issues] ([milestone]); CREATE INDEX [idx_issues_assignee] ON [issues] ([assignee]); CREATE INDEX [idx_issues_user] ON [issues] ([user]);