Skip to content

Commit ac33e7f

Browse files
committed
Change rows {convert,query} to be lazy
1 parent a7bca78 commit ac33e7f

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

rows/cli.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ def print_(input_encoding, output_encoding, input_locale, output_locale,
318318
@click.option('--output-encoding')
319319
@click.option('--input-locale')
320320
@click.option('--output-locale')
321+
@click.option('--samples', default=1000)
321322
@click.option('--verify-ssl', default=True, type=bool)
322323
@click.option('--output')
323324
@click.argument('query', required=True)
@@ -341,26 +342,31 @@ def query(input_encoding, output_encoding, input_locale, output_locale,
341342
else:
342343
if input_locale is not None:
343344
with rows.locale_context(input_locale):
344-
table = import_from_source(source, DEFAULT_INPUT_ENCODING)
345+
table = import_from_source(source, DEFAULT_INPUT_ENCODING,
346+
lazy=True, samples=samples)
345347
else:
346-
table = import_from_source(source, DEFAULT_INPUT_ENCODING)
348+
table = import_from_source(source, DEFAULT_INPUT_ENCODING,
349+
lazy=True, samples=samples)
347350

348351
sqlite_connection = sqlite3.Connection(':memory:')
349352
rows.export_to_sqlite(table,
350353
sqlite_connection,
351354
table_name='table1')
352-
result = rows.import_from_sqlite(sqlite_connection, query=query)
355+
result = rows.import_from_sqlite(sqlite_connection, query=query,
356+
lazy=True, samples=samples)
353357

354358
else:
355359
# TODO: if all sources are SQLite we can also optimize the import
356360
if input_locale is not None:
357361
with rows.locale_context(input_locale):
358362
tables = [_import_table(source, encoding=input_encoding,
359-
verify_ssl=verify_ssl)
363+
verify_ssl=verify_ssl, lazy=True,
364+
samples=samples)
360365
for source in sources]
361366
else:
362367
tables = [_import_table(source, encoding=input_encoding,
363-
verify_ssl=verify_ssl)
368+
verify_ssl=verify_ssl, lazy=True,
369+
samples=samples)
364370
for source in sources]
365371

366372
sqlite_connection = sqlite3.Connection(':memory:')
@@ -369,7 +375,8 @@ def query(input_encoding, output_encoding, input_locale, output_locale,
369375
sqlite_connection,
370376
table_name='table{}'.format(index))
371377

372-
result = rows.import_from_sqlite(sqlite_connection, query=query)
378+
result = rows.import_from_sqlite(sqlite_connection, query=query,
379+
lazy=True, samples=samples)
373380

374381
# TODO: may use sys.stdout.encoding if output_file = '-'
375382
output_encoding = output_encoding or sys.stdout.encoding or \

0 commit comments

Comments
 (0)