■SI ObjectBrowser掲示板

ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!discussion
ユーザーのみなさま同士で教え合ったり、アドバイスしたりする暖かい交流の場にしたいと思っていますので、相互協力をよろしくお願いします。なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

※◆のカラーは投稿の対象となる製品に対応しています。【…OB …OBER …全般 ◇…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。




BEFOREトリガーがAFTERトリガーと返される場合がある 2024/10/15 12:46:11
Mur
PostgreSQL版 22.0.1.0 (x64) を使用しています。
この度、BEFOREトリガーがAFTERトリガーと返される場合がある事がありましたので
報告いたします。ご確認頂けますでしょうか?

現象:
トリガーを構成する トリガー名、テーブル名、カラム名(UPDATE OF column_name 句や
WHEN (condition) 句)、実行するトリガーファンクション名のいずれかに「after」が
含まれる場合、BEFORE トリガーが AFTER トリガーとして返される。

経緯:
テーブル名に「after」が含まれるテーブルを作成した後、BEFORE トリガーを作成しました。

作成したトリガーを Object Browser で確認したところ、AFTER トリガーと表示され、
SQLスクリプトを出力した際も AFTER トリガーとして出力されました。

ただし、トリガーの挙動は BEFORE トリガーの挙動でしたので、PgAdmin等の他の
管理ツールで改めてトリガーを確認したところ、BEFORE トリガーと表示されました。

幾つかオブジェクトを作成して Object Browser で確認したところ、前述の通り、
トリガー名、テーブル名、カラム名、トリガーファンクション名のいずれかに「after」
が含まれる場合、BEFORE トリガーが AFTER トリガーとして表示されました。

【SI Object Browser情報】
バージョン : 22.0.1.0 (x64)
プログラムのパス : c:\program files\obp22\obp22.exe

【PostgreSQL情報】
libpq.dllのパス : C:\Program Files\OBP22\libpq.dll

【OS情報】
OS : Windows 10
OSバージョン : 10.0.19045
ユーザ権限 : Administrator
元の文章を引用して返信

Re: BEFOREトリガーがAFTERトリガーと返される場合がある 2024/10/16 10:01:14
OBサポート
OBサポートです。
ご回答が大変遅くなってしまい、誠に申し訳ありません。

■トリガー起動タイミングが不正となる事象
動作について詳細な情報提供いただき、誠にありがとうございます。
お問い合わせの事象に関しまして、弊社側でも同様の事象の再現を確認いたしました。
最新バージョンであるver.23に関しましても同様の障害が発生していることから、
トリガーのDDL解析処理に関して、以前より問題があったものと考えられます。

調査いただきました通り、対象テーブルやトリガー名など、
トリガーのDDLについて`AFTER`のキーワードが含まれる場合に、
解析処理の問題で起動タイミングが書き変わっているものと考えられます。

本件、大変ご不便ご迷惑をおかけしてしまい、誠に申し訳ありません。

■回避策について
現状SI Object Browserの内部的な解析動作に依存する不具合となりますため、
製品側での回避ができない状況となります。
誠に恐れ入りますが対象のトリガーに関しましてはpsqlやpgAdminなどの他ツールでの参照をお願いいたします。

本事象に関しましては、開発側に連携の上で今後の修正を検討させていただきます。

本家、大変ご迷惑をおかけしてしまい、誠に申し訳ありません。
何卒よろしくお願い申し上げます。
元の文章を引用して返信

Re: BEFOREトリガーがAFTERトリガーと返される場合がある 2024/10/16 11:40:27
Mur
ご回答いただきありがとうございます。
製品側での回避ができない状況とのこと承知いたしました。
対象となるトリガーを参照する際は pgAdmin など他のツールも併せて確認する様にいたします。
元の文章を引用して返信