Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory - Mailing list pgsql-interfaces

From Tom Lane
Subject Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory
Date
Msg-id 10208.950601580@sss.pgh.pa.us
Whole thread Raw
In response to Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory  (Joel Reed <jreed@support.ddiworld.com>)
List pgsql-interfaces
Joel Reed <jreed@support.ddiworld.com> writes:
Tom> In the long run we'll probably be moving to some more-modern interface
Tom> design like CORBA, which should help to address performance concerns
Tom> like these.

> how would CORBA help?

Bearing in mind that I know very little about CORBA ;-), I believe the
main way it'd help us in this particular area is that it provides
support for platform-independent transmission of binary datatypes.
For example, you send an integer, you get an integer; if byte-swapping
is needed it happens automatically and you don't have to think about it.
This'd be a big win performance-wise compared to Postgres' current
approach of converting everything to ASCII strings and then having to
convert back in client code.

Now I realize that you seemed to be concerned about programming
convenience as much as shaving cycles.  I don't know enough about CORBA
to say if it helps much in that regard; perhaps someone else can answer?

BTW, I do not intend to imply that moving Postgres to CORBA is a
foregone conclusion.  A couple of people have argued for it, but
not much has been done yet; the door is certainly still open to
other ideas.  I'm just trying to point out that a complete replacement
of libpq with some other API might be a better long-term answer than
nibbling away at the edges of the API model that libpq provides.
        regards, tom lane


pgsql-interfaces by date:

Previous
From: Nathan Gevaerd Colossi
Date:
Subject: ...
Next
From: Michael Meskes
Date:
Subject: Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory