-
RMySQL fully supports DATE and DATETIME columns. On output, DATE columns will be converted to vectors of
Dates and DATETIME will be converted toPOSIXct. To faciliate correct computation of time zone, RMySQL always sets the session timezone to UTC. -
RMySQL 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 withdbBind().dbSendQuery()anddbGetQuery()also support inline parameterised queries, likedbGetQuery(mysqlDefault(), "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 usedbColumnInfo()instead. -
dbGetInfo()has been removed. Please use the individual metadata functions. -
Information formerly contain in
summary()methods has now been integrated intoshow()methods. -
make.db.names()has been deprecated. UsedbQuoteIdentifier()instead. -
isIdCurrent()has been deprecated. UsedbIsValid()instead. -
dbApply(),dbMoreResults()anddbNextResults()have been removed. These were always flagged as experimental, and now the experiment is over. -
dbEscapeStrings()has been deprecated. Please usedbQuoteStrings()instead. -
dbObjectId compatibility shim removed
-
Add SSL support on Windows.
-
Fix configure script for OSX 10.6 Snow Leopard
-
Issue in
dbWriteTable()with temporary files on Windows fixed.
-
New maintainer: Jeroen Ooms
-
Internal changes to support static linking on Windows; this means that windows a binary is now available on CRAN.
-
The following internal functions are no longer exported: please use the corresponding DBI generic instead:
mysqlInitDriver,mysqlCloseDriver,mysqlDescribeDriver,mysqlDriverInfo,mysqlNewConnection,mysqlCloneConnection,mysqlDescribeConnection,mysqlConnectionInfo,mysqlCloseConnection,mysqlExecStatement,mysqlQuickSQL,mysqlDBApply,mysqlFetch,mysqlResultInfo,mysqlDescribeResult,mysqlDescribeFields,mysqlCloseResult,mysqlImportFile,mysqlReadTable,mysqlWriteTable,mysqlEscapeStrings,mysqlDataType,safe.write. -
RMySQL gains transaction support with
dbBegin(),dbCommit(), anddbRollback(), but note that MySQL does not allow data definition language statements to be rolled back. -
The MySQLObject base class has been removed - there is no real shared behaviour for MySQLDriver, MySQLConnection and MySQLResult so this simplifies the code
-
Implemented methods for
dbIsValid(); please use these instead ofisIdCurrent(). -
Implement
dbFetch()method; please use this in preference tofetch().dbFetch()now returns a 0-row data frame (instead of an 0-col data frame) if there are no results. -
Methods no longer automatically close open result sets. This was implemented inconsistently in a handful of places.
-
dbBuildTableDefinition()has been renamed tomysqlBuildTableDefinition(). -
dbWriteTable()has been rewritten:-
It quotes field names using
dbQuoteIdentifier(), rather than use a flawed black-list based approach with name munging. -
It now throws errors on failure, rather than returning FALSE.
-
It will automatically add row names only if they are character, not integer.
-
When loading a file from disk,
dbWriteTable()will no longer attempt to guess the correct values forrow.namesandheader- instead supply them explicitly if the defaults are incorrect. -
When given a zero-row data frame it will just creates the table definition.
-
-
Assorted fixes accumulated since last release 3 years ago.
-
MySQL()no longer hasforce.reloadargument - it's not obvious that this ever worked.