Re: [PATCHES] libpq type system 0.9a

From: Andrew Chernow <ac(at)esilo(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Martijn van Oosterhout <kleptog(at)svana(dot)org>, Greg Sabino Mullane <greg(at)turnstep(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [PATCHES] libpq type system 0.9a
Date: 2008-04-09 03:46:25
Message-ID: 47FC3C11.5040800@esilo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

>
> Well, I can get it working with a very small patch. We actually don't
> need very much in libpq. Although, making it somehow generic enough to
> be useful to other extensions is a bit tricky. Please, suggestions
> would be helpful.
>
> Below is a raw shell of an idea that will work for libpqtypes. Start by
> removing our entire patch and then add the below:
>
> // libpqtypes only needs the below. could add op_reset,
> // op_linkerror, etc...
> enum
> {
> HOOK_OP_CREATE,
> HOOK_OP_DESTROY
> };
>
> struct pg_conn
> {
> // everything currently in a pg_conn
> // ...
>
> // libpqtypes needs HOOK_OP_DESTROY, a ptr to hookData
> // is always used in case the hooklib needs to allocate
> // or reallocate the hookData.
> void *hookData;
> int (*connHook)(PGconn *conn, int op, void **hookData);
> }
>
> struct pg_result
> {
> // everything currently in a pg_result
> .....
>
> // libpqtypes needs create & destroy
> // conn is NULL for destroy
> void *hookData;
> int (*resultHook)(PGconn *conn, PGresult *result,
> int op, void **hookData);
> }
>

There is no need to pass hookData to the hook function. libpqtypes already
accesses PGconn and PGresult directly so it can just access the hookData member.

int (*connHook)(PGconn *conn, int op);
int (*resultHook)(PGconn *conn, PGresult *result, in top);

--
Andrew Chernow
eSilo, LLC
every bit counts
http://www.esilo.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2008-04-09 03:48:09 Re: Calling GSoc Mentors
Previous Message Tom Lane 2008-04-09 03:42:12 Re: Concurrent psql API

Browse pgsql-patches by date

  From Date Subject
Next Message Jeff Davis 2008-04-09 05:29:12 Re: [PATCHES] libpq type system 0.9a
Previous Message Tom Lane 2008-04-09 03:42:12 Re: Concurrent psql API