Function Dialog

目次

Function Dialog#

Function ダイアログを使用して、ファンクションを定義します。 ファンクションをドロップして再作成した場合、新しいファンクションは古いファンクションと同じエンティティではありません。古いファンクションを参照する既存のルール、ビュー、トリガーなどを削除する必要があります。

Function ダイアログは、次のダイアログタブを介してファンクションの開発を編成します。 General 、 Definition 、 Code 、 Options 、 Parameters 、および Security 。 [ * SQL* ]タブには、ダイアログ選択によって生成されたSQLコードが表示されます。

ファンクションダイアログの[一般]タブ

[ General ]タブのフィールドを使用して、ファンクションを特定します。

  • Name フィールドを使用して、ファンクションの説明的な名前を追加します。名前は pgAdmin ツリーコントロールに表示されます。

  • Owner の横にあるドロップダウンリストボックスを使用して、ファンクションを所有するロールの名前を選択します。

  • Schema の横にあるドロップダウンリストボックスを使用して、ファンクションを作成するスキーマを選択します。

  • ファンクションに関するメモを コメント フィールドに保存します。

[ 定義 ]タブをクリックして続行します。

ファンクションダイアログ定義タブ

Definition タブのフィールドを使用して、ファンクションを定義します。

  • Custom return type? スイッチを移動して、ユーザー定義の戻り型を提供します。

  • Return type の横にあるドロップダウンリストボックスを使用して、ファンクションによって返されるデータ型がある場合は選択します。 Custom return type? が有効になっている場合、このフィールドは入力テキストフィールドに変更されます。

  • 言語 の横にあるドロップダウンリストボックスを使用して、実装言語を選択します。デフォルトは sql です。

  • Arguments のフィールドを使用して、引数を定義します。 Add アイコン+をクリックして、引数のパラメーターと値を設定します。

    • Data type フィールドのドロップダウンリストボックスを使用して、データ型を選択します。

    • Mode フィールドのドロップダウンリストボックスを使用して、モードを選択します。入力パラメーターとして IN を選択します。出力パラメーターに OUT を選択します。入力パラメーターと出力パラメーターの両方に INOUT を選択します。または、 VARIADIC を選択してVARIADICパラメーターを指定します。

    • Argument Name フィールドに引数の名前を入力します。

    • [ デフォルト値 ]フィールドで引数のデフォルト値を指定します。

Add アイコン+をクリックして、別の引数を定義します。引数を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

[ * Code * ]タブをクリックして続行します。

ファンクションダイアログのコードタブ
  • Code フィールドを使用して、ファンクションが呼び出されたときに実行されるコードを書き込みます。

[ オプション ]タブをクリックして続行します。

ファンクションダイアログのオプションタブ

Options タブのフィールドを使用して、ファンクションのアクションを説明または変更します。

  • ボラティリティ の横にあるドロップダウンリストボックスを使用して、次のいずれかを選択します。 VOLATILE はデフォルト値です。

    • VOLATILE は、単一のテーブルスキャン内でもファンクション値が変更される可能性があることを示し、最適化はできません。

    • STABLE は、ファンクションがデータベースを変更できず、単一のテーブルスキャン内で、同じ引数値に対して一貫して同じ結果を返すことを示します。

    • IMMUTABLE は、ファンクションがデータベースを変更できず、同じ引数値が指定された場合に常に同じ結果を返すことを示します。

  • Returns a Set? スイッチを移動して、ファンクションが複数の行を含むセットを返すかどうかを示します。デフォルトは いいえ です。

  • Strict? スイッチを移動して、引数のいずれかがNULLの場合、ファンクションが常にNULLを返すかどうかを示します。 Yes の場合、NULL引数がある場合、ファンクションは実行されません。代わりに、NULL結果が自動的に想定されます。デフォルトは いいえ です。

  • Security of promoter? スイッチを移動して、ファンクションを作成したユーザーの特権で実行することを指定します。デフォルトは いいえ です。

  • Window? スイッチを移動して、ファンクションがプレーンファンクションではなくウィンドウファンクションであることを示します。デフォルトは いいえ です。これは、現在Cで書かれたファンクションにのみ役立ちます。既存のファンクション定義を置き換える場合、WINDOW属性は変更できません。 CREATE FUNCTIONコマンドの詳細については、次の場所にあるPostgreSQLコアドキュメントを参照してください。

  • 推定コスト フィールドを使用して、ファンクションの推定実行コストを表す正の数をcpu_operator_costの単位で指定します。ファンクションがセットを返す場合、これは返された行ごとのコストです。

  • 推定行数 フィールドを使用して、クエリプランナーがファンクションが返すと予想される推定行数を与える正の数を指定します。これは、ファンクションがセットを返すように宣言されている場合にのみ許可されます。デフォルトの想定は1000行です。

  • Leak promote? スイッチを移動して、ファンクションに副作用があるかどうかを示します。デフォルトは いいえ です。このオプションは、スーパーユーザーのみが設定できます。

  • サポートファンクション フィールドを使用して、ファンクションに使用するプランナーサポートファンクションを指定します。

Parameters タブをクリックして続行します。

ファンクションダイアログのパラメータータブ

Parameters タブのフィールドを使用して、ファンクションが呼び出されたときに適用される設定を指定します。 Add アイコン+をクリックして、テーブルに Name / Value フィールドを追加します。

  • [ パラメーター ]パネルの[ 名前 ]列のドロップダウンリストボックスを使用して、パラメーターを選択します。

  • Value フィールドを使用して、選択した変数に関連付けられる値を指定します。このフィールドは状況依存です。

[ セキュリティ ]タブをクリックして続行します。

ファンクションダイアログのセキュリティタブ

[ セキュリティ ]タブを使用して、特権を割り当て、セキュリティラベルを定義します。

Privileges パネルを使用して、ファンクションの使用特権をロールに割り当てます。

  • Grantee フィールドのドロップダウンリストボックスからロールの名前を選択します。

  • Privileges フィールド内をクリックします。 1つ以上の特権の左側のチェックボックスをオンにして、選択した特権を指定したユーザーに付与します。

  • 特権を付与するデフォルトの付与者である現在のユーザーが Grantor フィールドに表示されます。

Add アイコン+をクリックして、追加の特権を割り当てます。特権を破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

Security Labels パネルを使用して、ファンクションに適用されるセキュリティラベルを定義します。 Add アイコン+をクリックして、各セキュリティラベル選択を追加します。

  • Provider フィールドにセキュリティラベルプロバイダーを指定します。名前付けプロバイダーをロードし、提案されたラベル付け操作に同意する必要があります。

  • Security Label フィールドにセキュリティラベルを指定します。特定のラベルの意味は、ラベルプロバイダーの裁量にあります。 PostgreSQLは、ラベルプロバイダーがセキュリティラベルを解釈する必要があるかどうか、またはその方法に制限を設けません。それらを保存するためのメカニズムを提供するだけです。

Add アイコン+をクリックして、追加のセキュリティラベルを割り当てます。セキュリティラベルを破棄するには、行の左側にあるゴミ箱アイコンをクリックし、 Delete Row ポップアップで削除を確認します。

[ * SQL* ]タブをクリックして続行します。

ファンクション ダイアログの入力により、 SQLコマンドが生成されます。以下の例を参照してください。確認には * SQL* タブを使用します。再度アクセスするか、タブを切り替えて、 SQLコマンドを変更します。

例#

以下は、 ファンクション ダイアログでの選択によって生成されたsqlコマンドの例です。

ファンクションダイアログのSQLタブ

この例では、 hire_salesmen という名前の plpgsql ファンクションを作成する方法を示しています。ファンクションには、3つの列p_ename、p_sal、およびp_commがあります。

  • 情報 ボタンiをクリックして、オンラインヘルプにアクセスします。

  • Save ボタンをクリックして、作業を保存します。

  • Click the Close button to exit without saving work.

  • Reset ボタンをクリックして、構成パラメーターを復元します。