The partiql command-line tool.
moonx moonrockz/partiql --help
moonx moonrockz/partiql version
moonx moonrockz/partiql format query.sql # print PartiQL laid out at width 80
moonx moonrockz/partiql format --width 100 q.sql # another line width
moonx moonrockz/partiql format --compact q.sql # one line per statement
moonx moonrockz/partiql format --write *.sql # rewrite files in place
moonx moonrockz/partiql format -e 'select a from t'
cat query.sql | moonx moonrockz/partiql format # read stdin
moonx moonrockz/partiql check *.sql # report every parse error
moonx moonrockz/partiql parse -e 'select a from t' # print the syntax tree
moonx moonrockz/partiql query -e 'select value x * 2 from <<1, 2>> as x'
moonx moonrockz/partiql query --data t=rows.ion -e 'select a from t where b > 1'
moonx moonrockz/partiql query --env env.ion query.sql
cat rows.ion | moonx moonrockz/partiql query --data t=- query.sql# rows.ion contains two top-level structs, not a list.
printf '{a: 1}\n{a: 2}\n' > rows.ion
partiql query --data t=rows.ion -e 'SELECT VALUE r.a FROM t AS r'
# $bag::[1, 2]
partiql query --data t=rows.ion --each t -e 't.a'
# 1, then 2 as separate top-level results
partiql query --data t=rows.ion --output-format binary -e 't' > result.10n
cat result.10n | partiql query --data t=- -e 't'printf '$ion_schema_2_0 schema_header::{} type::{name: row, type: struct} schema_footer::{}' > rows.isl
partiql query --data t=rows.ion --data-schema t=rows.isl --schema-type row -e 't'import {
"moonrockz/partiql/cli",
}import { "moonrockz/expect" } for "test"test "embedded CLI query" {
let result = @cli.run(["query", "--compact", "-e", "1 + 2"])
@expect.expect((result.status, result.stdout, result.stderr)).to_equal((0, "3\n", ""))
}test "embedded CLI usage error" {
let result = @cli.run(["format", "--width", "invalid", "-e", "select 1"])
@expect.expect(result.status).to_equal(2)
}