Changes in version 1.3.4.9017 Continuous integration - Update ccache-action reference. - Bump action version. Changes in version 1.3.4.9016 - Ci: Unify fledge.yaml across cynkratemplate and fledge (#86). Changes in version 1.3.4.9015 Chore - Add ccache to .gitignore and .Rbuildignore. Continuous integration - 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. Changes in version 1.3.4.9014 Continuous integration - Cosmetics. - Bump action versions. - Align fledge workflow. - Harmonize. Changes in version 1.3.4.9013 Chore - Auto-update from GitHub Actions (#524). Changes in version 1.3.4.9012 Chore - Auto-update from GitHub Actions (#522). Changes in version 1.3.4.9011 Chore - Auto-update from GitHub Actions (#434). Changes in version 1.3.4.9010 Chore - Auto-update from GitHub Actions (#432). Changes in version 1.3.4.9009 Chore - Auto-update from GitHub Actions (#430). Changes in version 1.3.4.9008 Bug fixes - Correctly return TIME values before the epoch (@JoelNWilkins, #421). Chore - Remove plogr (#428). Continuous integration - Please. - Use clang-format-21. Changes in version 1.3.4.9007 Chore - Build-ignore. - Auto-update from GitHub Actions (#426). - Format C++ code with clang-format. Changes in version 1.3.4.9006 Continuous integration - Fix comment (#424). - Tweaks (#423). - Test all R versions on branches that start with cran- (#422). Changes in version 1.3.4.9005 Continuous integration - Install binaries from r-universe for dev workflow (#419). Changes in version 1.3.4.9004 Continuous integration - Fix reviewdog and add commenting workflow (#417). Changes in version 1.3.4.9003 Chore - Auto-update from GitHub Actions (#411). Continuous integration - Use workflows for fledge (#415). - Sync (#414). - Cleanup and fix macOS (#410). - Format with air, check detritus, better handling of extra-packages (#409). Changes in version 1.3.4.9002 Continuous integration - Enhance permissions for workflow (#406). Changes in version 1.3.4.9001 Continuous integration - 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). Changes in version 1.3.4.9000 - Switching to development version. Changes in version 1.3.4 (2025-02-24) Windows - Use mariadbclient from Rtools if available (#383). Bug fixes - Adjust datetime format in dbQuoteLiteral() for MySQLConnection (@jjaeschke, #353). Changes in version 1.3.3 (2024-11-18) Bug fixes - dbQuoteIdentifier() removes the def catalog component again, regression introduced in RMariaDB 1.3.1 (#337, #339). Features - Add back SSL support for MariaDB 5.5.68 (@d-hansen, #336, #338). Changes in version 1.3.2 (2024-05-27) Features - Improve enforcement of SSL for dbConnect() and the output when printing connections (@d-hansen, #328). - Breaking change: Avoid appending a numeric suffix to duplicate column names (#321, #327). - Breaking change: Deprecate dbConnect(groups = ) in favor of dbConnect(group = ), with a warning and compatibility code (@rorynolan, #258). Bug fixes - 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). - Fix dbQuoteIdentifier() for Id() objects (#323). Chore - Improve dbQuoteIdentifier() for Id() objects (#324). - Avoid deprecated mysql_ssl_set() (#319). Continuous integration - Turn off Windows for now (#326). Documentation - Use dbitemplate (@maelle, #320). Testing - Test for quoting columns with dbQuoteIdentifier() (@dpprdan, #254, #255). Changes in version 1.3.1 (2023-10-26) Features - Support dbSendStatement(immediate = TRUE) and dbExecute(immediate = TRUE), needs CLIENT_MULTI_STATEMENTS (#147, #312). Bug fixes - Fix memory leak (#309, #311). - Fix compilation on CentOS 7 (#310). - dbConnection(groups = ) works as documented again, regression introduced in RMariaDB 1.3.0 (@pekkarr, #306). Documentation - Update docs for client flags (#313). Changes in version 1.3.0 (2023-10-09) Features - Connections now inherit from "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). - Use string as default for JSON (#296) and all unknown column types (@LeeMendelowitz, #260). - Support TIME columns with subsecond precision (@renkun-ken, #288, #289). Documentation - Better MAX_NO_FIELD_TYPES error message. Chore - Update Windows libs to new location (#301). - Replace Rcpp by cpp11 (@Antonov548, #286). - Add decor as a dependency. Testing - Skip tests if packages are not available (#304). - Use testthat edition 3 (#285). Changes in version 1.2.2 (2022-06-19) Features - dbAppendTable() accepts Id (#262, @renkun-ken). - dbConnect() gains reconnect argument that sets the MYSQL_OPT_RECONNECT option (#261, @renkun-ken). Bug fixes - Actually enable LOAD LOCAL INFILE by setting the MYSQL_OPT_LOCAL_INFILE flag (#265, #267). Changes in version 1.2.1 (2021-12-20) Features - Upgrade to mariadb-connector-c 3.2.5 on Windows, with built-in support for the caching_sha2_password plugin (#134, #248, @jeroen). Internal - Make method definition more similar to S3. All setMethod() calls refer to top-level functions (#250). Changes in version 1.2.0 (2021-12-12) Features - BLOBs are returned as 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). Bug fixes - Writing dates prior to 1970 no longer crashes on Windows (#232, #245). Internal - Add test for reading and writing JSON data type as string (#127, #246). - Update for compatibility with DBItest 1.7.2 (#228). Changes in version 1.1.2 (2021-09-06) Licensing - RMariaDB is now licensed under the MIT license (#213). Features - 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). Documentation - Now referring to the libmariadb-dev Debian/Ubuntu package in documentation and configuration scripts (#219). - ?dbConnect gains a section on secure passwords and the .mylogin.cnf file (#156). Internal - 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). Changes in version 1.1.1 (2021-04-13) Bug fixes - NULL is mapped to NA for bit(1) columns (#201, @dirkschumacher). Internal - Remove BH dependency by inlining the header files (#208). Changes in version 1.1.0 (2021-01-07) Features - 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). Bug fixes - Timestamp values are now written correctly if the database connection uses a time zone other than UTC. Deviations still might occur at DST boundaries, therefore it is still safer to use UTC as the database connection (#116). - Timestamp roundtrip no longer fails on Windows i386 (#117). - dbBind() also works for "Date" values that are stored as integers (#187). Changes in version 1.0.11 (2020-12-16) Features - Windows: update to libmariadbclient 3.1.11 - Add timezone argument to dbConnect() (#184, @ycphs). - dbWriteTable() and dbBind() correctly interpret difftime values with units other than "secs". Internal - ./configure no longer requires bash (@jeroen). - Switch to GitHub Actions (#185, thanks @ankane). Changes in version 1.0.10 (2020-08-27) Features - dbConnect() gains a timeout argument, defaults to 10. Use Inf or a negative value for no timeout (#169). - Support fractional seconds in datetime values for reading and writing (#157). Bug fixes - 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. - Check that input to dbWriteTable() is a data frame (#160, @rossholmberg). Changes in version 1.0.9 (2020-07-03) - Use VARCHAR as data type for string columns (#159). - Encode column names as UTF-8 (#109). Changes in version 1.0.8 (2019-12-17) - Implement dbGetInfo() according to the specification. - Include information about libssl-dev in configure and DESCRIPTION (#101). Changes in version 1.0.7 (2019-12-02) - Get rid of auto_ptr, which causes R CMD check warnings on R-devel. Changes in version 1.0.6 (2018-05-06) - Add support for 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). - Data frames resulting from a query always have unique non-empty column names (r-dbi/DBItest#137). - New arguments temporary and fail_if_missing (default: TRUE) to dbRemoveTable() (r-dbi/DBI#141, r-dbi/DBI#197). - Using dbCreateTable() and dbAppendTable() internally (r-dbi/DBI#74). - Implement format() method for MariaDBConnection (r-dbi/DBI#163). - Reexporting Id(), DBI::dbIsReadOnly() and DBI::dbCanConnect(). - Now imports DBI 1.0.0. Changes in version 1.0.5 (2018-04-03) - dbGetException() is no longer reexported from DBI. - NaN and Inf are converted to NULL when writing to the database (#77). - Values of class "integer64" are now supported for dbWriteTable() and dbBind() (#87). - Schema support, as specified by DBI: dbListObjects(), dbUnquoteIdentifier() and Id(). - Names in the x argument to dbQuoteIdentifier() are preserved in the output (r-lib/DBI#173). - Replace non-portable timegm() with private implementation (#78). - Update libmariadbclient to version 2.3.5 on Windows (#92, @jeroen). Changes in version 1.0-4 (2017-12-11) - Attempt to fix Solaris builds by redefining timegm symbol if the macro sun is defined. - Fix examples running on CRAN by using only temporary tables and overwrite = TRUE. - Refactor connection and result handling to be more similar to other backends. - Add support for R 3.1, but DBI >= 0.5 is required (#68). - Queries that bypass the prepared statement framework (like SHOW PLUGINS) return data (#70, @nbenn). - A temporary table can be created via 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. Changes in version 1.0-2 (2017-10-04) Initial release, compliant to the DBI specification. - Test almost all test cases of the DBI specification. - Fully support parametrized queries (#22, #27, #39). - Queries not supported by the prepared statement protocol still can be run via dbExecute() or dbSendStatement(), the function mariadbExecQuery() has been removed (#28). - Spec-compliant transactions (#38, #49). - 64-bit integers are now supported through the bit64 package. Unfortunately, this also means that numeric literals (as in SELECT 1) are returned as 64-bit integers (#12). - Correct handling of DATETIME and TIME columns (#52, @noahwilliamsson). Support timestamp values with sub-second precision on output, and with year beyond 2038 (#56). - The connection now uses the "utf8mb4" charset by default (#7). - New default row.names = FALSE. - New SSL-related arguments to dbConnect(): ssl.key, ssl.cert, ssl.ca, ssl.capath, ssl.cipher (#131, #148, @adamchainz). - CI for Linux, Windows, and OS X (#25). - Support for Connector/C from both MariaDB and MySQL. Changes in version 0.11-1 - 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