Update ccache-action reference.
Bump action version.
.gitignore and .Rbuildignore.Create snapshot update PR against correct branch.
Add reference to /apply-patch workflow in commit message.
Clarify rationale for not deploying on schedule.
Only run fledge on pushes to main.
Tweak fledge workflow and ccache action.
Cosmetics.
Bump action versions.
Align fledge workflow.
Harmonize.
TIME values before the epoch (@JoelNWilkins, #421).Please.
Use clang-format-21.
Build-ignore.
Auto-update from GitHub Actions (#426).
Format C++ code with clang-format.
Use workflows for fledge (#415).
Sync (#414).
Cleanup and fix macOS (#410).
Format with air, check detritus, better handling of extra-packages (#409).
Permissions, better tests for missing suggests, lints (#404).
Only fail covr builds if token is given (#401).
Always use _R_CHECK_FORCE_SUGGESTS_=false (#400).
Correct installation of xml2 (#397).
Explain (#395).
Add xml2 for covr, print testthat results (#394).
Sync (#393).
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).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).
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".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).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