record説明dblinkはリモートデータベースで問い合わせ(通常はSELECTですが行を返す任意のSQLコマンドを行うことができます)を実行します。2つのtext型の引数が与えられた場合、一番目の引数はまず永続接続の名前を検索するために使われます。見つかれば、コマンドがその接続上で実行されます。見つからなければ、一番目の引数はdblink_connect用の接続情報文字列として扱われ、このコマンド実行時と同様に指定された接続が開きます。引数connname使用する接続の名前です。無名の接続を使用する場合はこのパラメータを省略します。connstr上でdblink_connectで説明した接続情報文字列です。fooといった、リモートデータベースで実行させるSQL問い合わせです。fail_on_error真(省略時のデフォルト)の場合、接続のリモート側で発生したエラーによりローカル側でもエラーが発生します。偽の場合リモート側のエラーはローカル側にはNOTICEとして報告され、この関数は行を返しません。戻り値この関数は問い合わせにより生成された行を返します。dblinkは任意の問い合わせで使用することができますので、これは特定の列集合を指定するのではなく、record型を返すものと宣言されています。これは呼び出し元の問い合わせで想定列集合を指定しなければならないことを意味します。ないとPostgreSQLは何が想定されているかわかりません。'bytea%';FROM句の「別名」部分は関数が返す列名とその型を指定しなければなりません。(別名内の列名の指定はSQL標準の構文ですが、列の型の指定はPostgreSQLの拡張です。これによりシステムは、関数を実行する前に、*がどのように展開されるか、WHERE句内のpronameが何を参照するかを理解します。実行時、リモートデータベースから返る実際の問い合わせの結果がFROM句で示された列数と異なる場合エラーが発生します。列名は一致する必要はありません。dblinkは正確な型一致も強制しません。返されるデータ文字列がFROM句で宣言された列型の有効な入力である限り成功します。前もって判明している問い合わせをdblinkで使用する簡便な方法はビューを作成することです。これにより問い合わせの度に列型の情報を記載することなく、ビュー内に隠すことができます。dblink_exec。