mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-09-09 18:14:09 +02:00
sqlite-utils rows --limit and --offset options, closes #381
This commit is contained in:
parent
1d44b0cc27
commit
324ebc3130
4 changed files with 30 additions and 1 deletions
|
|
@ -585,6 +585,8 @@ See :ref:`cli_rows`.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-c, --column TEXT Columns to return
|
-c, --column TEXT Columns to return
|
||||||
|
--limit INTEGER Number of rows to return - defaults to everything
|
||||||
|
--offset INTEGER SQL offset to use
|
||||||
--nl Output newline-delimited JSON
|
--nl Output newline-delimited JSON
|
||||||
--arrays Output rows as arrays instead of objects
|
--arrays Output rows as arrays instead of objects
|
||||||
--csv Output CSV
|
--csv Output CSV
|
||||||
|
|
|
||||||
|
|
@ -449,6 +449,8 @@ You can use the ``-c`` option to specify a subset of columns to return::
|
||||||
[{"age": 4, "name": "Cleo"},
|
[{"age": 4, "name": "Cleo"},
|
||||||
{"age": 2, "name": "Pancakes"}]
|
{"age": 2, "name": "Pancakes"}]
|
||||||
|
|
||||||
|
Use ``--limit N`` to only return the first ``N`` rows. Use ``--offset N`` to return rows starting from the specified offset.
|
||||||
|
|
||||||
.. _cli_tables:
|
.. _cli_tables:
|
||||||
|
|
||||||
Listing tables
|
Listing tables
|
||||||
|
|
|
||||||
|
|
@ -1723,6 +1723,16 @@ def search(
|
||||||
)
|
)
|
||||||
@click.argument("dbtable")
|
@click.argument("dbtable")
|
||||||
@click.option("-c", "--column", type=str, multiple=True, help="Columns to return")
|
@click.option("-c", "--column", type=str, multiple=True, help="Columns to return")
|
||||||
|
@click.option(
|
||||||
|
"--limit",
|
||||||
|
type=int,
|
||||||
|
help="Number of rows to return - defaults to everything",
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--offset",
|
||||||
|
type=int,
|
||||||
|
help="SQL offset to use",
|
||||||
|
)
|
||||||
@output_options
|
@output_options
|
||||||
@load_extension_option
|
@load_extension_option
|
||||||
@click.pass_context
|
@click.pass_context
|
||||||
|
|
@ -1731,6 +1741,8 @@ def rows(
|
||||||
path,
|
path,
|
||||||
dbtable,
|
dbtable,
|
||||||
column,
|
column,
|
||||||
|
limit,
|
||||||
|
offset,
|
||||||
nl,
|
nl,
|
||||||
arrays,
|
arrays,
|
||||||
csv,
|
csv,
|
||||||
|
|
@ -1745,10 +1757,15 @@ def rows(
|
||||||
columns = "*"
|
columns = "*"
|
||||||
if column:
|
if column:
|
||||||
columns = ", ".join("[{}]".format(c) for c in column)
|
columns = ", ".join("[{}]".format(c) for c in column)
|
||||||
|
sql = "select {} from [{}]".format(columns, dbtable)
|
||||||
|
if limit:
|
||||||
|
sql += " limit {}".format(limit)
|
||||||
|
if offset:
|
||||||
|
sql += " offset {}".format(offset)
|
||||||
ctx.invoke(
|
ctx.invoke(
|
||||||
query,
|
query,
|
||||||
path=path,
|
path=path,
|
||||||
sql="select {} from [{}]".format(columns, dbtable),
|
sql=sql,
|
||||||
nl=nl,
|
nl=nl,
|
||||||
arrays=arrays,
|
arrays=arrays,
|
||||||
csv=csv,
|
csv=csv,
|
||||||
|
|
|
||||||
|
|
@ -851,6 +851,14 @@ def test_query_memory_does_not_create_file(tmpdir):
|
||||||
["--nl", "-c", "age", "-c", "name"],
|
["--nl", "-c", "age", "-c", "name"],
|
||||||
'{"age": 4, "name": "Cleo"}\n{"age": 2, "name": "Pancakes"}',
|
'{"age": 4, "name": "Cleo"}\n{"age": 2, "name": "Pancakes"}',
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
["-c", "name", "--limit", "1"],
|
||||||
|
'[{"name": "Cleo"}]',
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["-c", "name", "--limit", "1", "--offset", "1"],
|
||||||
|
'[{"name": "Pancakes"}]',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_rows(db_path, args, expected):
|
def test_rows(db_path, args, expected):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue