NEWS
RPresto 1.4.8.9000
compute() now waits for materialized tables to exist before returning the
remote table object. This addresses race conditions where some Presto backends
may take a few seconds for newly created tables to become visible. The function
retries up to 5 times with 2-second delays before proceeding. If the table
still doesn't exist after max retries, a warning is issued but the function
continues for backward compatibility. (#332)
RPresto 1.4.8 (2025-12-02)
- Add
presto_type() function for tbl_presto objects to get column type
information including Presto types for complex and nested types. This function
works with remote tables after dplyr operations and CTEs.
- Add
dbColumnType() function for PrestoConnection to get column type
information for tables, including Presto types for complex and nested types.
This complements the existing dbColumnInfo() method for PrestoResult
objects. (#295)
- Add
dbAppendTableAs() and sqlAppendTableAs() functions to append data to
existing tables using SQL queries. These functions support both SQL strings
and tbl_presto objects as input. (#307)
- Implement
db_save_query() for PrestoConnection with smart overwriting. When
overwriting an existing table, the function renames the original table,
creates the new table, and drops the old table on success. If creation fails,
the original table is restored. This prevents data loss if the write operation
fails. (#271)
- Add
presto_unnest() function to unnest array columns in Presto tables using
CROSS JOIN UNNEST syntax. This function is similar to tidyr::unnest() but
works with Presto database tables. (#267)
- Replaced deprecated
with_mock() usage in unit testing with
with_mocked_bindings(). (#292)
- Add a feature to report text similarity when a CTE is overwritten. (#294)
- BIGINT to integer coercion now emits column-aware overflow warnings, including
full nested paths. This can be controlled via
options(rpresto.bigint_overflow.warning = TRUE|FALSE). (#198)
RPresto 1.4.7 (2025-01-08)
- Fixed Trino support quirks (#254) and expanded unit tests to Trino
- Fixed a bug whereby nested CTEs result in nested WITH. (#261)
- Fixed
paste() and paste0() translation (#266)
- RPresto is now compatible with dbplyr 2.5.0 (#272, #274, #277)
dbWriteTable(overwrite = TRUE) makes sure that the temp table is created
in the same schema as the destination table (#279)
RPresto 1.4.6 (2023-11-01)
tidyr::fill() now works with PrestoConnection. (#233, thanks to @copernican
for reporting the issue and @mgirlich for providing upstream utility functions
in dbplyr)
RPresto is now compatible with dbplyr 2.4.0. We updated the minimum
version requirement of dbplyr to be 2.3.3.
RPresto 1.4.5 (2023-05-05)
compute() uses simple table name rather than wrapped it in as.sql().
RPresto 1.4.4 (2023-03-09)
- Fixed error whereby
compute() returns a "table doesn't exist" error when the
computed table contains CTE. (#243)
- Hotfix to update
tbl() and db_query_rows() args to fix warnings by R CMD
CHECK on S3 generic consistency raised by CRAN. (#245)
RPresto 1.4.3 (2023-03-03)
- Fixed
dbplyr 2.3.0 compatibility issues. (#237)
RPresto 1.4.2 (2023-01-13)
- Add a convenient wrapper
kerberos_configs() to generate Kerberos header
configs that can be passed to the request.config argument of dbConnect().
(#202 and #221). Thanks to @suzzettedetorres for providing this solution.
- All functions that take table name as argument now work with
dbplyr::in_schema() and DBI::Id() besides the usual character table name.
(#228)
- Create a new
dbRenameTable() function to rename table name.
RPresto 1.4.1 (2022-11-16)
dbListFields now works with identifier name which in turn supports the use
of in_schema() in tbl() (#200)
- Fix an error whereby join query's CTEs are not properly retrieved (#203)
- Fix a bug that causes NULL values in a ROW to return data-schema mismatch
error (#206)
- Add
dbQuoteLiteral() and dbAppendTable() implementations.
- Rewrite
dbWriteTable() implementation to use dbCreateTable() and
dbAppendTable(). It also supports all default arguments now (#199)
dbWriteTable() gains a use.one.query option to use a single CREATE TABLE AS query.
RPresto 1.4.0 (2022-09-27)
- Change maintainer to Jarod Meng ([email protected])
- Major refactoring of the internal schema and data parsing functions to enable
more robust mapping between Presto data types and R types
- 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)
- It supports all primitive and complex data types for Trino too. (#176)
- Add vignettes on Presto-R type translations (see
vignette("primitive-types")
and vignette("complex-types"))
dbExistsTable() error when quoted identifier is supplied as name is fixed
(#167)
- Add a few
dplyr and dbplyr method implementations. See
backend-implementation.md for the details.
dbplyr::sql_query_save()
dplyr::db_list_tables()
dplyr::db_has_table()
dplyr::db_write_table()
dbplyr::db_copy_to()
dplyr::copy_to() method for src_presto and PrestoConnection
dplyr::tbl() method for PrestoConnection
dbplyr::db_compute()
dplyr::compute()
PrestoConnection gains a request.config slot whereby users can set extra
Curl configs (as returned by httr::config() to GET/POST requests. (#173)
- 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)
- Add an experimental feature to support common table expressions (CTEs) in both
DBI and dplyr backends (see
vignette("common-table-expressions")) (#175)
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. (#191)
RPresto 1.3.8
- Fix failing unit tests (#141)
- Support Trino headers in session (#143)
- Update copyright headers
- Migrate RPresto's dplyr interface to use dbplyr 2.0.0 backend (#150)
- Add documentation on RPresto's DBI and
dplyr backend implementation
RPresto 1.3.7 (2021-09-04)
- Fix testing errors caused by Presto changes since last update (#131)
- Change
[[ translation from [] subscript operator to ELEMENT_AT() (#132)
- Enable simple ROW type support (#137)
- Fix a bug whereby
is.infinite() is incorrectly translated to IS_FINITE()
instead of IS_INFINITE() in SQL (#139)
- Disabled translation of
median() and quantile() and suggested approx_quantile() instead. (#120)
RPresto 1.3.6 (2021-05-31)
RPresto 1.3.5 (2020-11-13)
- Add custom Date and POSIXct sql translation implementations for dbplyr (#123, thanks to @OssiLehtinen for original implementations).
- Adapt
dbClearResult to the API change, we now need to DELETE /v1/query/<query_id>.
- Add a
query.id slot to PrestoResult.
RPresto 1.3.4 (2019-10-18)
- Translate
[[ to allow indexing arrays and maps with dplyr (#110).
- Switch from BSD+Patents license to Standard BSD license (#114).
RPresto 1.3.3 (2019-05-03)
- Fix tests for compatibility with
dbplyr 1.4.0.
- Send headers with all http requests (#103).
- Add support for
as.<data_type> style casting for dplyr (#97).
- Add Code of Conduct.
RPresto 1.3.2 (2018-10-23)
- Use the new delayed S3 registration mechanism in 3.6.0 for dplyr method implementations.
- Bump minimum dplyr version required to 0.7.0.
RPresto 1.3.1 (2018-09-10)
- Presto now might return data in POST response (#89)
- Presto now might not always return column information in each response (#93)
- Better error message for unknown column types (#86, #87)
- Adapt to presto changes for type casting translation (#88)
- Add CHAR data type (#91)
RPresto 1.3.0 (2017-07-13)
- Fix Rcpp compilation under Windows (#79)
SET/RESET SESSION queries are now correctly respected when used under dbGetQuery.
PrestoConnection no longer has parameters slot but dbConnect remains backward
compatible. Manual change to parameter is still possible via conn@session$setParameter() (#77)
- Adapt to changes in dplyr version 0.7.0, mainly around the remote
backend support being split to
dbplyr. This should be backwards compatible
back to dplyr 0.4.3 (#76)
- Add support for the REAL data type (#70)
- Allow specifying the connection source (#68)
- Drop RCurl dependency (#67)
- Return DECIMAL data types as characters as opposed to numeric's
previously (#64, fixes #60)
- Add support for new integer data types (INTEGER, SMALLINT, TINYINT) (#59, fixes #56)
- Migrate the
json to data.frame construction from pure R to Rcpp for 10x
speed gains! (thanks @saurfang) (#57, #58)
- Fix dbListFields to use the nextUri instead of infoUri (#55)
- Don't drop data for duplicate column names (#53)
RPresto 1.2.1 (2016-04-06)
- Handle responses with no column information (fixes #49)
- Add retries for GET and POST responses with error status codes
- Skip test cases for ones that need locale modification if we cannot set the locale for the OS.
- Adapt to changes in the upcoming dplyr and testthat versions.
RPresto 1.2.0 (2016-03-18)
- Add a
session.timezone parameter to dbConnect and src_presto which
defaults to UTC. This affects the timestamps returned for Presto data types
"TIMESTAMP". We handle the ambiguity by assigning a time zone to every
POSIXct column returned. Note that if you are doing as.character() directly
on these columns, the values you obtain will be different from what happened
before.
- Fix the way we handle zero row multiple column query results. This will
affect
LIMIT 0 queries specifically.
RPresto 1.1.1
- Minor dplyr related fixes
- Drop the R version requirement from 3.1.1 to 3.1.0
- Speed-up in binding chunks if dplyr is available.
- Handle special values like Infinity, NaN.
RPresto 1.1.0
- Add optional dplyr support. One can initiate a connection via
src_presto.
- Minor documentation fixes.
RPresto 1.0.0
- Initial release to github