|
109 | 109 | The other clauses specify optional operator optimization attributes. |
110 | 110 | Their meaning is detailed in <xref linkend="xoper-optimization"/>. |
111 | 111 | </span> |
112 | | -《マッチ度[90.370370]》他の句は演算子最適化用の句(省略可能)です。 |
| 112 | +他の句は演算子最適化用の属性(省略可能)です。 |
113 | 113 | これらの意味は<a class="xref" href="xoper-optimization.html" title="36.15. 演算子最適化に関する情報">36.15</a>で説明されています。 |
114 | 114 | </p><p> |
115 | 115 | <span class="original"> |
|
118 | 118 | as <literal>EXECUTE</literal> privilege on the underlying function. If a |
119 | 119 | commutator or negator operator is specified, you must own those operators. |
120 | 120 | </span> |
121 | | -《マッチ度[95.017794]》演算子を作成するためには、 |
122 | | -引数の型と戻り値の型に対する<code class="literal">USAGE</code>権限と背後にある関数に対する<code class="literal">EXECUTE</code>権限を持たなければなりません。 |
123 | | -交代演算子または否定子演算子を指定する場合は、これらの演算子を所有していなければなりません。 |
| 121 | +演算子を作成するためには、引数の型と戻り値の型に対する<code class="literal">USAGE</code>権限と背後にある関数に対する<code class="literal">EXECUTE</code>権限を持たなければなりません。 |
| 122 | +交換子または否定子演算子を指定する場合は、それらの演算子を所有していなければなりません。 |
124 | 123 | </p></div><div class="refsect1" id="id-1.9.3.72.6"><h2>パラメータ</h2><span class="original"> |
125 | 124 | <title>Parameters</title> |
126 | 125 | </span><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="replaceable"><code>name</code></em></span></dt><dd><p> |
|
160 | 159 | <span class="original"> |
161 | 160 | The commutator of this operator. |
162 | 161 | </span> |
163 | | -この演算子の交代演算子です。 |
| 162 | +この演算子の交換子です。 |
164 | 163 | </p></dd><dt><span class="term"><em class="replaceable"><code>neg_op</code></em></span></dt><dd><p> |
165 | 164 | <span class="original"> |
166 | 165 | The negator of this operator. |
|
202 | 201 | Refer to <xref linkend="xoper"/> and <xref linkend="xoper-optimization"/> |
203 | 202 | for further information. |
204 | 203 | </span> |
205 | | -《機械翻訳》詳細については<a class="xref" href="xoper.html" title="36.14. ユーザ定義の演算子">36.14</a>と<a class="xref" href="xoper-optimization.html" title="36.15. 演算子最適化に関する情報">36.15</a>を参照してください。 |
| 204 | +詳細については<a class="xref" href="xoper.html" title="36.14. ユーザ定義の演算子">36.14</a>と<a class="xref" href="xoper-optimization.html" title="36.15. 演算子最適化に関する情報">36.15</a>を参照してください。 |
206 | 205 | </p><p> |
207 | 206 | <span class="original"> |
208 | 207 | When you are defining a self-commutative operator, you just do it. |
|
211 | 210 | other one, which you haven't defined yet? There are three solutions |
212 | 211 | to this problem: |
213 | 212 | </span> |
214 | | -《機械翻訳》自己可換演算子を定義するときは、単にそれを行います。 |
215 | | -可換演算子のペアを定義するときは、少し厄介です。 |
216 | | -最初に定義されたものが、まだ定義されていないもう一方を参照できるようにするには、どうすればよいのでしょうか?この問題には3つの解決策があります。 |
| 213 | +自己交換演算子を定義するときは、単にそれを行います。 |
| 214 | +交換演算子の対を定義するときは、少し厄介です。 |
| 215 | +最初に定義されたものが、まだ定義されていないもう一方を参照できるようにするには、どうすればよいのでしょうか? |
| 216 | +この問題には3つの解決策があります。 |
217 | 217 |
|
218 | 218 | </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> |
219 | 219 | <span class="original"> |
|
225 | 225 | missing <literal>COMMUTATOR</literal> clause in the first |
226 | 226 | definition. |
227 | 227 | </span> |
228 | | -《機械翻訳》1つ目の方法は、最初の演算子を定義する際に<code class="literal">COMMUTATOR</code>句を省略し、2番目の演算子の定義では、<code class="literal">COMMUTATOR</code>句に最初の演算子を与えるという方法です。 |
229 | | -<span class="productname">PostgreSQL</span>は交代演算子が対になっていることがわかっていますので、2番目の定義を見た時に、自動的に最初の定義に戻ってその未定義になっている<code class="literal">COMMUTATOR</code>句を設定します。 |
| 228 | +1つ目の方法は、最初の演算子を定義する際に<code class="literal">COMMUTATOR</code>句を省略し、2番目の演算子の定義で、<code class="literal">COMMUTATOR</code>句に最初の演算子を与えるという方法です。 |
| 229 | +<span class="productname">PostgreSQL</span>は交換演算子が対になっていることが分かっているので、2番目の定義を見た時に、自動的に最初の定義に戻ってその未定義になっている<code class="literal">COMMUTATOR</code>句を設定します。 |
230 | 230 | </p></li><li class="listitem"><p> |
231 | 231 | <span class="original"> |
232 | 232 | Another, more straightforward way is just to |
|
244 | 244 | operator before it's been filled in, you'll just get an error |
245 | 245 | message. |
246 | 246 | </span> |
247 | | -《機械翻訳》もう 1 つの、より単純な方法は、両方の定義に<code class="literal">COMMUTATOR</code>句を含めることです。 |
| 247 | +もう一つ、より単純な方法は、両方の定義に<code class="literal">COMMUTATOR</code>句を含めることです。 |
248 | 248 | <span class="productname">PostgreSQL</span>が最初の定義を処理し、<code class="literal">COMMUTATOR</code>が存在しない演算子を参照していることに気付いた場合、システムカタログ内にその演算子のダミーエントリを作成します。 |
249 | 249 | このダミーエントリは、演算子名、左右のオペランド型、および所有者に対してのみ有効なデータを持ちます。 |
250 | 250 | <span class="productname">PostgreSQL</span>が現時点で推論できるのはこれだけです。 |
251 | 251 | 最初のオペレータのカタログエントリは、このダミーエントリにリンクします。 |
252 | | -後で2番目の演算子を定義すると、システムは2番目の定義からの追加情報でダミー・エントリを更新します。 |
253 | | -ダミーオペレータを使用する前に入力しようとすると、エラーメッセージが表示されます。 |
| 252 | +後で2番目の演算子を定義すると、システムは2番目の定義からの追加情報でダミーエントリを更新します。 |
| 253 | +追加情報が入力される前にダミー演算子を使用しようとすると、エラーメッセージが表示されます。 |
254 | 254 | </p></li><li class="listitem"><p> |
255 | 255 | <span class="original"> |
256 | 256 | Alternatively, both operators can be defined |
|
259 | 259 | commutator links. It's sufficient to <command>ALTER</command> |
260 | 260 | either one of the pair. |
261 | 261 | </span> |
262 | | -《機械翻訳》あるいは、両方の演算子を<code class="literal">COMMUTATOR</code>句なしで定義し、その後で<code class="command">ALTER OPERATOR</code>を使用してそれらの交換子リンクを設定することができます。 |
263 | | -どちらか一方のペアを<code class="command">ALTER</code>することで十分です。 |
| 262 | +あるいは、両方の演算子を<code class="literal">COMMUTATOR</code>句なしで定義し、その後で<code class="command">ALTER OPERATOR</code>を使用して、それらの交換子リンクを設定できます。 |
| 263 | +対のどちらか一方を<code class="command">ALTER</code>することで十分です。 |
264 | 264 | </p></li></ul></div><p> |
265 | 265 |
|
266 | 266 | <span class="original"> |
267 | 267 | In all three cases, you must own both operators in order to mark |
268 | 268 | them as commutators. |
269 | 269 | </span> |
270 | | -《機械翻訳》3つの場合すべてにおいて、オーダーで両方の演算子を所有して、それらを交換子としてマークする必要があります。 |
| 270 | +3つの場合すべてにおいて、それらを交換子として印付けするために両方の演算子を所有していることが必要です。 |
271 | 271 | </p><p> |
272 | 272 | <span class="original"> |
273 | 273 | Pairs of negator operators can be defined using the same methods |
274 | 274 | as for commutator pairs. |
275 | 275 | </span> |
276 | | -《機械翻訳》否定演算子のペアは、交換演算子のペアと同じ方法で定義できます。 |
| 276 | +否定子演算子の対は、交換子の対と同じ方法で定義できます。 |
277 | 277 | </p><p> |
278 | 278 | <span class="original"> |
279 | 279 | It is not possible to specify an operator's lexical precedence in |
|
0 commit comments