Removing support for < 7.4 servers

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

Responses

Browse pgsql-odbc by date

  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