--- Teodor Sigaev <teodor@sigaev.ru> wrote:
>
>
> Chris Gamache wrote:
> > Tsearch2 comes with its own tsearch2 trigger function. You pass column
> names to
> > it, and it puts a vanilla tsvector into the column named in TG_ARGV[0]. Not
> > only can you pass column names to it, but you can pass simple functions to
> it
> > as well. This is magical to me. :)
> look at tsvector.c:864
>
> numattr = SPI_fnumber(rel->rd_att, trigger->tgargs[i]);
> if (numattr == SPI_ERROR_NOATTRIBUTE)
> {
> funcoid = findFunc(trigger->tgargs[i]);
> if (funcoid == InvalidOid)
> ereport(ERROR,
> (errcode(ERRCODE_UNDEFINED_COLUMN),
> errmsg("could not find function or field \"%s\"",
> trigger->tgargs[i])));
> continue;
> }
>
> If current args (trigger->tgargs[i]) isn't a column name, then it's a
> function
> name. It's simple :)
Its like a circuit board to Genghis Kahn... :) I still wouldn't be able to
quickly write my own trigger. It occurrs to me that this might be an
opportunity to properly extend tsearch2, though.
I'm sure that the tsearch2 trigger could detect a tsvector type and allow it to
be inserted without modification. That would solve this problem completely! I
can't think of any practical argument against it. It makes sense that others
besides myself would want to selectively weight columns upon insert without
having to write their own custom trigger in C.
CG
__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want.
http://antispam.yahoo.com/tools