Re: [PATCHES] PL instrumentation plugin and Rendezvous variable - Mailing list pgsql-hackers

From korryd@enterprisedb.com
Subject Re: [PATCHES] PL instrumentation plugin and Rendezvous variable
Date
Msg-id 1155672753.7217.112.camel@sakai.localdomain
Whole thread Raw
In response to Re: [PATCHES] PL instrumentation plugin and Rendezvous variable support - version 2  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
<blockquote type="CITE"><pre>
<font color="#000000">Applied with a few small changes --- I renamed the GUC variables after a</font>
<font color="#000000">suggestion by Simon Riggs, and fixed things so that</font>
<font color="#000000">backend_load_libraries could actually do something useful (you had it as</font>
<font color="#000000">PGC_POSTMASTER, making it effectively no more flexible than the existing</font>
<font color="#000000">preload_libraries list).</font>
</pre></blockquote><br /> 'Doh! That was a cut/paste error on my part.  Thanks.<br /><br /><blockquote
type="CITE"><pre>
<font color="#000000">The only change that will directly impact your code is that I thought</font>
<font color="#000000">it'd be better to provide plpgsql_exec_error_callback and</font>
<font color="#000000">exec_assign_expr as separate fields instead of arguments to func_setup,</font>
<font color="#000000">viz</font>

<font color="#000000">    if (*plugin_ptr)</font>
<font color="#000000">    {</font>
<font color="#000000">        (*plugin_ptr)->error_callback = plpgsql_exec_error_callback;</font>
<font color="#000000">        (*plugin_ptr)->assign_expr = exec_assign_expr;</font>

<font color="#000000">        if ((*plugin_ptr)->func_setup)</font>
<font color="#000000">            ((*plugin_ptr)->func_setup)(estate, func);</font>
<font color="#000000">    }</font>

<font color="#000000">I'm not totally wedded to this if you don't like it, but my thought was</font>
<font color="#000000">that passing these as arguments to func_setup would mean a lot of pain</font>
<font color="#000000">anytime we wanted to change the set of function pointers provided:</font>
<font color="#000000">every plugin would need textual changes whether it actually used these</font>
<font color="#000000">functions or not.</font>
</pre></blockquote><br /> Good idea, those two function pointers are sort of necessary-evil required only by the
debuggerplugin (other plugins presumably won't need them).<br /><br /><blockquote type="CITE"><pre>
 
<font color="#000000">> I have not implemented any support for unloading shared libraries.  Once</font>
<font color="#000000">> we've finalized the design for rendezvous variables, I'll submit a</font>
<font color="#000000">> separate documentation patch.</font>

<font color="#000000">I added docs for the GUC variables but didn't do more than that.  I</font>
<font color="#000000">think the code comments are probably sufficient as far as rendezvous</font>
<font color="#000000">variables and PLpgSQL_plugin go ... did you have something else in mind?</font>
</pre></blockquote><br /> I'll look around the existing documentation to see if I can find an appropriate place, but we
don'treally have an implementor's guide.<br /><br /> Thanks for your help and suggestions.<br /><br />             --
Korry<br/><table cellpadding="0" cellspacing="0" width="100%"><tr><td><br /><br /> --<br />   Korry Douglas    <a
href="mailto:korryd@enterprisedb.com">korryd@enterprisedb.com</a><br/>   EnterpriseDB      <a
href="http://www.enterprisedb.com">http://www.enterprisedb.com</a></td></tr></table>

pgsql-hackers by date:

Previous
From: mdean
Date:
Subject: Re: BugTracker (Was: Re: 8.2 features status)
Next
From: "Jaime Casanova"
Date:
Subject: Re: insert/update/delete returning and rules