samuelcolvin commented on issue #11979: URL: https://github.com/apache/datafusion/issues/11979#issuecomment-2292143867
> I like the idea to have a cli frontend that is query engine agnostic (datafusion, duckdb), table agnostic (iceberg, delta), file agnostic (parquet, lance), and even more. Surely this should just be a CLI that speaks arrow flight SQL? I've tried to persuade ClickHouse to adopt arrow flight SQL to get around their woeful Python client. That sounds interesting, but I agree with @alamb that that's a different question. --- I like the broad idea here, while I like `datafusion-cli`, it definitely feels incomplete. Where I disagree (I think) with @alamb is around what it lacks — my main problem with `datafusion-cli` is the "UI" — all the small parts of the best CLIs which make the difference: * syntax highlighting (like duckdb) * good multiline vs single line support (like pgcli) * good error summaries e.g. point are the part of the statement that's wrong (like ipython) * pretty tables (like duckdb or rich, not "ugly" ascii dashes) * convienient CSV and JSON export (like duckdb) — maybe datafusion-cli already does this, I haven't tried * convient way to display rows as "details" when they're too long to show as tables (like clickhouse-cli) * proper terminal interface for horizontal scrolling (I think rich/textual has good support for this) * good introspection shortchuts (like pgcli) - e.g. `\d` or `\dt` * support for running multiple queries from a file (like psql I think) * (minor) good support for timing queries, on by default * JSON query support, I guess since Rust has a poor story when it comes to dynamic linking, just bundling `datafusion-functions-json` would be good enough There's one more thing that I've wanted from a database CLI many times and nothing (AFAIK) supports: * Plotting right from the CLI - I guess the obvious solution is terminal ploting [like this](https://github.com/JuliaPlots/UnicodePlots.jl), you could could also imagine a plot command opening a plot in a webbrowser for easier interaction Anyway, that's my wish list, as you might guess I've thought about this a fair bit! --- One last thing I'll say — virtually all of the above features would be independent of the query engine being used, so there is a good argument to build one great CLI user experience (or let someone else build it) and make it pluggable into any query engine that speaks Arrow Flight SQL, whether that be over a network, or just as an API within a single binary or between dynamically linked libaries. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org