■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
Postgres版のオブジェクト比較結果の補足欄について 2022/10/28 11:18 OB 4
SI Object Browser for Postgres 22で、オブジェクト比較機能について質問です。

オブジェクト比較結果のうち一部のFUNCTIONについて、それぞれのDBでソースコードが同じでも比較結果が比較1のみ、比較2のみ存在すると扱われています。
比較結果の補足①の内容が異なるために起きているのではないかと思いますが、補足①、補足②についてヘルプに具体的な説明がないので理由がわからない状況です。

補足①、補足②に表示される内容について分かる方がいらっしゃいましたら教えて頂けないでしょうか。
OBサポートです。

■オブジェクト比較の補足欄について
マニュアル等に明確な記載がされておらず、誠に申し訳ありません。
SI Object Browserのオブジェクト比較の補足欄は
通常下記項目を表示いたします。

・補足①
引数の型

・補足②
戻り値の型

何卒よろしくお願い申し上げます。
ご回答ありがとうございます。

比較したDBではFUNCTIONのソースコードに差異はありませんでした。やはりオブジェクト比較結果は差異有(補足①で片方の引数が結果異なる)なので調べてみましたが、ソースコードの引数に複合型を使用していると、比較がうまく機能していないのではないかと思います。

FUNCTIONの引数に指定している複合型のオブジェクトは、pg_typeに個別で登録されたもので、比較した環境では、oidがそれぞれ異なっていました。ObjectBrowserの内部仕様はわかりませんが、補足①の引数の名称取得に比較先1の情報を使って比較2の名称を取得したために、比較結果が異なり、差異ありと判断しているのではないかと推測しております。

確認して頂ければと思います。
OBサポートです。
本件、情報提供いただき誠にありがとうございます。

■SI Object Browserの想定するデータ型
お問い合わせ頂いた事象につきまして、弊社環境でも再現を確認いたしました。

SI Object Browserのオブジェクト比較においては
PotgreSQLが既定で定義するデータ型を想定しているため
create typeによって新規作成したデータ型を同じ型として判定できていないことが原因と考えられます。
⇒厳密には、ご指摘いただいたようにoidの異なる引数について正しく比較を行えていないことが原因と考えられます。

例)
比較先1:
複合型:complex_sampleという名前でtypeオブジェクトを作成

比較先2:
比較先1と同名・同じソースでcomplex_sampleを作成

⇒それぞれの環境でcomplex_sampleを引数にもつ同じソースの関数を生成し、比較を行うと
比較先1と比較先2で異なるoidを持つ引数(引数の異なる関数)として比較される


本事象につきましては、
現状製品の内部動作的に回避ができないため、
同一のfunctionについても異なるfunctionとして差分が表示されてしまいます。

大変ご不便ご迷惑をおかけしてしまい、誠に申し訳ありません。
本件、開発に情報連携した上で、動作の改善を検討させていただきます。

何卒よろしくお願い申し上げます。
ご確認ありがとうございます。

再現できた旨、承知しました。

一部の結果に問題があると比較結果全体を信用することができないのでぜひとも修正の検討をお願いします。

対応ありがとうございました。