| 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: | Whole Thread | Raw Message | 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/
| 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 | 
| 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 |