2015-11-19 44 views
6

それは言う: postgreSQLのVARIADIC宣言手段とは何ですか? PostgreSQLの9.3.4のリリースノートで

Ensure that the planner sees equivalent VARIADIC and non-VARIADIC function calls as equivalent (Tom Lane) 

私はPostgreSQLのマニュアルを検索し、それが何であるかの定義を見つけることができませんでした。

私はそれが関数引数(IN、OUT、VARIADIC)のモードになっていることがわかりましたが、その意味を理解できませんでしたか?いつ私はそれを使いたいですか?関数にVARIADICプロパティがある場合、パフォーマンスの面ではどういう意味ですか?

答えて

4

バリデリック関数は、定義されていない引数数を持つ関数であり、多くのプログラミング言語とクエリ言語に存在します。

のPostgreSQLの場合

、あなたがhttp://www.postgresql.org/docs/9.1/static/xfunc-sql.html(引数の可変数を持つ35.4.5 SQL関数。)での例を見つけることができます。

効果的

、VARIADIC 位置のかを越えてすべての実引数あなたは私たちが可変個引数を使用し、その後、パラメータの数がわからない場合は、あなたが

+0

アレイをユーザー定義型にすることはできますか?私はCREATE TYPEで宣言するいくつかの型ですか? – Johnathan

+0

これは私の質問に答えることはできません...私はタイプA:名前テキスト、 給与の整数を持っていると言う...私は配列の型Aにします。Aのすべてのセルが(テキスト、整数)タプルであることを意味します。 .... [(テキスト、整数)、(テキスト、整数)、...] ... VARADICパラメータで行うことはできますか? – Johnathan

+0

@Johnathan variadicパラメータは、配列にユーザー定義の型付き要素を持つことができる場合、その型の要素の可変パラメータを持つこともできることを意味する 'array'型として宣言する必要があります。 variadicパラメータと単純な配列パラメータの違いは、前者の場合、配列要素がその要素が引数リストの追加パラメータであるかのように渡すことができることです。つまり、コモ区切りの値。 –

3

を を書いていたかのように、一次元配列にまとめています。

詳しくは、VARIADIC FUNCTIONS IN POSTGRESQLを参照してください。

がウィキを約Variadic functions参照:コンピュータプログラミングの

を、可変長関数は 不定アリティ、 可変数の引数を受け入れる、すなわち、一方の機能です。可変長関数のサポートは、 プログラミング言語によって大きく異なります。

+0

制限付きでVARIADICを使用できますか?例えば、私はそれが2〜5の整数引数であることを知っています...そしてそれが5以上の場合、それは私に関数not existエラーを与えるはずです。 – Johnathan

+0

@Johnathan: - 私は正しく理解しているとは100%確信していませんが、はい、あなたがパラメータの数を確認して、カウントが希望の数以上であればメッセージを表示できます。 –

関連する問題