Received: from wallace.ece.rice.edu (root@wallace.ece.rice.edu [128.42.12.154]) by hub.org (8.9.3/8.9.3) with ESMTP id LAA32223 for ; Thu, 10 Feb 2000 11:34:58 -0500 (EST) (envelope-from reedstrm@wallace.ece.rice.edu) Received: by wallace.ece.rice.edu via sendmail from stdin id (Debian Smail3.2.0.102) for pgsql-interfaces@postgresql.org; Thu, 10 Feb 2000 10:34:50 -0600 (CST) Date: Thu, 10 Feb 2000 10:34:50 -0600 From: "Ross J. Reedstrom" To: Karel Zak - Zakkr Cc: Bryan White , pgsql-interfaces@postgresql.org Subject: Re: [INTERFACES] The persistance of C functions Message-ID: <20000210103450.A8610@rice.edu> References: <00bb01bf7344$fe1dcf00$2dd260d1@arcamax.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii User-Agent: Mutt/1.0i In-Reply-To: ; from zakkr@zf.jcu.cz on Thu, Feb 10, 2000 at 10:42:29AM +0100 On Thu, Feb 10, 2000 at 10:42:29AM +0100, Karel Zak - Zakkr wrote: > > On Wed, 9 Feb 2000, Bryan White wrote: > > > If I use CREATE FUNCTION for a C function in a .so file and then use the > > function and then change and recompile the function, what steps are needed > > to see the change? > > > > As I see it the options are: > > A: do nothing, the function is reloaded on every invocation. > > B: Reopen the connection to the backend > > C: Restart the postmaster > > > > I suspect B is correct but I would like to hear someone confirm it. > > > 'B' is right - the postgreSQL not has any persisten cache for this, and > if you restart connection a backend reload this information again. > > Or you can drop/(re)create a function, it is total safe solution. Not _totally_ safe: if you've got anything that refers to that function, like a user defined type definition, drop/(re)create will change the function's oid in the pg_proc table, causing errors when the old function is looked up. Hmm, an ALTER FUNCTION command might be nice... Ross -- Ross J. Reedstrom, Ph.D., NSBRI Research Scientist/Programmer Computer and Information Technology Institute Rice University, 6100 S. Main St., Houston, TX 77005