v1.4.0
What's Changed
RPresto v1.4.0 is a major release encompassing a few big changes:
- User-facing APIs are organized on 3 levels:
DBI
'sdb*()
methods that act onDBIConnection
andDBIResult
classes;dplyr
'sdb_()
methods that are usually a simple wrapper around the lower-leveldb*()
methods; and lastlydbplyr
'sc*()
verbs (i.e.collect()
,collapse()
andcompute()
) andsrc
functions. You can find their implementation details in thebackend-implementations.md
file. We now have implementations for most of the commonly-used API methods across all 3 levels. - Besides the front-end, we also had a major refactoring of the back-end which handles how RPresto converts data returned by Presto's REST API to R data.
- The output is changed from
data.frame
totibble
to offer better printing and be more consistent with other DBI-compatible datawarehouse packages - Add more user-friendly R types translation for primitive Presto data types (e.g., DATE types are now translated to Date classes in R; TIMESTAMP types are translated to POSIXct classes; TIME types are translated to difftime classes; INTERVAL types are translated to Duration classes)
- Enable more choices of
BIGINT
type handling (i.e., integer64, integer, numeric, or character). (#61) - Add complete support for complex Presto types (i.e.,
ARRAY
,MAP
, andROW
). They are now translated to typed vectors, lists, or tibbles depending on the types and structure of the data. (#118) Seevignette("primitive-types")
andvignette("complex-types")
. - It supports all primitive and complex data types for Trino too. (#176)
- The output is changed from
- We added an experimental feature on "common table expressions" (CTEs). See
vignette("common-table-expressions")
. PrestoConnection
gains arequest.config
slot whereby users can set extra Curl configs (as returned byhttr::config()
toGET/POST
requests. (#173)dbConnect()
now uses empty string "" (rather than UTC) as the default session.timezone which translates to the Presto server timezone.dbConnect()
andsrc_presto()
gain anoutput.timezone
argument which can be used to control howTIME WITH TZ
andTIMESTAMP
values are represented in the output tibble.dbGetQuery()
anddbSendQuery()
gain aquiet
argument which defaults togetOption("rpresto.quiet")
which is NA if not set. This argument controls a progress bar for long-running queries. (#191)- Styling the whole package using
styler::style_pkg()
. A notable change is to user double quotes everywhere instead of a combination of single and double quotes. (#174)
New Contributors
- @yash-tekena made their first contribution in #148
Full Changelog: v1.3.7...v1.4.0