labels_id,labels_id_label,issues_id,issues_id_label 993377884,enhancement,449565204,Syntactic sugar for creating m2m records 993377884,enhancement,449818897,Additional Column Constraints? 993377884,enhancement,449848803,"Allow .insert(..., foreign_keys=()) to auto-detect table and primary key" 993377884,enhancement,455486286,Mechanism for turning nested JSON into foreign keys / many-to-many 993377884,enhancement,455496504,sqlite-utils create-table command 993377884,enhancement,462423839,index_foreign_keys / index-foreign-keys utilities 993377884,enhancement,462430920,table.update(...) method 993377884,enhancement,462817589,Support compound primary keys 993377884,enhancement,467864071,table.get(...) method 993377884,enhancement,470131537,sqlite-utils insert --tsv option 993377884,enhancement,470345929,"table.extract(...) method and ""sqlite-utils extract"" command" 993377884,enhancement,471628483,Utilities for building lookup tables 993377884,enhancement,471780443,extracts= option for insert/update/etc 993377884,enhancement,472115381,extracts= should support multiple-column extracts 993377884,enhancement,480961330,"Ability to list views, and to access db[""view_name""].rows / rows_where / etc" 993377884,enhancement,488293926,Support enabling FTS on views 993377884,enhancement,488338965,Ability to introspect triggers 993377884,enhancement,517241040,ensure_index() method 993377884,enhancement,531583658,Add support for porter stemming in FTS 993377884,enhancement,534507142,Feature request: enable extensions loading 993377884,enhancement,539204432,Implement ON DELETE and ON UPDATE actions for foreign keys 993377884,enhancement,549287310,order_by mechanism 993377884,enhancement,557825032,Ability to insert data that is transformed by a SQL function 993377884,enhancement,557842245,Helper methods for working with SpatiaLite 993377884,enhancement,557892819,on_create mechanism for after table creation 993377884,enhancement,558600274,"Remove .detect_column_types() from table, make it a documented API" 993377884,enhancement,559374410,"Make db[""table""].exists a documented API" 993377884,enhancement,571805300,"table.disable_fts() method and ""sqlite-utils disable-fts ..."" command" 993377884,enhancement,573578548,Ability to customize columns used by extracts= feature 993377884,enhancement,581795570,Support more string values for types in .add_column() 993377884,enhancement,593751293,"Adding a ""recreate"" flag to the `Database` constructor" 993377884,enhancement,601358649,"Mechanism for forcing column-type, over-riding auto-detection" 993377884,enhancement,610853393,"--schema option to ""sqlite-utils tables""" 993377884,enhancement,610853576,"""sqlite-utils views"" command" 993377884,enhancement,611216862,"create_view(..., ignore=True, replace=True) parameters" 993377884,enhancement,611222968,sqlite-utils create-view CLI command 993377884,enhancement,612658444,"table.create_index(..., ignore=True)" 993377884,enhancement,613755043,Support decimal.Decimal type 993377884,enhancement,615477131,sqlite-utils drop-table and drop-view commands 993377884,enhancement,616271236,"add_foreign_key(...., ignore=True)" 993377884,enhancement,621286870,Syntactic sugar for ATTACH DATABASE 993377884,enhancement,621989740,table.transform() method for advanced alter table 993377884,enhancement,637889964,Ability to execute insert/update statements with the CLI 993377884,enhancement,644161221,Support for compound (composite) foreign keys 993377884,enhancement,652700770,Ability to remove a foreign key 993377884,enhancement,652961907,Improved (and better documented) support for transactions 993377884,enhancement,665700495,CLI utility for inserting binary files into SQLite 993377884,enhancement,665701216,--raw option for outputting binary content 993377884,enhancement,665802405,sqlite-utils query should support named parameters 993377884,enhancement,665819048,Ability to insert binary data on the CLI using JSON 993377884,enhancement,666040390,Ability to insert files piped to insert-files stdin 993377884,enhancement,666639051,Support UUID and memoryview types 993377884,enhancement,668308777,"""insert-files --sqlar"" for creating SQLite archives" 993377884,enhancement,671130371,Support tokenize option for FTS 993377884,enhancement,675753042,sqlite-utils insert: options for column types 993377884,enhancement,675839512,Features for enabling and disabling WAL mode 993377884,enhancement,677839979,Release a sdist to PyPI 993377884,enhancement,683804172,--load-extension option for sqlite-utils query 993377884,enhancement,683805434,Code for finding SpatiaLite in the usual locations 993377884,enhancement,683812642,--load-extension=spatialite shortcut option 993377884,enhancement,683830416,--load-extension for other sqlite-utils commands 993377884,enhancement,684118950,extracts= doesn't configure foreign keys 993377884,enhancement,686978131,"insert_all(..., alter=True) should work for new columns introduced after the first 100 records" 993377884,enhancement,688670158,SQLITE_MAX_VARS maybe hard-coded too low 993377884,enhancement,695276328,More attractive indentation of created FTS table schema 993377884,enhancement,695359607,Feature for tracing SQL queries 993377884,enhancement,695360889,Tracer mechanism for seeing underlying SQL 993377884,enhancement,695376054,Turn on recursive_triggers by default 993377884,enhancement,695377804,table.optimize() should delete junk rows from *_fts_docsize 993377884,enhancement,696045581,rebuild-fts command and table.rebuild_fts() method 993377884,enhancement,697179806,sqlite-utils add-foreign-keys command 993377884,enhancement,705190723,"table.enable_fts(..., replace=True)" 993377884,enhancement,706017416,sqlite-utils transform sub-command 993377884,enhancement,706091046,Make .transform() a keyword arguments only function 993377884,enhancement,706757891,"Progress bar for ""sqlite-utils extract""" 993377884,enhancement,707427200,Improve performance of extract operations 993377884,enhancement,707478649,Progress bar for sqlite-utils insert 993377884,enhancement,708293114,sqlite-utils transform column order option 993377884,enhancement,708301810,Simplify .transform(drop_foreign_keys=) and sqlite-transform --drop-foreign-key 993377884,enhancement,709577625,sqlite-utils transform/insert --detect-types 993377884,enhancement,711649325,"Better handling of encodings other than utf-8 for ""sqlite-utils insert""" 993377884,enhancement,730693696,Progress bar for sqlite-utils insert command 993377884,enhancement,735532751,sqlite-utils search command 993377884,enhancement,735648209,--tsv output format option 993377884,enhancement,736520310,Introspect if table is FTS4 or FTS5 993377884,enhancement,737476423,Support order by relevance against FTS4 993377884,enhancement,737855731,"@db.register_function(..., replace=False) to avoid double-registering custom functions" 993377884,enhancement,738115165,sqlite-utils rows -c option 993377884,enhancement,738514367,sqlite-utils insert -f colname - for configuring full-text search 993377884,enhancement,743384829,changes to allow for compound foreign keys 993377884,enhancement,761915790,sqlite-utils should suggest --csv if JSON parsing fails 993377884,enhancement,763283616,sqlite-utils analyze-tables command 993377884,enhancement,763320133,sqlite-utils analyze-tables command and table.analyze_column() method 993377884,enhancement,777386465,table.triggers_dict introspection property 993377884,enhancement,777392020,Mechanism for maintaining cache of table counts using triggers 993377884,enhancement,777535402,Use _counts to speed up counts 993377884,enhancement,787900412,.m2m() should accept alter=True parameter 993377884,enhancement,788527932,--delimiter option for CSV import 993377884,enhancement,807437089,--no-headers option for CSV and TSV 993377884,enhancement,808008305,--sniff option for sniffing delimiters 993377884,enhancement,808028757,"limit=X, offset=Y parameters for more Python methods" 993377884,enhancement,811680502,--attach command line option for attaching extra databases 993377884,enhancement,815554385,"db[""my_table""].drop(ignore=True) parameter, plus sqlite-utils drop-table --ignore and drop-view --ignore" 993377884,enhancement,816526538,sqlite-utils extract could handle nested objects 993377884,enhancement,816560819,table.pks_and_rows_where() method returning primary keys along with the rows 993377884,enhancement,817989436,Async support 993377884,enhancement,831751367,Escaping FTS search strings 993377884,enhancement,841377702,"""sqlite-utils convert"" command to replace the separate ""sqlite-transform"" tool" 993377884,enhancement,894948100,Suggest the --alter option if a new column cannot be added 993377884,enhancement,906330187,Support creating descending order indexes 993377884,enhancement,906345899,`table.xindexes` using `PRAGMA index_xinfo(table)` 993377884,enhancement,906356331,`sqlite-utils indexes` command 993377884,enhancement,913135723,"Add some types, enforce with mypy" 993377884,enhancement,919181559,db.schema property and sqlite-utils schema command 993377884,enhancement,924990677,sqlite-utils memory should handle TSV and JSON in addition to CSV 993377884,enhancement,924991194,Add --encoding option to sqlite-utils memory 993377884,enhancement,925305186,Automatic type detection for CSV data 993377884,enhancement,925545468,sqlite-utils memory blah.json --schema 993377884,enhancement,944326512,"`table.search(..., quote=True)` parameter and `sqlite-utils search --quote` option" 993377884,enhancement,944846776,Option for importing CSV data using the SQLite .import mechanism 993377884,enhancement,952154468,Ability to see just specific table schemas with `sqlite-utils schema` 993377884,enhancement,957383814,insert-files should get a --silent option 993377884,enhancement,957731178,"`table.convert(..., where=)` and `sqlite-utils convert ... --where=`" 993377884,enhancement,963897111,"sqlite-utils insert errors should show SQL and parameters, if possible" 993377884,enhancement,964400482,`sqlite-utils insert --flatten` option to flatten nested JSON 993377884,enhancement,965210966,Type signatures for `.create_table()` and `.create_table_sql()` and `.create()` and `Table.__init__` 993377884,enhancement,976399638,[Enhancement] Please allow 'insert-files' to insert content as text. 993377884,enhancement,976405225,sqlite-utils memory --analyze option 993377884,enhancement,1005891028,Rethink approach to [ and ] in column names (currently throws error) 993377884,enhancement,1026794056,Mypy error: found module but no type hints or library stubs 993377884,enhancement,1028056713,`sqlite-utils memory --flatten` option to flatten nested JSON 993377884,enhancement,1053087862,"dict, list, tuple should all map to TEXT" 993377884,enhancement,1053122092,`table.lookup()` option to populate additional columns when creating a record 993377884,enhancement,1058196641,Extra options to `lookup()` which get passed to `insert()` 993377884,enhancement,1063388037,Provide function to generate hash_id from specified columns 993377884,enhancement,1067771698,Command for creating an empty database 993377884,enhancement,1071531082,A way of creating indexes on newly created tables 993377884,enhancement,1072435124,Optional caching mechanism for table.lookup() 993377884,enhancement,1072780607,Support `--import xml.etree.ElementTree` in `sqlite-utils convert` 993377884,enhancement,1072792507,`sqlite-utils insert --extract colname` 993377884,enhancement,1077102934,"Allow passing a file of code to ""sqlite-utils convert""" 993377884,enhancement,1077431957,`sqlite-utils insert --convert` option 993377884,enhancement,1082651698,Support for CHECK constraints 993377884,enhancement,1090798237,Use RETURNING if available to populate last_pk 993377884,enhancement,1094890366,--lines and --text and --convert and --import 993377884,enhancement,1094981339,Better error message if `--convert` code fails to return a dict 993377884,enhancement,1097129710,Idea: `suffix` and `stem` file columns 993377884,enhancement,1097251014,`sqlite-utils bulk` command 993377884,enhancement,1097436959,`--nl` mode should ignore blank lines 993377884,enhancement,1098309897,analyze=True parameter for some methods 993377884,enhancement,1098544628,CLI options for running ANALYZE 993377884,enhancement,1099584685,`sqlite-utils rows` options `--limit` and `--offset` 993377884,enhancement,1099585611,`--where` option for `sqlite-rows` 993377884,enhancement,1099586786,Add documentation page with the output of `--help` 993377884,enhancement,1114638930,`sqlite-utils bulk` progress bar 993377884,enhancement,1114640101,`sqlite-utils bulk --batch-size` option 993377884,enhancement,1123903919,Support IF NOT EXISTS for table creation 993377884,enhancement,1124237013,Add SpatiaLite helpers to CLI 993377884,enhancement,1125077063,`sqlite-utils create-table` ... `--if-not-exists` 993377884,enhancement,1125297737,Advanced class-based `conversions=` mechanism 993377884,enhancement,1128139375,"`Database(memory_name=""name"")` constructor argument" 993377884,enhancement,1128466114,Creating tables with custom datatypes 993377884,enhancement,1138948786,Add SpatiaLite helpers to CLI 993377884,enhancement,1149661489,`with db:` for transactions 993377884,enhancement,1160034488,Support for generated columns 993377884,enhancement,1173023272,Options for how `r.parsedate()` should handle invalid dates 993377884,enhancement,1227571375,Allow making m2m relation of a table to itself 993377884,enhancement,1236693079,"Support `rows_where()`, `delete_where()` etc for attached alias databases" 993377884,enhancement,1269886084,`maximize_csv_field_size_limit()` utility function 993377884,enhancement,1271426387,CSV `extras_key=` and `ignore_extras=` equivalents for CLI tool 993377884,enhancement,1277328147,Use Just to automate running tests and linters locally 993377884,enhancement,1279863844,Utilities for duplicating tables and creating a table with the results of a query 993377884,enhancement,1292060682,Add --ignore option to more commands 993377884,enhancement,1310243385,feature request: pivot command 993377884,enhancement,1320243134,Support custom names for registered functions 993377884,enhancement,1338001039,Link from documentation to source code 993377884,enhancement,1348169997,Mechanism for ensuring a table has all the columns 993377884,enhancement,1352931464,sqlite-utils rows --order option 993377884,enhancement,1352932038,Upgrade `--load-extension` to accept entrypoints like Datasette 993377884,enhancement,1352932716,sqlite-utils query --functions mechanism for registering extra functions 993377884,enhancement,1352946135,Reuse the locals/globals fix from --functions for other code accepting options 993377884,enhancement,1352953535,Support entrypoints for `--load-extension` 993377884,enhancement,1353074021,Add an option for specifying column names when inserting CSV data 993377884,enhancement,1353189941,table.default_values introspection property 993377884,enhancement,1353481513,`sqlite-utils tables data.db table1 table2` 993377884,enhancement,1359604075,"Idea: `sqlite-utils create-table tablename --sql ""select ...""`" 993377884,enhancement,1363765916,`sqlite-utils install` command 993377884,enhancement,1363766973,Expose convert recipes to `sqlite-utils --functions` 993377884,enhancement,1373224657,`sqlite-utils transform` should set empty strings to null when converting text columns to integer/float 993377884,enhancement,1374939463,Ability to load JSON records held in a file with a single top level key that is a list of objects 993377884,enhancement,1392690202,Support JSON values returned from .convert() functions 993377884,enhancement,1413610718,Turn --flatten into a documented utility function 993377884,enhancement,1423069384,"db.close() method, calling db.conn.close()" 993377884,enhancement,1429029604,Make `cursor.rowcount` accessible (wontfix) 993377884,enhancement,1479914599,Feature request: output number of ignored/replaced rows for insert command 993377884,enhancement,1595340692,"add ability to configure ""on delete"" and ""on update"" attributes of foreign keys:" 993377884,enhancement,1620254998,Show more information when JSON can't be imported with sqlite-utils insert 993377884,enhancement,1665200812,Support self-referencing FKs in `Table.create` 993377884,enhancement,1699174055,"`--raw-lines` option, like `--raw` for multiple lines" 993377884,enhancement,1700936245,Remove `skip_false=True` and `--no-skip-false` in `sqlite-utils` 4.0 993377884,enhancement,1718515590,New options for analyze-tables --common-limit --no-most and --no-least 993377884,enhancement,1718550688,"Analyze tables options: --common-limit, --no-most, --no-least" 993377884,enhancement,1718572201,No need to show common values if everything is null 993377884,enhancement,1718586377,TUI powered by Trogon 993377884,enhancement,1754174496,Ability to define unique columns when creating a table 993377884,enhancement,1773450152,sqlean support 993377884,enhancement,1777548699,`--stop-after` option for `insert` and `upsert` commands 993377884,enhancement,1785360409,`--empty-null` option when importing CSV 993377884,enhancement,1786258502,Table renaming: db.rename_table() and sqlite-utils rename-table 993377884,enhancement,1801394744,Plugin system 993377884,enhancement,1816851056,"table.create(..., replace=True)" 993377884,enhancement,1816852402,register_command plugin hook 993377884,enhancement,1816857105,`sqlite-utils install -e` option 993377884,enhancement,1816876211,`.transform(keep_table=...)` option 993377884,enhancement,1816918185,`prepare_connection()` plugin hook 993377884,enhancement,1816919568,Python API ability to opt-out of connection plugins 993377884,enhancement,1818838294,Plugin hook for adding new output formats 993377884,enhancement,1823160748,`sqlite-utils convert --pdb` option 993377884,enhancement,1855894222,CLI equivalents to `transform(add_foreign_keys=)` 993377884,enhancement,1856075668,.transform() fails to drop column if table is part of a view 993377884,enhancement,1879209560,Mechanism for de-registering registered SQL functions 993377884,enhancement,1879214365,Ability to tell if a Database is an in-memory one 993377884,enhancement,1891614971,Represent compound foreign keys in table.foreign_keys output 993377884,enhancement,2029161033,str and int as aliases for text and integer