From: "Molitor, Stephen L" Date: 2005-03-06T12:08:09+09:00 Subject: plruby bug with postgres 8.0 composite types / ref count leak? ------_=_NextPart_001_01C521F9.AFC31BB4 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I tried using the new postgres composite types features as described in = the new manual. With the following versions: plruby 0.4.3 postgresql 8.0.1 ruby 1.8.2 Mac OS X 10.3.8 (panther) when I run the following in psql: create type t as ( name text ); test=3D# create function f(t) returns integer as '42' language 'plruby'; select f(ROW('a name')); I get the following error: ERROR: catcache reference 0x430388 is not owned by resource owner = Portal However, if I use pl/sql, running this works fine: create function f2(t) returns integer as 'select 42' language sql; select f2(ROW('a name')); I get 42 back. =20 The error appears to be thrown on line 609 in the function = ResourceOwnerForgetCatCacheRef in resowner.c in the postgres 8.0.1 = sources. The only place that this method seems to get called is on line = 1293 in the function ReleaseCatCache in catcache.c. This is called = immediately after it decrements the ref count on the catcache. So = maybe there's some sort of reference count leak or something. I have trouble reproducing it, but using the old syntax with postgres = 7.4.7 I would sometimes get warnings about a catcache leak, the error = saying something about 'catcache ref count has reached -1'. So I'm = guessing the leak has always existing but fails hard with 8.0. Anyway, any help would be appreciated! Steve ------_=_NextPart_001_01C521F9.AFC31BB4--