From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org> |
Subject: | Removing support for < 7.4 servers |
Date: | 2013-08-20 10:53:42 |
Message-ID: | 52134AB6.2050301@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Hi,
I've been browsing the code to figure out how we could use
protocol-level cursors, instead of DECLARE/FETCH, to make the default
behavior of the driver nicer. However, all the different ways a query
can be prepared and executed is making my head explode. The driver
supports many completely obsoleted ways to do things, for the sake of
supporting 7.3 era servers which didn't support the extended query
protocol. There is even some code to support 6.2-era servers.
I'd like to rip out all the support for pre-7.4 servers, including
protocol version 2, to simplify the code. Any objections? If someone is
running a really old server version, I think it's fair to insist that
they also use a somewhat old version of the driver. (the only thing
anyone should be doing with 7.3 servers today is pg_dump, to be honest)
I pushed a patch to github to do that, to see what the effect is to the
code:
https://github.com/hlinnaka/psqlodbc/commit/d5cbe6e62a72d87200217b73360a2c515a2fec79
$ git diff --stat master..require74
columninfo.c | 51 ++-
columninfo.h | 2 +-
connection.c | 766 +++++++++----------------------------
connection.h | 60 +--
convert.c | 235 ++----------
descriptor.c | 10 -
dlg_specific.c | 82 ++--
dlg_specific.h | 8 +-
dlg_wingui.c | 24 --
execute.c | 54 +--
info.c | 1148
+++++++++++++++++---------------------------------------
info30.c | 47 +--
misc.c | 4 +-
multibyte.c | 33 +-
odbcapi.c | 6 +-
odbcapiw.c | 3 +-
options.c | 5 -
parse.c | 90 ++---
pgtypes.c | 43 +--
psqlodbc.h | 9 -
psqlodbc.rc | 22 --
qresult.c | 113 ++----
resource.h | 5 -
results.c | 167 ++++-----
socket.c | 34 +-
socket.h | 3 -
statement.c | 39 +-
statement.h | 6 -
28 files changed, 784 insertions(+), 2285 deletions(-)
That's just the beginning though. I think we can get rid of much of the
"premature execution" stuff, replacing it with the v3 protocol-level
Describe functionality. The driver already uses that in many cases, but
not all. That requires some more investigation and thorough testing of
all the corner cases, though.
Timingwise, I'm thinking we would do this in the first 9.4 version of
the driver. The server guys will put out the 9.3 release in the next
couple of weeks, so we should put out a stable 9.3 version of the ODBC
driver very soon. But after that, we can do more drastic changes again.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Crawford | 2013-08-20 16:42:49 | Re: Removing support for < 7.4 servers |
Previous Message | Heikki Linnakangas | 2013-08-20 04:50:37 | Re: ODBC build broken on Windows with commit |