Releases: nao1215/sqly
Release list
v1.0.0
sqly v1.0.0
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Bug fixes
- d58e473: fix: apply the writability check to ACH and Fedwire sources too (@nao1215)
- a562442: fix: exit 2 when the .save preflight refuses a script (@nao1215)
- ba673fb: fix: keep an infinity a real through a parquet export (@nao1215)
- d3ad878: fix: keep the source's text encoding when .save rewrites a file (@nao1215)
- a4ff239: fix: refuse a BLOB in a csv, tsv, or ltsv export (@nao1215)
- 8f66cb3: fix: refuse a zero-row ltsv export instead of writing an empty file (@nao1215)
- 99240dc: fix: refuse an excel value longer than a cell holds (@nao1215)
- 9f6aabd: fix: refuse an export of a header that could not be read back (@nao1215)
- 86b2d95: fix: refuse bytes --encoding cannot decode instead of substituting U+FFFD (@nao1215)
- 0ce7cf5: fix: report what a skipping import dropped, refuse an unwritable destination, and write NULL as a blank cell (@nao1215)
- 859da3b: fix: translate MySQL's operator family and BigQuery's SAFE. prefix (@nao1215)
Documentation
- ac12684: docs(filesql): scope the atomic import guarantee to what it can promise (@nao1215)
- 5201216: docs: stamp v1.0.0 (@nao1215)
Full changelog: v1.0.0-rc8...v1.0.0
Acknowledgments
sqly is a memorable project for me because it connected me with two GitHub Sponsors.
@adamdecaf, who works in the payments industry at Moov, inspired sqly's support for financial file formats such as ACH and Fedwire. @sho-hata, a colleague of mine, has actively used both filesql and sqly. Feedback from an actual user helped improve filesql's performance and led to many bug fixes in sqly.
I would like to take this opportunity to thank both of them for supporting the project as sponsors, as well as all contributors who have helped improve sqly through code, documentation, and other contributions.
v1.0.0-rc8
sqly v1.0.0-rc8
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Bug fixes
- 46f3e72: fix: import a file whose table name begins with query_result_ (@nao1215)
- 8d5c90e: fix: refuse a duplicate header the same way in every format (@nao1215)
- feaaa59: fix: refuse a text input that is not UTF-8, and say which flag reads it (@nao1215)
Documentation
- b33e656: docs: declare v1.0.0-rc8 the final release candidate (@nao1215)
- f775494: docs: say the check is on the bytes, not on the encoding (@nao1215)
- e2570cd: docs: say what a post-rc8 bug fix may and may not change (@nao1215)
Others
Full changelog: v1.0.0-rc7...v1.0.0-rc8
v1.0.0-rc7
sqly v1.0.0-rc7
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Breaking changes
- 8308bdf: feat(history)!: keep command history in a text file, not a database (@nao1215)
- 8e1d01a: feat(shell)!: remove .header, the subset of .describe (@nao1215)
- 989f110: feat(shell)!: stop .mode taking a format a screen cannot show (@nao1215)
Bug fixes
- b07e060: fix(history): close the file before renaming the trim over it (@nao1215)
- adf197d: fix(history): let one over-long line cost one entry, not the file (@nao1215)
Documentation
- 893f6d3: docs: describe a breaking change once, in its CHANGELOG entry (@nao1215)
- af3a935: docs: prepare the v1.0.0-rc7 release (@nao1215)
- 8c4fe3a: docs: say when an extension names the format, and pin it (@nao1215)
- b20d57b: docs: stop carrying prose about sqly's insides (@nao1215)
Others
- 11ad8b9: refactor: delete the functions the removals left with no caller (@nao1215)
- b123ab7: refactor: give history one interface instead of two identical ones (@nao1215)
- e94ee8a: refactor: leave the adapter the one job nothing else does (@nao1215)
- f1b3ba3: refactor: make an export format a function, not an interface (@nao1215)
- 02cb362: refactor: stop declaring a write path the session does not have (@nao1215)
- 8c4e29c: refactor: write an export once, to the path it was given (@nao1215)
Full changelog: v1.0.0-rc6...v1.0.0-rc7
v1.0.0-rc6
sqly v1.0.0-rc6
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Bug fixes
- b0e1a95: fix: bind the displayed text into a parquet column staged as text (@nao1215)
- 9cb16f4: fix: classify every malformed dot-command, not just the missing-argument form (@nao1215)
- b45a5c7: fix: exit 2 for a dot-command written wrong, whichever command it is (@nao1215)
- 1adbcbc: fix: keep float32 precision and fold case when detecting duplicate columns (@nao1215)
- 56203ae: fix: let the URL name a remote table, not the server (@nao1215)
- 2f11d25: fix: name standard input in a table-name collision (@nao1215)
- 54ade00: fix: name the write-back refusal, and stop encoding JSON twice to check it (@nao1215)
- 741ca70: fix: quote a lone empty field on stdout, not only in an export (@nao1215)
- 5bb2ba4: fix: refuse what an export cannot write, and classify what it could not (@nao1215)
- 4a75bae: fix: release the buffered row counts when a save has nothing to write (@nao1215)
- bdb1207: fix: take filesql v0.35.1 for the implicit-alias regression (@nao1215)
- d715009: fix: ten output, exit-code, and message defects found by running the binary (@nao1215)
Documentation
- 095484c: docs: prepare the v1.0.0-rc6 release (@nao1215)
- 785dd7e: docs: say the two print the same, not that they print blank (@nao1215)
- e2d9ce2: docs: say when to use AS rather than claiming every example does (@nao1215)
Full changelog: v1.0.0-rc5...v1.0.0-rc6
v1.0.0-rc5
sqly v1.0.0-rc5
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Features
Bug fixes
- 14da0f4: fix(e2e,docs): make the interrupt assertion real and the terminator wording exact (@nao1215)
- e86cc86: fix(export): bind parquet staging values instead of quoting them into SQL (@nao1215)
- 45cc4dd: fix(export): refuse an Excel value XLSX cannot carry instead of changing it (@nao1215)
- 4076257: fix(export): refuse the XML noncharacters too, and check column names (@nao1215)
- 47e25f3: fix(remote): redact only the schemes sqly downloads (@nao1215)
- 47d1023: fix(remote): stop printing back the password in a URL (@nao1215)
- f5c1a07: fix(shell): keep the session on Ctrl-C, end statements where SQL ends them (@nao1215)
- 1cdece5: fix(shell): parse a multi-line submission that opens with a dot command (@nao1215)
- 409fec7: fix: keep the last line of a result typed across two lines (@nao1215)
- 2e2047c: fix: stop the prompt from walking up the screen when an earlier line is edited (@nao1215)
Documentation
- f448a22: docs: prepare the v1.0.0-rc5 release (@nao1215)
- 6dd9cb1: docs: use the US spellings the checks expect (@nao1215)
Others
- a7809c1: Merge main into the credential-redaction branch (@nao1215)
- 49f1c54: refactor: name the stdin source with the constant that exists (@nao1215)
Full changelog: v1.0.0-rc4...v1.0.0-rc5
v1.0.0-rc4
sqly v1.0.0-rc4
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Bug fixes
- 09b70c1: fix(inspect): name a workbook the same way in both report fields (@nao1215)
- 084c23d: fix(shell): classify four failures off the SQL exit code (@nao1215)
- 191a432: fix(shell): decode the path a file URL is told to be replaced by (@nao1215)
- 4b937d1: fix(shell): make a failure say one thing, once, with a way forward (@nao1215)
- e54018a: fix(shell): stop judging SQL by the shell's quoting rules, and keep settings off stdout (@nao1215)
- ad8171d: fix: commit a .dump export with a rename instead of a truncating copy (@nao1215)
Documentation
- 80d1a33: docs(examples): make the cross-format join runnable from a clone (@nao1215)
- e633712: docs: fix subject-verb agreement in the infrastructure package comment (@nao1215)
- f25ef14: docs: name each dialect warning by the moment that triggers it (@nao1215)
- 99dd380: docs: name the run that says nothing about its dialect exactly (@nao1215)
- 717b0bc: docs: prepare the v1.0.0-rc4 release (@nao1215)
- 36ac228: docs: repair comments that lost their referents (@nao1215)
- 296e60c: docs: separate what code 2 and code 4 each cover (@nao1215)
- bd28ee5: docs: write down what sqly does and pin it to what it prints (@nao1215)
Others
- 4057c62: refactor: delete the code nothing reaches (@nao1215)
- 2d06ba2: refactor: name the sentinel PrintMode.String reports for an undeclared mode (@nao1215)
- b457877: refactor: read the directory once when completing a path (@nao1215)
- 0baa74f: refactor: scan SQL text in one place (@nao1215)
- 57b9c88: refactor: write each format name down once (@nao1215)
Full changelog: v1.0.0-rc3...v1.0.0-rc4
v1.0.0-rc3
sqly v1.0.0-rc3
Run SQL over CSV, TSV, LTSV, JSON, JSONL, Parquet, Excel, ACH, Fedwire, and
supported compressed inputs (.gz, .bz2, .xz, .zst, .z, .snappy, .s2, .lz4).
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Breaking changes
Bug fixes
Documentation
Full changelog: v1.0.0-rc2...v1.0.0-rc3
v1.0.0-rc2
sqly v1.0.0-rc2
Easily execute SQL against CSV/TSV/LTSV/JSON and Microsoft Excel™ with a shell.
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Breaking changes
- c1aed01: feat!: add --script-file, and make the docs verifiable (@nao1215)
- bb76953: feat!: classify failures with distinct exit codes (@nao1215)
- 77b6940: feat!: refuse an in-place save through a symlink unless asked (@nao1215)
Features
- 3b86341: feat: bound what a remote input may cost (@nao1215)
- 3bc4019: feat: import only the sheets a workbook shows, and separate the signal exit codes (@nao1215)
Bug fixes
- 235cef0: fix(ci): match the build commit tag as Hugo actually renders it (@nao1215)
- eea7660: fix: address review — contradictory Excel text, section boundaries, a dropped second signal (@nao1215)
- c2a1239: fix: address review — wrong input named, loose property pattern, doc drift (@nao1215)
- 0733138: fix: honor the proxy environment variables for remote inputs (@nao1215)
- 5a3a1c7: fix: keep Ctrl-C working when a blocking read has the run parked (@nao1215)
- 035ae1a: fix: make an import of several inputs one operation (@nao1215)
- d79d919: fix: store the --stdin-format value that was validated (@nao1215)
Documentation
- 99dcc1c: docs: prepare the v1.0.0-rc2 release (@nao1215)
- b274bc9: docs: rc2 is not the last candidate before v1.0.0 (@nao1215)
- 6a8ddf3: docs: say which version the documentation describes (@nao1215)
Full changelog: v1.0.0-rc1...v1.0.0-rc2
v1.0.0-rc1
sqly v1.0.0-rc1
Easily execute SQL against CSV/TSV/LTSV/JSON and Microsoft Excel™ with a shell.
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Breaking changes
- 663bd7a: refactor(cli)!: cut the v1.0.0 surface to what a script can rely on (@nao1215)
- d890092: refactor(cli)!: settle the v1.0.0 option surface (@nao1215)
Features
- b7c3b3f: feat(cli): streamline v1.0.0-rc1 command surface (@nao1215)
- 02a229f: feat(shell): report unread standard input instead of dropping it silently (@nao1215)
Bug fixes
- d6630c0: fix(cache): detach the import cache even when the run was cancelled (@nao1215)
- 87a4169: fix(cache): pin the cache to one connection and restore it atomically (@nao1215)
- cb5b219: fix(cli): preserve query types and stream pad validation (@nao1215)
- eb92d06: fix(cli): unify output format and harden pad imports (@nao1215)
- e4be8da: fix(import): make multi-file loads transactional (@nao1215)
- 054de50: fix(import): preserve dump metadata and atomic input order (@nao1215)
- ef2b2cf: fix(import): publish registries after atomic commit (@nao1215)
- d1b2039: fix(import): separate the commit from publishing registries (@nao1215)
- 982950e: fix(import): surface rollback failures (@nao1215)
- ae59af3: fix(json): render non-finite floats and binary blobs instead of failing or corrupting (@nao1215)
- 50b3273: fix(model): close the remaining ways to write through a public accessor (@nao1215)
- 5b4c6e6: fix(shell): give the source file its own baseline so both save destinations work (@nao1215)
- 1742eca: fix(shell): keep a destination whole when the fallback copy fails, and stop guessing table ownership (@nao1215)
- c830300: fix(shell): print affected-row counts before the files a save wrote (@nao1215)
- 6b919c0: fix(shell): rewrite the scratch path in a quoted error message too (@nao1215)
- 7036aa5: fix(shell): stage beside the file a symlinked destination names (@nao1215)
- 8cedc3d: fix(shell): write through a symlinked destination instead of replacing the link (@nao1215)
- 63ee298: fix(tx): stop rolling back a transaction that was already committed (@nao1215)
Performance
- 2f2d1d7: perf(shell): back up an --output destination only when the fallback copy will run (@nao1215)
Documentation
- 88542c4: docs(changelog): state the v1.0.0 surface and match the filesql version (@nao1215)
- e0d702a: docs(comments): describe what the import and write-back paths do now (@nao1215)
- 10b5c04: docs(demo): re-render the demo GIFs for the new option names (@nao1215)
- b777099: docs(help): say --sql-file takes SQL only (@nao1215)
- baa49f1: docs(readme): show output for each recipe and drop the star history and coverage treemap (@nao1215)
- d34dc6d: docs(site): describe the three jobs standard input can have (@nao1215)
- fcb005d: docs: document the cache, compare the output formats, and correct two claims (@nao1215)
- 47deed2: docs: drop the last mention of the removed --sheet flag from a test comment (@nao1215)
- c81ec97: docs: record the lifecycle fixes and move the benchmark to the website (@nao1215)
Others
- 9f5ad54: build(deps): use filesql v0.30.1 (@nao1215)
- 2cb8d88: build(deps): use filesql v0.30.3 (@nao1215)
- f4f60c1: build(deps): use filesql v0.30.4, and cover the cache from the CLI (@nao1215)
- b77057f: build: tidy filesql checksums (@nao1215)
- 068da22: refactor(cache): name each step of the cache restore (@nao1215)
- 4b6ac4d: refactor(cleanup): give every cleanup failure one rule (@nao1215)
- b00a68e: refactor(model): make a query cell one value, not three parallel slices (@nao1215)
- cae57db: refactor(model): stop handing out the table's own rows (@nao1215)
- f3ffbc7: refactor(shell): parse a script once into elements shared by validation and execution (@nao1215)
- 80ed404: refactor(shell): use the typed errors at their call sites and name the repeated flags (@nao1215)
- 04c8506: refactor(shell): write --output through the same staging steps as .save (@nao1215)
- 303251f: refactor(tx): keep rollback failures beside their cause (@nao1215)
Full changelog: v0.31.0...v1.0.0-rc1
v0.31.0
sqly v0.31.0
Easily execute SQL against CSV/TSV/LTSV/JSON and Microsoft Excel™ with a shell.
Install or upgrade, then see the grouped highlights below. Every artifact is
signed and ships with an SBOM and build provenance — see
Verifying release integrity.
Changelog
Features
Bug fixes
- 19f5627: fix(compare): compare cell values, not their rendered form (@nao1215)
- fa3ee20: fix(export): keep a one-column row whose only value is empty (@nao1215)
- 3358fb4: fix(import): name an unfetchable URL scheme whatever the OS error (@nao1215)
- 18e0f94: fix(report): give the text formats of --compare and --profile their detail (@nao1215)
- 73d4bec: fix: take filesql v0.27.0 so LTSV columns keep their order (@nao1215)
Documentation
- 18a33b5: docs(changelog): merge the windows and report entries (@nao1215)
- 14ffe59: docs(dialects): say why the four divergences stay (@nao1215)
- 4e8c2f5: docs: show that sqly reads and writes a pipe, and assert it (@nao1215)
Full changelog: v0.30.0...v0.31.0