[Bioc-devel] Important news about pending updates to the RSQLite package

Dan Tenenbaum dtenenba at fhcrc.org
Sat Sep 27 02:20:43 CEST 2014

Hi all,

RSQLite 1.0.0 is scheduled to be released on October 20th, just a few days after the Bioconductor 3.0 release.

It is a major update and involves a lot of changes; many functions have been deprecated, removed, renamed, are no longer exported, or have different arguments. I've pasted the full announcement from Hadley Wickham below (includes the links to github where you can download and test the package).

Many Bioconductor packages depend on RSQLite. Please review all packages you maintain and make sure they build and check with the new version of RSQLite. 

Ideally you should fix your package in such a way that it works with both the current (0.3.0) version of RSQLite and with the upcoming version 1.0.0, without needing kludgey conditional code. If that isn't possible, make a version that is fully compatible with 1.0.0 but not compatible with 0.3.0 and be prepared to update your release and devel packages with the updated code immediately after RSQLite 1.0.0 becomes available.

The following packages (maintainers Bcc'd) will definitely need to be updated _in both release and devel_ because they use the sqlite* functions that are no longer exported from RSQLite 1.0.0:


But if your package does not appear in that list you should still check your package, because that's just the low-hanging fruit.

Please 'reply all' to bioc-devel if you have any questions.


Announcement from Hadley Wickham

Hi everyone,

I'm preparing to release a new version of RSQLite, 1.0.0.  (I've taken
over maintenance from Seth Falcon). This release is basically a big
tidy up - I've refactored a lot of the C code to be easier to follow,
deprecated a lot of unused functions, and converted everything to
"Hadley"-style package development.  A complete list of changes are
included at the bottom of this email.

If you use RSQLite, I'd really appreciate it if you'd try out the
development version and let me know if you have any problems. You can
install it from github with:

# install.packages("devtools")

If you have written a package that depends on RSQLite, please check
the list of R CMD check results at
I've been quite aggressive at deprecating old functions, and
un-exporting functions that are really part of RSQLite's internal
interface. This means that many packages will need changes. If you
have any trouble figuring out the problem, please let me know and I'll
be happy to help. I apologise for the hassle, but this will make
RSQLite a much better platform to build on in the future.

I plan to submit this version of RSQLite to CRAN on Oct 20, so that
there's plenty of time for feedback and changes.


# Version 1.0.0

## New features

- Updated to SQLite 3.8.6

- Added `datasetsDb()`, a bundled SQLite database containing all data frames
  in the datasets package (#15).

- Inlined `RSQLite.extfuns` - use `initExtension()` to load the many
  useful extension functions (#44).

- Methods no longer automatically clone the connection is there is an open
  result set. This was implement inconsistently in a handful of places (#22).
  RSQLite is now more forgiving if you forget to close a result set - it will
  close it for you, with a warning. It's still good practice to clean up
  after yourself, but you don't have to.

- `dbBegin()`, `dbCommit()`, `dbRollback()` throw errors on failure, rather than
  return `FALSE`.  They all gain a `name` argument to specify named savepoints.

- `dbFetch()` method added (`fetch()` will be deprecated in the future)

- `dbRemoveTable()` throws errors on failure, rather than returning `FALSE`.

- `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 for `row.names` and `header` - instead
      supply them explicitly if the defaults are incorrect.

    * It uses named save points so it can be nested inside other
      transactions (#41).

    * When given a zero-row data frame it will just creates the table
      definition (#35).

## Changes to objects

- The `dbname`, `loadable.extensions`, `flags` and `vfs` properties of
  a SqliteConnection are now slots. Access them directly instead of using

## Deprecated and removed functions

- RSQLite is no longer nominally compatible with S (#39).

- `idIsValid()` is deprecated. Please use `dbIsValid()` instead.

- `dbBeginTransaction()` has been deprecated. Please use `dbBegin()` instead.

- `dbCallProc()` method removed, since generic is now deprecated.

- Renamed `dbBuildTableDefinition()` to `sqliteBuildTableDefinition()`
  to avoid implying it's a DBI generic. Old function is aliased to new with
  a warning.

- `dbFetch()` no longer numbers row names sequentially between fetches.

- `safe.write()` is no longer exported as it shouldn't be part of the
  public RSQLite interface (#26).

- Internal `sqlite*()` functions are no longer exported (#20).

- Removed `SqliteObject` and `dbObject` classes, modifying `SqliteDriver`,
  `SqliteConnection`, and `SqliteResult` to use composition instead of multiple


devteam-bioc mailing list
To unsubscribe from this mailing list send a blank email to
devteam-bioc-leave at lists.fhcrc.org
You can also unsubscribe or change your personal options at

More information about the Bioc-devel mailing list