DQL CLI enhancements: export formats, pager, import, delete-store, diagnostics + manual testing checklists - #3
Merged
Conversation
Split manualTesting.md (untracked) into two standalone, full-surface checklists — one per dataset. The retail-joins file centers on JOINs: index-free small-RHS joins, the 'join needs an index' error → ADVISE → apply flow (25 reserved customers, 24 Seattle inventory holes, per-store order counts), join aggregates, and the stock_value known issue. All Expect values verified live against freshly loaded default-scale stores.
Aaron LaBeau (biozal)
marked this pull request as ready for review
September 3, 2026 02:34
… flags - renderers: html, markdown, vertical, columns; terminal-width table fitting - pager (less/less, --no-pager, DITTOSH_NO_PAGER) - dql import (JSON array / NDJSON, upsert batches) and dql delete-store (-y, lock-aware) - dql exec flags: --time, --explain, --profile, --advise/--apply, -o/--out - advise: copy-pasteable apply-with line (interpolates the analyzed statement, shell-quoted) - params: -p/--param and --args (inline/-/@file) - release install script, docs, and unit/integration/e2e coverage All manually tested (see manualTesting.*.md).
Incomplete string escaping (js/incomplete-string-escaping): a data backslash (e.g. a Windows path, or \| before a pipe) could corrupt the GFM table. Escape \ first, then |, then newlines. Unit test pins the ordering.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A batch of manually-tested
dittosh dqlenhancements (2 commits, +3,215 lines), plus full manual testing checklists.Output formats & rendering
-o/--outfile export with format inference from extension (--formatoverrides); rejected for mutations/DDL and multi-statement batches$PAGER/lesson a TTY; opt out via--no-pagerorDITTOSH_NO_PAGERNew commands
dittosh dql import <file> <collection>— JSON array or NDJSON, upsert batches (ON ID CONFLICT DO UPDATE),--batch-size, generated UUIDs for docs without_iddittosh dql delete-store— removes the whole data directory; refuses without-y, lock-aware (exit 4), refuses non-store targetsDiagnostics (
dql execflags)--time—Time: N msfooter on stderr (per statement in batches; server elapsed/parse/plan breakdown with--profile)--explain,--profile,--advise/--apply/-yapply with:command with the analyzed statement shell-quoted inline-p/--param(repeatable) and--args(inline JSON,-stdin,@file)Manual testing checklists
manualTesting.retail.md(14 sections) andmanualTesting.retail-joins.md(17 sections) — full-surface, copy-pasteable checklists covering every feature above plus housekeeping commands, REPL, jq pipelines, and exit codes. The retail-joins file centers on the JOIN story: joins to large collections require indexes → ADVISE recommends them → apply → re-run (25 reserved customers, 24 inventory holes, per-store order counts).Supporting changes
scripts/install-release.sh— stamp token → release build → global install.gitignorefor build artifactsVerification
retailandretail-joinsstores (row counts, pager line counts 75,002/60,002, exact error texts, exit codes 0/1/2/4)Draft: checklists pending one full end-to-end pass against a release build.