csv-sql icon indicating copy to clipboard operation
csv-sql copied to clipboard

Batch mode

Open suhlig opened this issue 4 years ago • 1 comments

Thanks for this project; very useful.

I would be interested in running this in batch mode; i.e. specifying the query on stdin or in a file. I could then make csv-sql part of shell pipelines and run it in continuous integration.

Something like this syntax comes to mind:

$ echo '.export(results.csv) SELECT COUNT(*) from t;' | csvsql file.csv

Alternatively, reading the query from a file would also be useful:

$ echo '.export(results.csv) SELECT COUNT(*) from t;' > query.sql
$ csvsql file.csv --load-query-from query.sql

If --load-query-from would accept - as a symbol for stdin, the line would look like this:

$ echo '.export(results.csv) SELECT COUNT(*) from t;' | csvsql file.csv --load-query-from -

Personally, the first option (read query from stdin if it's not a TTY) would be my preference.

suhlig avatar Jun 20 '21 08:06 suhlig

I think what I'd go with is --query which takes a SQL string (not a path to a file). One can easily specify do csvsql file.csv --query $(cat foo.sql) then.

alex avatar Jun 21 '21 23:06 alex