Releases: r-dbi/odbc
odbc 1.3.4
-
Optimized table preview methods. Enhances large table preview
within RStudio IDE (@detule, #525). -
Added
attributesparameter todbConnect(...). Can be used to pass a
token and authenticate against Azure AD when using Microsoft SQL Server.
Documented in?ConnectionAttributes(@detule, #521). -
Fix
length(x) = 3 > 1' in coercion to 'logical(1)warning in connection
observer (@meztez, #494).
odbc 1.3.3
- Hadley Wickham is now the maintainer.
odbc 1.3.2
- New
odbcDataType.Snowflake()method for Snowflake databases. (@edgararuiz, #451)
odbc 1.3.1
- Fixed warnings about anonymous unions (@detule, #440)
- Fixed
invalid descriptorissues when retrieving results from SQL Server +
Microsoft's ODBC driver, using parametrized queries. (@detule, #414) - Fixed null handling in SQL Server / Azure result sets retrieved with
Microsoft's ODBC driver. (@detule, #408) - Hive uses C-style escaping for string literals (single quotes are
backslash-escaped, note single quote-escaped).dbQuoteStringnow respects
this when called on a connection of classHive. (@rnorberg, #184) - When calling
sqlCreateTable(con, ..., temporary = TRUE)andconis a
connection of classDB2/AIX64, theCREATE TABLEstatement that is generated
properly creates a temporary table in DB2. The statement begins with
DECLARE GLOBAL TEMPORARY TABLE
and ends withON COMMIT PRESERVE ROWS(DB2's default behavior is
ON COMMIT DELETE ROWS, which results in the inserted data being
deleted as soon asdbWriteTablecompletes). (@rnorberg, #426)
odbc 1.3.0
Major changes
- odbc can now be compiled again with Rtools35 (gcc 4.9.3) on Windows (#383)
invalid descriptorerrors from drivers such as Microsoft SQLServer driver and the freeTDS driver which do not support out of order retrieval are now avoided.
This is done by unbinding any nanodbc buffer past the long column.
Performance for the unbound columns in these cases will be reduced, but the retrieval will work without error (@detule, #381)dbBind()anddbFetch()now support multiple result sets (@vkapartzianis, #234)
Minor improvements and fixes
- New
dbAppendTable()method for OdbcConnection objects (#335) dbQuoteIdentifier()now uses the input names (if any).dbWriteTable()anddbBind()now default to abatch_rowsofNA, which sets the batch size to be the length of the input.
This avoids problems with drivers that don't support batch sizes larger than the input size.
To restore the behavior prior to this release passbatch_rows = 1024or setoptions(odbc.batch_rows = 1024)(#391).dbWriteTable()now handlesdata.table::IDate()objects (#388)dbWriteTable(field.types=)now issues a warning rather than an error for missing columns (#342)odbcConnectionColumns()now works as intended withDBI::Id()objects (#389)dbFetch()now verifies thatnis a valid input.- Dates are now always interpreted as being in the database's local time zone, regardless of the
timezoneparameter (#398) - Oracle connections now support
DateandPOSIXcttypes viaDATEandTIMESTAMPdata types (#324, #349, #350) - Oracle connections now use VARCHAR2 rather than VARCHAR, as recommended by Oracle's documentation (#189)
odbc v1.2.3
odbc 1.2.2
-
The configure script now again uses iodbc-config on macOS, if available.
-
Fix errors with drivers who do not fully implement SQLGetInfo (#325).
odbc 1.2.1
-
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.
odbc 1.2.0
Features
-
sqlCreateTable()anddbWriteTable()now throw an error if you mistakenly
includefield.typesnames 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 paramtimezone_outwhich is useful if the user
wants the datetime values be marked with a specific timezone instead of UTC
(@shrektan, #294). -
dbGetQuery(),dbSendQuery()anddbSendStatement()gain aimmediate
argument to execute the statement or query immediately instead of preparing,
then executing the statement. (#272, @krlmlr) -
dbGetQuery(),dbSendQuery()anddbSendStatement()gain aparams
argument, which allows them to be used (indirectly) byDBI::dbAppendTable()
(#210, #215, #261). -
dbWriteTable()anddbBind()methods gain abatch_rowsargument, to
control how many rows are bound in each batch. The default can be set
globally withoptions(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
theSQLDescribeParam()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 akeepandfilterargument and global options
odbc.drivers_keep,odbc.drivers_filterto 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).
Bugfixes
-
SQL Server ODBC's now supports the '-155' data type, and its losing
sub-second precision on timestamps; this still returns typeDATETIMEOFFSET
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 writesNA_characterasNULLfor
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).
odbc v1.1.2
- Fix the return value for
dbQuoteIdentifier()when given a length 0 input
(#146 @edgararuiz).