Connect to ODBC databases (using the DBI interface)
The configure script now again uses iodbc-config on macOS, if available.
Fix errors with drivers who do not fully implement SQLGetInfo (#325).
Fix the unicode character width issues with the macOS odbc CRAN binary. (#283)
The configure script now works on systems whose /bin/sh does not support command substitution, such as Solaris 10.
sqlCreateTable()
and dbWriteTable()
now throw an error if you mistakenly
include field.types
names which do not exist in the input data. (#271)
The error message when trying to write tables with unsupported types now includes the column name (#238).
dbConnect()
now has a new param timezone_out
which is useful if the user
wants the datetime values be marked with a specific timezone instead of UTC
(@shrektan, #294).
dbGetQuery()
, dbSendQuery()
and dbSendStatement()
gain a immediate
argument to execute the statement or query immediately instead of preparing,
then executing the statement. (#272, @krlmlr)
dbGetQuery()
, dbSendQuery()
and dbSendStatement()
gain a params
argument, which allows them to be used (indirectly) by DBI::dbAppendTable()
(#210, #215, #261).
dbWriteTable()
and dbBind()
methods gain a batch_rows
argument, to
control how many rows are bound in each batch. The default can be set
globally with options(odbc.batch_rows)
. This is useful if your database
performs better with a larger or smaller number of rows per batch than the
default of 1024. (#297)
New odbcConnectionColumns()
function to describe the column types. This
data is used when binding columns, which allows drivers which do not support
the SQLDescribeParam()
ODBC function, such as freeTDS to work better with
bound columns. (#313, @detule)
Added a Teradata odbcDataType()
to support writing logical data to Teradata
servers (#240, @blarj09).
Added a Access odbcDataType()
method to support writing to Access databases
(#262, @vh-d)
odbcListDrivers()
gains a keep
and filter
argument and global options
odbc.drivers_keep
, odbc.drivers_filter
to keep and filter the drivers
returned. This is useful if system administrators want to reduce the number
of drivers shown to users. (@blairj09, #274)
Subseconds are now retained when inserting POSIXct objects (#130, #208)
The RStudio Connections Pane now shows the DSN, when available (#304, @davidchall).
SQL Server ODBC's now supports the '-155' data type, and its losing
sub-second precision on timestamps; this still returns type DATETIMEOFFSET
as a character, but it preserves sub-seconds and has a numeric timezone
offset (@r2evans, #207).
dbExistsTable()
now handles the case-sensitivity consistently as
other methods (@shrektan, #285).
dbExistsTable()
now works for SQL Server when specifying schemas but not
catalogs using the freeTDS and Simba drivers. (#197)
DBI::dbListFields()
no longer fails when used with a
a qualified Id object (using both schema and table) (#226).
dbWriteTable()
now always writes NA_character
as NULL
for
data.frame with only one row (@shrektan, #288).
Fix an issue that the date value fetched from the database may be one day before its real value (@shrektan, #295).
dbQuoteIdentifier()
when given a length 0 input
(#146 @edgararuiz).Workaround for drivers which do not implement SQLGetInfo, such as the Access driver. (#78)
Fix for installation error for systems without GNU Make as the default make, such as Solaris.
Provide a fall backs for drivers which do not support SQLDescribeParam
and
those which do not support transactions.
sqlCreateTable()
gains a fieldTypes
argument, which allows one to
override a column type for a given table, if the default type is not
appropriate.
Support for databases with non UTF-8 encodings. Use the encoding
parameter
to dbConnect()
to specify the database encoding.
Support for the SQL Connection Pane in the RStudio IDE.
Unknown fields no longer throw a warning, instead they signal a custom condition, which can be caught if desired with
withCallingHandlers(expr, odbc_unknown_field_type = function(e) {...} )
Conversion to and from timezones is handled by the
cctz library. If the database is in a non-UTC
timezone it can be specified with the timezone
parameter to dbConnect()
.
Time objects are converted to and from hms
objects.
64 bit integers are converted to and from bit64
objects.
Support table creation for Impala and Hive Databases (# 38, @edgararuiz).