Thread: Testing for a shared library
Hi, Is there any way of checking to see if a particular shared library is installed? eg. select is_shared_library('$libdir/tsearch2'); If not, can we please have one :D This will greatly help in GUI apps like phpPgAdmin... Chris
> -----Original Message----- > From: pgsql-hackers-owner@postgresql.org > [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of > Christopher Kings-Lynne > Sent: 07 September 2005 09:03 > To: PostgreSQL-development > Subject: [HACKERS] Testing for a shared library > > Hi, > > Is there any way of checking to see if a particular shared library is > installed? > > eg. select is_shared_library('$libdir/tsearch2'); How well do you know the library you are looking for? You could just try creating a function from it and seeing if it fails. Regards, Dave.
>>Is there any way of checking to see if a particular shared library is >>installed? >> >>eg. select is_shared_library('$libdir/tsearch2'); > > > How well do you know the library you are looking for? You could just try > creating a function from it and seeing if it fails. I know it pretty well, but it seems kind of lame to have to create the function and test for it, especialyl if you have a non-error tolerating environment. Plus, you have to know what exported functions it has and you have to worry about creating any input and return types, etc. Chris
> -----Original Message----- > From: Christopher Kings-Lynne [mailto:chriskl@familyhealth.com.au] > Sent: 07 September 2005 09:16 > To: Dave Page > Cc: PostgreSQL-development > Subject: Re: [HACKERS] Testing for a shared library > > >>Is there any way of checking to see if a particular shared > library is > >>installed? > >> > >>eg. select is_shared_library('$libdir/tsearch2'); > > > > > > How well do you know the library you are looking for? You > could just try > > creating a function from it and seeing if it fails. > > I know it pretty well, but it seems kind of lame to have to > create the > function and test for it, especialyl if you have a non-error > tolerating > environment. Yeah, but if you need a quick hack... > Plus, you have to know what exported functions it has and you have to > worry about creating any input and return types, etc. That's why I asked how well you know the library :-) /D
As you know, presence of shared library doesn't mean precense of module in db :). You can try selecting: # select count(*) from pg_opclass where opcname = 'tsvector_ops'; or, more general, # select count(*) from pg_proc where probin = '$libdir/tsearch2'; But not all modules adds new function... Christopher Kings-Lynne wrote: > Hi, > > Is there any way of checking to see if a particular shared library is > installed? > > eg. select is_shared_library('$libdir/tsearch2'); > > If not, can we please have one :D > > This will greatly help in GUI apps like phpPgAdmin... > > Chris > > ---------------------------(end of broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/
No, I want to check that the shared library exists (eg. the slony libraries) BEFORE executing the slony sql script that creates all the objects. Chris Teodor Sigaev wrote: > As you know, presence of shared library doesn't mean precense of module > in db :). > > > You can try selecting: > > # select count(*) from pg_opclass where opcname = 'tsvector_ops'; > > or, more general, > > # select count(*) from pg_proc where probin = '$libdir/tsearch2'; > > > But not all modules adds new function... > > > > > Christopher Kings-Lynne wrote: > >> Hi, >> >> Is there any way of checking to see if a particular shared library is >> installed? >> >> eg. select is_shared_library('$libdir/tsearch2'); >> >> If not, can we please have one :D >> >> This will greatly help in GUI apps like phpPgAdmin... >> >> Chris >> >> ---------------------------(end of broadcast)--------------------------- >> TIP 2: Don't 'kill -9' the postmaster > >
Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes: > Is there any way of checking to see if a particular shared library is > installed? Try to LOAD it, perhaps. regards, tom lane