mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 09:24:31 +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:
|
||||
-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
|
||||
--arrays Output rows as arrays instead of objects
|
||||
--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": 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:
|
||||
|
||||
Listing tables
|
||||
|
|
|
|||
|
|
@ -1723,6 +1723,16 @@ def search(
|
|||
)
|
||||
@click.argument("dbtable")
|
||||
@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
|
||||
@load_extension_option
|
||||
@click.pass_context
|
||||
|
|
@ -1731,6 +1741,8 @@ def rows(
|
|||
path,
|
||||
dbtable,
|
||||
column,
|
||||
limit,
|
||||
offset,
|
||||
nl,
|
||||
arrays,
|
||||
csv,
|
||||
|
|
@ -1745,10 +1757,15 @@ def rows(
|
|||
columns = "*"
|
||||
if 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(
|
||||
query,
|
||||
path=path,
|
||||
sql="select {} from [{}]".format(columns, dbtable),
|
||||
sql=sql,
|
||||
nl=nl,
|
||||
arrays=arrays,
|
||||
csv=csv,
|
||||
|
|
|
|||
|
|
@ -851,6 +851,14 @@ def test_query_memory_does_not_create_file(tmpdir):
|
|||
["--nl", "-c", "age", "-c", "name"],
|
||||
'{"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):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue