From 541fd713afc77cf3ecc19d3dc366ae5811122400 Mon Sep 17 00:00:00 2001 From: drizk1 Date: Fri, 12 Jul 2024 14:15:45 -0400 Subject: [PATCH] add connect md: --- NEWS.md | 1 + src/TidierDB.jl | 8 +++++++- src/docstrings.jl | 6 ++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/NEWS.md b/NEWS.md index a26d737..ec1cdb4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,7 @@ - Switches to DuckDB to 1.0 version - Adds support for `iceberg` tables via DuckDB to read iceberg paths in `db_table` when `iceberg = true` - Adds support for DuckDB's beta `delta_scan` to read delta paths in `db_table` when `delta = true` +- Adds `connect()` support for DuckDB MotherDuck ## v0.2.3 - 2024-07-07 - Adds direct path support for `db_table` when using DuckDB diff --git a/src/TidierDB.jl b/src/TidierDB.jl index b7c9e11..82f4f18 100644 --- a/src/TidierDB.jl +++ b/src/TidierDB.jl @@ -458,6 +458,12 @@ function connect(backend_type::Symbol, db_type::Symbol; access_key::String="", s return db end - +function connect(symbol, token::String) + if token == "md:" + return DBInterface.connect(DuckDB.DB, "md:") + else + return DBInterface.connect(DuckDB.DB, "md:$token") + end +end end diff --git a/src/docstrings.jl b/src/docstrings.jl index 15d522a..f143d92 100644 --- a/src/docstrings.jl +++ b/src/docstrings.jl @@ -987,13 +987,15 @@ This function establishes a database connection based on the specified backend a # Connect to Snowflake # conn = connect(:snowflake, "ac_id", "token", "Database_name", "Schema_name", "warehouse_name") # Connect to DuckDB -julia> db = connect(:duckdb) # connect to Google Cloud via DuckDB # google_db = connect(:duckdb, :gbq, access_key="string", secret_key="string") # Connect to AWS via DuckDB # aws_db = connect2(:duckdb, :aws, aws_access_key_id=get(ENV, "AWS_ACCESS_KEY_ID", "access_key"), aws_secret_access_key=get(ENV, "AWS_SECRET_ACCESS_KEY", "secret_access key"), aws_region=get(ENV, "AWS_DEFAULT_REGION", "us-east-1")) - +# Connect to MotherDuck +# connect(:duckdb, "token") for first connection, vs connect(:duckdb, "md:") for reconnection +julia> db = connect(:duckdb) DuckDB.Connection(":memory:") +``` """ const docstring_interpolate =