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 Date
s 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