dbQuoteLiteral() for
MySQLConnection (@jjaeschke, #353).dbQuoteIdentifier() removes the def
catalog component again, regression introduced in RMariaDB 1.3.1 (#337,
#339).dbConnect() and the
output when printing connections (@d-hansen, #328).dbConnect(groups = ) in
favor of dbConnect(group = ), with a warning and
compatibility code (@rorynolan, #258).dbWriteTable() and dbAppendTable() on a
connection with load_data_local_infile = TRUE uses the
utf8mb4 instead of the more restricted utf8mb3
encoding (@ecoffingould, #332, #333).dbConnect() can enable SSL based on
client_flag again (@d-hansen, #322).dbQuoteIdentifier() for Id() objects
(#323).dbQuoteIdentifier() for Id()
objects (#324).mysql_ssl_set() (#319).dbQuoteIdentifier()
(@dpprdan, #254,
#255).dbSendStatement(immediate = TRUE) and
dbExecute(immediate = TRUE), needs
CLIENT_MULTI_STATEMENTS (#147, #312).dbConnection(groups = ) works as documented again,
regression introduced in RMariaDB 1.3.0 (@pekkarr, #306)."MySQLConnection" if a
MySQL server is detected (server version < 10.0 or server description
contains "MariaDB"). The new mysql argument to
dbConnect() allows overriding the autodetection
(#303).TIME columns with subsecond precision (@renkun-ken, #288,
#289).MAX_NO_FIELD_TYPES error message.dbAppendTable() accepts Id (#262, @renkun-ken).
dbConnect() gains reconnect argument
that sets the MYSQL_OPT_RECONNECT option (#261, @renkun-ken).
LOAD LOCAL INFILE by setting the
MYSQL_OPT_LOCAL_INFILE flag (#265, #267).caching_sha2_password plugin (#134, #248,
@jeroen).setMethod() calls refer to top-level functions (#250).blob::blob() objects (#126,
#243).dbWriteTable() and dbAppendTable() are
much faster thanks to LOAD DATA LOCAL INFILE. To activate
this, load_data_local_infile = TRUE must be passed to
dbConnect(). The readr package is required (#11,
#223).dbConnect() normalizes all input paths (#197, @twentytitus).dbDataType() returns TIME(6) for
difftime, and DATETIME(6) for
POSIXt columns, to create columns with microsecond
precision by default (#214).libmariadb-dev Debian/Ubuntu
package in documentation and configuration scripts (#219).?dbConnect gains a section on secure passwords and the
.mylogin.cnf file (#156).Test MySQL and MariaDB Server and client libraries in all combinations on GitHub Actions (#224).
The configure script now queries the
RMARIADB_FORCE_MARIADBCONFIG and
RMARIADB_FORCE_MYSQLCONFIG environment variables to force
use of mariadb_config or mysql_config,
respectively (#218).
NULL is mapped to NA for
bit(1) columns (#201, @dirkschumacher).dbConnect() now supports a timezone_out
argument. Explicitly setting timezone to NULL
tries to detect the database time zone (#116).BIT(1) columns are returned as logical
(#84).dbQuoteLiteral() now correctly quotes difftime values
(#188).dbBind() also works for "Date" values that
are stored as integers (#187).timezone argument to dbConnect()
(#184, @ycphs).dbWriteTable() and dbBind() correctly
interpret difftime values with units other than
"secs"../configure no longer requires bash (@jeroen).dbConnect() gains a timeout argument,
defaults to 10. Use Inf or a negative value for no timeout
(#169).dbDataType() returns VARCHAR(1) for
length-0 character vectors.dbDataType() returns VARCHAR() for
factors.dbSendQuery() and dbSendStatement() clear
the result set if dbBind() throws an error.dbWriteTable() is a data frame
(#160, @rossholmberg).VARCHAR as data type for string columns
(#159).dbGetInfo() according to the
specification.libssl-dev in
configure and DESCRIPTION (#101).auto_ptr, which causes
R CMD check warnings on R-devel.bigint argument to
dbConnect(), supported values are "integer64",
"integer", "numeric" and
"character". Large integers are returned as values of that
type (r-dbi/DBItest#133).temporary and
fail_if_missing (default: TRUE) to
dbRemoveTable() (r-dbi/DBI#141, r-dbi/DBI#197).dbCreateTable() and dbAppendTable()
internally (r-dbi/DBI#74).format() method for
MariaDBConnection (r-dbi/DBI#163).Id(), DBI::dbIsReadOnly() and
DBI::dbCanConnect().dbGetException() is no longer reexported from DBI.NaN and Inf are converted to
NULL when writing to the database (#77)."integer64" are now supported for
dbWriteTable() and dbBind() (#87).dbListObjects(),
dbUnquoteIdentifier() and Id().x argument to
dbQuoteIdentifier() are preserved in the output
(r-lib/DBI#173).timegm() with private
implementation (#78).timegm
symbol if the macro sun is defined.overwrite = TRUE.SHOW PLUGINS) return data (#70, @nbenn).dbWriteTable() if
a table by the same name exists. If a temporary table of the same name
exists, the error will be raised by the database itself, because this
condition cannot be checked beforehand.Initial release, compliant to the DBI specification.
dbExecute() or dbSendStatement(),
the function mariadbExecQuery() has been removed
(#28).bit64
package. Unfortunately, this also means that numeric literals (as in
SELECT 1) are returned as 64-bit integers (#12).row.names = FALSE.dbConnect():
ssl.key, ssl.cert, ssl.ca,
ssl.capath, ssl.cipher (#131, #148, @adamchainz).RMariaDB fully supports DATE and DATETIME columns. On output,
DATE columns will be converted to vectors of Dates and
DATETIME will be converted to POSIXct. To faciliate correct
computation of time zone, RMariaDB always sets the session timezone to
UTC.
RMariaDB has been rewritten (essentially from scratch) in C++ with Rcpp. This has considerably reduced the amount of code, and allow us to take advantage of the more sophisticated memory management tools available in Rcpp. This rewrite should yield some minor performance improvements, but most importantly protect against memory leaks and crashes. It also provides a better base for future development.
Support for prepared queries: create prepared query with
dbSendQuery() and bind values with dbBind().
dbSendQuery() and dbGetQuery() also support
inline parameterised queries, like
dbGetQuery(mariadbDefault(), "SELECT * FROM mtcars WHERE cyl = :cyl", params = list(cyl = 4)).
This has no performance benefits but protects you from SQL injection
attacks.
dbListFields() has been removed. Please use
dbColumnInfo() instead.
dbGetInfo() has been removed. Please use the
individual metadata functions.
Information formerly contain in summary() methods
has now been integrated into show() methods.
make.db.names() has been deprecated. Use
dbQuoteIdentifier() instead.
isIdCurrent() has been deprecated. Use
dbIsValid() instead.
dbApply(), dbMoreResults() and
dbNextResults() have been removed. These were always
flagged as experimental, and now the experiment is over.
dbEscapeStrings() has been deprecated. Please use
dbQuoteStrings() instead.
dbObjectId compatibility shim removed
Add SSL support on Windows.
Fix repetition of strings in subsequent rows (@peternowee, #125).
Always set connection character set to utf-8
Backport build system improvements from stable branch
Reenable Travis-CI, switch to R Travis, collect coverage