RJDBC - Allows the use of JDBC to access databases from R
Package R docs
* move java-src to java
* add schema= argument to dbGetTables() and dbListTables()
* support vectorized version of dbSendUpdate() which uses
batch-inserts for more efficient loading. Note that only
prepared statements work for now.
* use column labels instead of names (#36)
* dbColumnInfo() will return the column label in `name' and
column name in `field.name' (which is optional, for
* fix bug in dbUnloadDriver() returning NULL instead of FALSE
* added block argument to fetch() currently defaulting to 2048
which controls the fetch size.
Note that 0.2-4 has set this to the stride which was much too
big for some databases therefore it is now configurable.
* recover if setFetchSize() fails since some drivers don't take
it as a hint and fail regardless (issue #11)
* set fetch size to match the capacity for better performance
with some drivers. (thanks Jesse Rohland)
* close DB objects explicitly (issue #4) to avoid Oracle DB
running out of resources
* add support for dbHasCompleted() even in older DBI versions
* fix duplicate connection object (issue #1)
* add dbGetTables() and dbGetFields() which are similar to
dbListTable() and dbListFields() but return a full data frame
as obtained from the corresponding JDBC calls.
* add support for stored procedure call JDBC syntax.
Currently only IN parameters are supported since
DBI doesn't provide a way to retrieve OUT parameters.
* JDBC now uses path.expand() on the classPath components
* add support for dbWriteTable(..., append=TRUE)
* pass any additional arguments to dbConnect() as properties to
* use prepared statements only if parameters are passed,
otherwise use simple statements (this allows to work around
bugs in drivers that do not support prepared statements
* dbGetQuery() explicitly closes the statement before it returns
to work arround issues in the Teradata driver.
* use Java code to fetch results -- it should result in much higher
throughput in pulling result sets from the database. It is
also more efficient to use fetch() with n specified
(especially if you know it in advance) than relying on
n = -1. The latter will try first run with n = 32k and then
continue with n = 512k chunks and paste the results which is
inherently slow (still much faster than the 0.1-x way which
was fetching one record at a time).
* fix a typo in dbClearResult
* map NAs in query parameters into NULLs
(thanks to Axel Klenk)
* explicitly close statements right away (Oracle seems to need this)
(thanks to Axel Klenk)
* add "stat" slot (Statement object) to JDBCResult class to make sure
the statement lives long enough to not close the result set
* convert NULLs into NAs in numeric columns
* instantiate driver's class and use a call to `connect' as a
fall-back if the DriverManager fails to find a proper driver.
* fix SQL syntax in dbWriteTable (superfluous semicolon)
* fix a typo in prepared statement code
(thanks to Carl Grant for the last two bugfixes)
* added SQL error information to most JDBC errors
* use .jfindClass to load drivers
* remove beforeFirst() as some DBMS don't like it. This also
allows a sequential use of fetch() with a limit to load data
* fix a bug that caused NULL entries in string columns to fail
* fix dbDisconnect return value and update manuals
* added pre-compiled statements and proper dbWriteTable
0.1-0 (not released)
* drop pgsql access, switch to DBI
* add direct insert support for pgsql
* added converson of tables to data.frames
* added type conversion (int, double, string)
* first public release