-
-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sqlite-utils insert --extract colname
#352
Labels
Comments
Thought about this due to this issue, which should stay consistent with how the |
Rough prototype, seems to work:; diff --git a/sqlite_utils/cli.py b/sqlite_utils/cli.py
index 771d432..431b93e 100644
--- a/sqlite_utils/cli.py
+++ b/sqlite_utils/cli.py
@@ -867,6 +867,12 @@ def insert_upsert_options(*, require_pk=False):
),
load_extension_option,
click.option("--silent", is_flag=True, help="Do not show progress bar"),
+ click.option(
+ "--extract",
+ "extracts",
+ multiple=True,
+ help="Columns to extract to another table",
+ ),
)
):
fn = decorator(fn)
@@ -906,6 +912,7 @@ def insert_upsert_implementation(
load_extension=None,
silent=False,
bulk_sql=None,
+ extracts=None,
):
db = sqlite_utils.Database(path)
_load_extensions(db, load_extension)
@@ -1008,6 +1015,8 @@ def insert_upsert_implementation(
extra_kwargs["defaults"] = dict(default)
if upsert:
extra_kwargs["upsert"] = upsert
+ if extracts is not None:
+ extra_kwargs["extracts"] = extracts
# Apply {"$base64": true, ...} decoding, if needed
docs = (decode_base64_values(doc) for doc in docs)
@@ -1117,6 +1126,7 @@ def insert(
truncate,
not_null,
default,
+ extracts,
):
"""
Insert records from FILE into a table, creating the table if it
@@ -1174,6 +1184,7 @@ def insert(
silent=silent,
not_null=not_null,
default=default,
+ extracts=extracts,
)
except UnicodeDecodeError as ex:
raise click.ClickException(UNICODE_ERROR.format(ex))
@@ -1207,6 +1218,7 @@ def upsert(
analyze,
load_extension,
silent,
+ extracts,
):
"""
Upsert records based on their primary key. Works like 'insert' but if |
Manual test run with that prototype:
|
Ran into this bug again while writing tests for this: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is there a reason I've not added
--extract
as an option forsqlite-utils insert
next? There's aextracts=
option for the varioustable.insert()
etc methods - last line in this code block:sqlite-utils/sqlite_utils/db.py
Lines 2483 to 2495 in 213a0ff
The text was updated successfully, but these errors were encountered: