I've been looking at a patch provided by Nick Gorham from the unixODBC
effort to make the PostgreSQL ODBC driver support unixODBC better. All
the while I have been wondering what exactly our ODBC driver does support
on Unix systems now.
It is generally claimed that psqlodbc is supposed to work with the iODBC
driver manager, and it is evident that some source files where in fact
copied over from some ancient version of iODBC. However, iODBC has
changed quite a bit since then so I wonder if it would still work.
The major issues involved with "supporting" one driver manager or another
seem to be:
1. Where to get the include files from, and
2. Where to get the routines to read the .ini file from.
On Windows, the answer to both of these questions is "from the system".
On unixish systems we have the following choices in theory:
a) Write/provide your own
b) Get them from an already installed driver manager of choice.
i) Link in the odbcinst library that the driver manager provides
ii) Don't link in the odbcinst library that the driver manager provides,
instead rely on runtime binding to find the routines in the driver
manager. Not sure if that would work.
We currently support (a), and the unixODBC patch I have pretty much wants
us to support (b)(i). So some questions in my mind are:
* Is (a) really useful and reliable at all?
* Is (b)(ii) an option?
* What sort of options do we want to provide to installers about choosing,
e.g., --with-odbc-driver-manager={unixodbc|iodbc|none}?
* Is it reasonable to attempt to support more than one driver manager in
one installation? (probably not, I'd say)
Comments?
--
Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter