Let's drop V2 protocol
Marko Kreen <markokr@gmail.com>
From: Marko Kreen <markokr@gmail.com>
To: Kyotaro HORIGUCHI <horiguchi.kyotaro@oss.ntt.co.jp>
Cc: greg@2ndquadrant.com, pgsql-hackers@postgresql.org, mmoncure@gmail.com, shigeru.hanada@gmail.com
Date: 2012-02-24T13:52:10Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix COPY FROM for null marker strings that correspond to invalid encoding.
- e8476f46fc84 9.2.0 cited
-
Improve labeling of pg_test_fsync open_sync test output.
- 2bbd88f8f841 9.2.0 cited
On Fri, Feb 24, 2012 at 02:11:45PM +0200, Marko Kreen wrote: > On Fri, Feb 24, 2012 at 07:53:14PM +0900, Kyotaro HORIGUCHI wrote: > > - I have no idea how to do test for protocol 2... > > I have a urge to test with "rm fe-protocol2.c"... Now I tested with 7.3.21 and the non-error case works fine. Error state does not - and not because patch is buggy, but because it has never worked - V2 protocol has no working concept of skipping packets because pending error state. On OOM, V2 code does: conn->inStart = conn->inEnd; and hopes for the best, but it does not work, because on short results it moves past ReadyForQuery, on long results it moves into middle of some packet. With user-specified row processor, we need to have a working error state handling. With some surgery, it's possible to introduce something like if (conn->result->resultStatus != PGRES_TUPLES_OK) into various places in the code, to ignore but still parse the packets. But it will be rather non-trivial patch. So could we like, uh, not do it and simply drop the V2 code? Ofcourse, the row-processor patch does not make the situation worse, so we could just say "don't use custom row processor with V2 servers", but it still raises the question: "Does anyone have pre-7.4 servers around and if yes, then why does he need to use 9.2 libpq to access those?" -- marko