Skip to content

v1.4.0

Compare
Choose a tag to compare
@jarodmeng jarodmeng released this 27 Sep 05:46
· 93 commits to master since this release

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's db*() methods that act on DBIConnection and DBIResult classes; dplyr's db_() methods that are usually a simple wrapper around the lower-level db*() methods; and lastly dbplyr's c*() verbs (i.e. collect(), collapse() and compute()) and src functions. You can find their implementation details in the backend-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 to tibble 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, and ROW). They are now translated to typed vectors, lists, or tibbles depending on the types and structure of the data. (#118) See vignette("primitive-types") and vignette("complex-types").
    • It supports all primitive and complex data types for Trino too. (#176)
  • We added an experimental feature on "common table expressions" (CTEs). See vignette("common-table-expressions").
  • PrestoConnection gains a request.config slot whereby users can set extra Curl configs (as returned by httr::config() to GET/POST requests. (#173)
  • dbConnect() now uses empty string "" (rather than UTC) as the default session.timezone which translates to the Presto server timezone.
  • dbConnect() and src_presto() gain an output.timezone argument which can be used to control how TIME WITH TZ and TIMESTAMP values are represented in the output tibble.
  • dbGetQuery() and dbSendQuery() gain a quiet argument which defaults to getOption("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

Full Changelog: v1.3.7...v1.4.0