bigrquery 1.5.0
Major changes
-
bigrquery is now MIT licensed (#453).
-
Deprecated functions (i.e. those not starting with
bq_
) have been
removed (#551). These have been superseded for a long time and were formally
deprecated in bigrquery 1.3.0 (2020). -
bq_table_download()
now returns unknown fields as character vectors.
This means that BIGNUMERIC (#435) and JSON (#544) data is downloaded into
R for you to process as you wish.It now parses dates using the clock package. This leads to a considerable
performance improvement (#430) and ensures that dates prior to 1970-01-01 are
parsed correctly (#285).
Significant DBI improvements
-
bigquery datasets and tables will now appear in the connection pane when
usingdbConnect
(@meztez, #431). -
dbAppendTable()
(#539),dbCreateTable()
(#483), anddbExecute
(#502)
are now supported. -
dbGetQuery()
/dbSendQuery()
gains support for parameterised queries via
theparams
argument (@byapparov, #444). -
dbReadTable()
,dbWriteTable()
,dbExistsTable()
,dbRemoveTable()
,
anddbListFields()
now all work withDBI::Id()
(#537).
Significant dbplyr improvements
-
bigrquery now uses 2nd edition of dbplyr interface (#508) and is
compatible with dbplyr 2.4.0 (#550). -
Joins now work correctly across bigrquery connections (#433).
-
grepl(pattern, x)
is now correctly translated to
REGEXP_CONTAINS(x, pattern)
(#416). -
median()
gets a translation that works insummarise()
and a clear
error if you use it inmutate()
(#419). -
tbl()
now works with views (#519), including the views found in the
INFORMATION_SCHEMA
schema (#468). -
tbl(con, sql("..."))
now works robustly once more (#540), fixing the
"URL using bad/illegal format or missing URL" error. -
runif(n())
gains a translation so thatslice_sample()
can work
(@mgirlich, #448).
Minor improvements and bug fixes
-
Google API URLs have been aligned with the Google Cloud Discovery docs. This
enables support for Private and Restricted Google APIs configurations
(@husseyd, #541) -
Functions generally try to do a better job of telling you when you've
supplied the wrong type of input. Additionally, if you supplySQL()
to
a query, you no longer get a weird warning (#498). -
If
bq_job_wait()
receives a 503 response, it now waits for 2 seconds and
tries again (#535). -
dbFetch()
now respects thequiet
setting from the connection (#463). -
dbGetRowCount()
anddbHasComplete()
now return correct values when you
try to fetch more rows than actually exist (#501). -
New
dbQuoteLiteral()
method for logicals reverts breaking change introduced
by DBI 1.1.2 (@meztez, #478). -
dbWriteTable()
now correct uses thebilling
value set in the
connection (#486).