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 onDBIConnectionandDBIResultclasses;dplyr'sdb_()methods that are usually a simple wrapper around the lower-leveldb*()methods; and lastlydbplyr'sc*()verbs (i.e.collect(),collapse()andcompute()) andsrcfunctions. You can find their implementation details in thebackend-implementations.mdfile. 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.frametotibbleto 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
BIGINTtype 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"). PrestoConnectiongains arequest.configslot whereby users can set extra Curl configs (as returned byhttr::config()toGET/POSTrequests. (#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.timezoneargument which can be used to control howTIME WITH TZandTIMESTAMPvalues are represented in the output tibble.dbGetQuery()anddbSendQuery()gain aquietargument 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