- support for reusing TidierDB queries inside other macros, including
@mutate
,@filter
,@summarize
- adds
@union_all
to bind all rows not just distinct rows as with@union
- joining syntax now supports
(table1, table2, col_name)
when joining columns have shared name if_else
now has optional final argument for handling missing values to match TidierData
Breaking Changes:
- All join syntax now matches TidierData's
(table1, table2, t1_col = t2_col)
Additions: @compute
for DuckDB, MySQL, PostGres, GBQ to write a table to the db at the end of a query.- expands
@create_view
to MySQL, PostGres, GBQ - Support for performing multiple joins of TidierDB queries in a single chain with further tests
dmy
,mdy
,ymd
support DuckDB, Postgres, GBQ, Clickhouse, MySQL, MsSQL, Athena, MsSQL- Date related tests
copy_to
for MysQL to write a dataframe to MySQL database Improvements:- improve Google Big Query type mapping when collecting to dataframe
- change
gbq()
'sconnect()
to acceptlocation
as second argument str_detect
now supports regex for all backends except MsSQL + some tests@select(!table.name)
now works to deselect a column
Docs:
- Add duckplyr/duckdb reproducible example to docs
- Improve interpolation docs
- Adds 50 tests comparing TidierDB to TidierData to assure accuracy across a complex chains of operations, including combinations of
@mutate
,@summarize
,@filter
,@select
,@group_by
and@join
operations.
- adds
@create_view
- adds
drop_view
- adds support for joining a queried table with anothe queried table
- adds joining docs to outline using
t()
or@create_view
for post wrangling joins - bug fix to allow cross database/schema joins with duckdb
- improves DuckDB
connect()
interface and documentation - enhances
@window_frame
to allow for just ato
orfrom
argument, as well as autodetection forpreceding
,following
andunbounded
for the frame boundaries.
TidierDB works with nearly any exisiting SQL function, now there are docs about it.
- Docs on using any exisiting SQL function in TidierDB
- Docs on user defined functions (UDFs) in TidierDB
- Adds
agg()
to use any aggregate built into a database to be used in@mutate
. support foragg()
in across. (@summarize
continues to all aggregate SQL functions withoutagg()
) - Adds
t(query)
as a more efficient alternative to reference tables.
table = db_table(db, "name")
@chain t(table) ...
- Bugfix: fixes MsSQL joins
- Bugfix: window functions
- Bugfix: json paths supported for
json
DuckDB functions
- Bugfix:
@mutate
allows type conversion as part of larger mutate expressions
- adds
@head
for limiting number of collected rows - adds support for reading URLS in
db_table
with ClickHouse - adds support for reading from multiple files at once as a vector of urls in
db_table
when using ClickHouse- ie
db_table(db, ["url1", "url2"])
- ie
- Bugfix:
@count
updates metadata - Bugfix:
update_con
can be part of chain (useful for expiring Snowflake tokens) - Bugfix to allow CrateDB and RisingWave backends via LibPQ
- adds
connect()
support for Microsoft SQL Server - adds
show_tables
for most backends to view exisiting tables - Docs comparing TidierDB to Ibis
- Docs around using
*
for reading in multiple files from folder - Docs for
db_table
- Docs for previewing or saving intermediate tables in ongoing
@chain
- adds support for reading from multiple files at once as a vector of paths in
db_table
when using DuckDB- ie
db_table(db, ["path1", "path2"])
- ie
- adds streaming support when using DuckDB with
@collect(stream = true)
- allows user to customize file reading via
db_table(db, "read_*(path, args)")
when using DuckDB
- Introduces package extensions for:
- Postgres, ClickHouse, MySQL, MsSQL, SQLite, Oracle, Athena, and Google BigQuery
- (Documentation)[https://tidierorg.github.io/TidierDB.jl/latest/examples/generated/UserGuide/getting_started/] updated for using these backends.
- Change
set_sql_mode()
to use types not symbols (ieset_sql_mode(snowflake())
notset_sql_mode(:snowflake)
)
- Switches to DuckDB to 1.0 version
- Adds support for
iceberg
tables via DuckDB to read iceberg paths indb_table
wheniceberg = true
- Adds support for DuckDB's beta
delta_scan
to read delta paths indb_table
whendelta = true
- Adds
connect()
support for DuckDB MotherDuck
- Adds direct path support for
db_table
when using DuckDB - Adds
connect
ability for AWS and Google Cloud to allow querying via S3 + DuckDB - Adds documentation for S3 + DuckDB with TidierDB
- Adds support for Databricks SQL Rest API
- Adds docs for Databricks use
- Fixes float/int type conversion when Snowflake collects to dataframe
@collect
bug fix
- Fixes case sensitivity with TidierDB metadata to make queries case insensitive when using Snowflake
- Small fix to internal
finalize_query
function for Snowflake
- Adds support for Snowflake SQL Rest API using OAuth token connection
- Adds Snowflake support for
connect()
- Adds docs for Snowflake use
- Adds support for Oracle backend via ODBC.jl connection
- Adds
@interpolate
and documentation around building macros with TidierDB chains and interpolation
- Adjusts Athena backend join syntax to match all other backends
- Adds Google Big Query support
- use
connect
with GBQ JSON credentials and project id establish connection
- Adds
@full_join
,@semi_join
,@anti_join
- Fixes bug to allow joining tables for Athena backend
- Refines all join syntaxes to remove need for symbols
- Adds
from_query
to allow building from saved query multiple times - Adds
connect()
- a universal connection function for all supported backends (except Athena) - Interpolation bug fix to allow interpolating vector of strings with the syntax:
@filter(column_name in [!!vector])
- Adds AWS Athena backend support via AWS.jl
- Fixes metadata retrieval for MariaDB
- allows for Table.Name style naming in
@select