DBI drivers ?
David James wrote:
Hi Emmanuel,
Hi ! Sorry for the late answer : I was on vacation. [ ... ]
Well, there are other issues involve. For instance, in the case of the RODBC driver the underlying C code does not map correctly R data types to SQL data types -- it just saves all the data as character strings. This approach is not too bad if R (thru the RODBC driver) is the only application that will use those data; but the tables created like this (with all the columns stored as strings) may not be too useful to other applications (say, excel or Splus or Matlab, ...). I believe that in some (older?) versions of RPgSQL the fetching cannot (could not) be done in batches, and in some situations one may need to bring the data in chunks to avoid crushing R.
Too right ... So we need to improve this a bit. One of my pet peeves at the moment with RODBC is the way it munches date/time data ... About RPgSQL : it does some great things, but the current doc does not describe what the current package does. For example : the funcrtion binding a dtabase table to a R object does nt return this R proxy object, as described, but, as a side effect, creates a R object having the same name as the table in the top-level environment. Therefore, both packages have to be enhanced. To my na?ve eyes, it seeme to me that the ODBC specificaation is a good starting point, but I may be wrong. IMHO, we'd better stick to an early ODBC specification (2.0 or 3.0), in order to avoid too specific features ...
At some point it is better to rebuild from the ground up some of these drivers. My current plans is to update the RODBC and Duncan Temple Lang has expressed interest in continuing Tim's RPgSQL driver.
Dreat ! However, I think tht wrapping those two (and other ?) drivers in a common interface is still the way to go ...
Which driver are you most interested in?
Ah ! That's a hard one : I use mostly PostgreSQL for many reasons, but ODBC is, IMHO, the most important interface : it is currently the only DB interface specification close enough to a cross-platform standard. As much as I dislike some points of the specification, I feel that this interface gives the most cross-platforms interoperability. Furthermore, even as a PostgreSQL die-hard, I have sometimes to use other datasources. ODBC is quite useful in this case. Therefore, I would vote for an ODBC driver as the highest priority. However, the proxu object concept of RPgSQL is quite interesting, and I wonder if such an interface can be build on top of ODBC : if so, my vote would go to it. Sincerely, Emmanuel Charpentier
Emmanuel Charpentier