[pgsql-jp: 29011] Re: トリガプロシジャーについて

TFL)久村 孝之 hisamura.takayuki @ tfl.fujitsu.com
2003年 2月 12日 (水) 08:52:01 JST


油井様
こんにちは。久村です。

> There are more complex examples in src/test/regress/regress.c and in
contrib/spi.
> らしいです。ソースみた方が早いと思うので書くまでもないかも知れませんが...
複雑な例を見ていませんでした。
SPIを利用すればできそうですね。ソースを参考にしてチャレンジしてみます。

ご助言ありがとうございました。

以上
----- Original Message -----
From: "Makoto,Yui" <yuin @ bb.din.or.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, February 11, 2003 7:13 PM
Subject: [pgsql-jp: 29008] Re: トリガプロシジャーについて


> 油井です。
>
> On Mon, 10 Feb 2003 13:11:57 +0900
> TFL)久村 孝之 <hisamura.takayuki @ tfl.fujitsu.com> wrote:
>
> > テーブルの更新後にトリガを使用して、自作のC言語関数を呼び出している
> > のですが、このときC言語関数に更新行のデータを渡すことは可能でしょう
> > か。
>
> 可能です。
>
> > マニュアルは以下を参照しました。
> >  http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/triggers.html
>
> There are more complex examples in src/test/regress/regress.c and in
contrib/spi.
> らしいです。ソースみた方が早いと思うので書くまでもないかも知れませんが...
>
> -----------------------------------------------------
>
> trigtuple = trigdata->tg_newtuple;
>
> rel = trigdata->tg_relation;
> tupdesc = rel->rd_att;
>
> trigger = trigdata->tg_trigger;
> args = trigger->tgargs;
>
>     /* Connect to SPI manager */
> SPI_connect();
>
> for( i=0;i<4;i++){
>
> /* get index of column in tuple */
> int attnum = SPI_fnumber(tupdesc, args[i]);
>
> /* Well, the string value of attribute */
> a_vals[i] = SPI_getvalue(trigtuple, tupdesc, attnum);
>   // or (int) DatumGetInt64(SPI_getbinval(... etc
>
> <snip>
>
> ------------------------------------------------------
> な感じです。
> この例トリガで呼び出す関数の引数を指定した場合のもの、です。
>
> > #TriggerData構造体をこのような用途に使うことが、この構造体が用意さ
> >  れているの意図と異なっているような気もしますが。
>
> 他に何かあったでしょうか??
>
>
> +-------------------------------------------------------------------+
> Makoto, Yui <yuin @ bb.din.or.jp>
> Key fingerprint = 6462 E285 97D8 1323 40C4  F9E5 EB0F 9DE6 1713 219E
> +-------------------------------------------------------------------+
>
---------------------------------------------------------------------
久村 孝之
e-mail:hisamura.takayuki @ tfl.fujitsu.com
---------------------------------------------------------------------




pgsql-jp メーリングリストの案内