From: | Martijn van Oosterhout <kleptog(at)svana(dot)org> |
---|---|
To: | Igor Shevchenko <igor(at)carcass(dot)ath(dot)cx> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: function callback |
Date: | 2006-02-15 14:24:12 |
Message-ID: | 20060215142412.GA31391@svana.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, Feb 15, 2006 at 03:47:54PM +0200, Igor Shevchenko wrote:
> Here's a problem I'm facing:
>
> I have a "mimetype" table with all mimetypes my app has to deal with. I'm in a
> process of adding a fulltext indexing (tsearch2) into my DB and I want to
> specify a per-mimetype conversion function which would convert corresponding
> data into a text suitable for indexing. PostgreSQL has a "regprocedure"
> datatype (an alias to OID?) which can be added as a column to my "mimetype"
> table but I can't find a way to execute a function by regprocedure from
> pl/pgsql. Is there any way to do it except writing my own "C" function ? Or
> maybe I'd better off adding a "text" field for function name and calling it
> from pl/pgsql with EXECUTE "string" ?
The easy answer is: not really. regprocedure is just a way to pretty
print the name of a function. PostgreSQL doesn't have the concept of a
function pointer. You'd probably be better off storing the name of the
function and building a string to EXECUTE.
If you're really desparate you could try making a postgres function
that uses OidFunctionCalln but that just opens the door to all sorts of
hacks...
Have a nice day,
--
Martijn van Oosterhout <kleptog(at)svana(dot)org> http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-02-15 14:49:57 | Re: Does PG really lack a time zone for India? |
Previous Message | Igor Shevchenko | 2006-02-15 13:47:54 | function callback |