diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index 065798682c5..439ce716562 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -2827,7 +2827,7 @@ PG_MODULE_MAGIC; -《機械翻訳》または +または PG_MODULE_MAGIC_EXT(parameters); @@ -2840,9 +2840,8 @@ PG_MODULE_MAGIC_EXT(parameters); version string can be added. (More fields might be allowed in future.) Write something like this: --> -《機械翻訳》PG_MODULE_MAGIC_EXTバリアントを使用すると、モジュールに関する追加情報を指定できます。 -現在は、名前および/またはバージョン文字列を追加できます。 -(将来はさらに多くのフィールドが許可される可能性があります。) +亜種PG_MODULE_MAGIC_EXTを使用すると、モジュールに関する追加情報を指定できます。 +現在は、名前およびバージョン文字列、またはいずれか一方を追加できます。(将来、さらに多くのフィールドが許可される可能性があります。) 次のように記述します。 @@ -2859,8 +2858,8 @@ PG_MODULE_MAGIC_EXT( by PostgreSQL, but use of semantic versioning rules is recommended. --> -《機械翻訳》その後、名前とバージョンはpg_get_loaded_modules()関数を介して調べることができます。 -バージョン文字列の意味はPostgreSQLによって制限されませんが、セマンティックバージョン規則の使用をお勧めします。 +その後、名前とバージョンはpg_get_loaded_modules()関数を介して調べることができます。 +バージョン文字列の意味はPostgreSQLによって制限されませんが、セマンティックバージョニングルールの使用をお勧めします。 @@ -3437,8 +3436,8 @@ Version-1関数では、それぞれの実引数は、引数のデータ型に to call functions defined in the standard internal library, by using an interface similar to their SQL signature. --> -《機械翻訳》別のバージョン-1関数を呼び出しするには、DirectFunctionCalln(func, arg1, ..., argn)を使用できます。 -これは、SQLシグネチャに類似したインタフェースを使用して、標準の内部ライブラリで定義された関数を呼び出しする場合に特に便利です。 +別のVersion-1関数を呼び出すために、DirectFunctionCalln(func, arg1, ..., argn)を使用できます。 +これは、SQLシグネチャに類似したインタフェースを使用して、標準の内部ライブラリで定義された関数を呼び出す場合に特に便利です。 @@ -3454,11 +3453,11 @@ Version-1関数では、それぞれの実引数は、引数のデータ型に Note that neither arguments nor result are allowed to be NULL when using these convenience functions. --> -《機械翻訳》これらの便利な関数および類似の関数は、fmgr.hにあります。 -DirectFunctionCallnファミリーはC関数名前を最初の引数として想定しています。 -また、OidFunctionCallnターゲット関数のoidを想定しているものや、その他の変形もあります。 -これらはすべて、関数の引数がDatumとして提供されるであることを想定しており、同様にDatum.ノートは、これらの便利な関数を使用する場合、引数も結果もNULLではないことを想定しています。 -結果 +これらの便利な関数および類似の関数は、fmgr.hにあります。 +DirectFunctionCalln族はC関数の名前を最初の引数として想定しています。 +また、対象関数のOIDを受け取るOidFunctionCallnや、その他の亜種もあります。 +これらはすべて、関数の引数がDatumとして提供されることを想定しており、同様にDatumとして返します。 +これらの便利な関数を使用する場合、引数も結果もNULLではないことを想定していることに注意してください。 @@ -3478,12 +3477,10 @@ Version-1関数では、それぞれの実引数は、引数のデータ型に through from PG_GET_COLLATION(), as shown in the example below. --> -《機械翻訳》例から呼び出しstarts_with(text, text) Cから関数へは、カタログを経由して検索に移動し、C実装がDatum text_starts_with(PG_FUNCTION_ARGS)関数であることがわかります。 -通常、このような関数に移動するには DirectFunctionCall2(text_starts_with, ...)を使用します。 -ただし、starts_with(text, text)は照合順序情報を必要とするため、文字列比較に使用する照合順序を判別できませんというエラーが発生します。 -かわりにDirectFunctionCall2Coll(text_starts_with, ...)を使用して必要な照合順序を指定する必要があります。 -通常、次の例に示すようにPG_GET_COLLATION()から渡されます。 -呼び出し +例えば、C言語からstarts_with(text, text)関数を呼び出すために、カタログを検索して、Datum text_starts_with(PG_FUNCTION_ARGS)関数がC言語実装であることを確認できます。 +通常、このような関数を呼び出すにはDirectFunctionCall2(text_starts_with, ...)を使用します。 +ただし、starts_with(text, text)は照合順序情報を必要とするため、この方法で呼び出すと文字列比較で使用する照合順序を特定できませんでしたというエラーが発生します。 +かわりにDirectFunctionCall2Coll(text_starts_with, ...)を使用して必要な照合順序を指定する必要があり、これは通常、以下の例に示すようにPG_GET_COLLATION()からそのまま渡されます。 @@ -3498,12 +3495,11 @@ Version-1関数では、それぞれの実引数は、引数のデータ型に If your extension defines additional types, it is usually convenient to define similar macros for your types too. --> -《機械翻訳》fmgr.hは、Cの型とDatumの間の変換を容易にするマクロも提供しています。 -例がDatumテキスト*に変換するには、DatumGetTextPP(X)を使用できます。 -TypeGetDatum(X)逆記名的用の変換*のように、一部の型には一般的マクロがありますが、そうではありません。 -そのためには、マクロPointerGetDatum(X)を使用するだけで十分です。 -extensionが追加の型を定義している場合は、通常、型にも同様のマクロを定義すると便利です。 -テキスト +fmgr.hは、Cの型とDatumの間の変換を容易にするマクロも提供しています。 +例えば、Datumtext*に変換するために、DatumGetTextPP(X)を使用できます。 +いくつかの型は、逆変換用にTypeGetDatum(X)のようなマクロを持ちますが、text*にはありません。 +その場合は、汎用マクロPointerGetDatum(X)を使用すれば十分です。 +拡張機能が追加の型を定義している場合は、通常、それらの型にも同様のマクロを定義すると便利です。 @@ -3969,7 +3965,10 @@ C関数の作成と構築の基本規則を以下に示します。 &dfunc; + + サーバAPIとABIの安定性に関する手引 -《機械翻訳》このセクション包含は、PostgreSQLサーバでのAPIとABIの安定について、拡張機能やその他のサーバプラグインの作成者向けのガイダンスです。 +本節には、PostgreSQLサーバでのAPIとABIの安定性について、拡張機能やその他のサーバプラグインの作成者向けの手引があります。 + + 概要 -《機械翻訳》PostgreSQLサーバ包含には、サーバマネージャ(fmgr、この章で説明)、SPI)、および拡張用に特別に設計されたさまざまなフックなど、関数プラグイン用のいくつかの明確に区別されたAPIがあります。 -これらのインタフェースは、長期的な安定と互換性のために慎重に管理されています。 -ただし、サーバ内のグローバル関数と変数のセット全体は、実質的に一般に使用可能なAPIを構成しており、そのほとんどは拡張性と長期的な安定を念頭に置いて設計されたものではありません。 +PostgreSQLサーバには、サーバプラグイン用の明確に区別された複数のAPIがあり、例えば関数マネージャ(fmgr、この章で説明)、SPI ()、および拡張機能用に特別に設計された様々なフックなどがあります。 +これらのインタフェースは、長期的な安定性と互換性を確保するために慎重に管理されています。 +ただし、サーバ内のグローバル関数と変数のセット全体は、実質的に一般に使用可能なAPIを構成しており、そのほとんどは拡張性と長期的な安定性を念頭に置いて設計されたものではありません。 @@ -4010,23 +4012,29 @@ C関数の作成と構築の基本規則を以下に示します。 interfaces can be considered more stabilized or new, better-designed interfaces can be added. --> -《機械翻訳》したがって、これらのインタフェースを利用することは有効ですが、よく踏まれたパスから離れるほど、一部のポイントでAPIまたはABI互換性の問題に遭遇する可能性が高くなります。 -extensionの作成者は、時間の経過とともに新しい使用パターンが発生したときに、特定のインタフェースがより安定していると見なされるか、新しい、より優れた設計のインタフェースが追加されるように、要件についてフィードバックを提供することをお勧めします。 +したがって、これらのインタフェースを利用することは有効ですが、確立された道筋から離れるほど、一部のポイントでAPIまたはABIの互換性に関する問題に遭遇する可能性が高くなります。 +拡張機能の作者は、自身の要件についてフィードバックを提供することが推奨され、これによって時間の経過とともに新しい使用パターンが発生したときに、特定のインタフェースがより安定していると位置づけられたり、新しい、より優れた設計のインタフェースの追加が可能となったりします。 + + API互換性 -《機械翻訳》APIまたはアプリケーション・プログラミング・インタフェースは、コンパイル時間に使用されるインタフェースです。 +API、すなわちアプリケーションプログラミングインタフェースは、コンパイル時に使用されるインタフェースです。 + + メジャーバージョン -《機械翻訳》PostgreSQLメジャーバージョン間のAPI互換性の約束はありません。 -したがって、extensionコードでは、マルチプルメジャーバージョンを使用するためにソースコードの変更が必要になる場合があります。 +PostgreSQLメジャーバージョン間のAPI互換性の約束はありません。 +したがって、拡張機能のコードでは、複数のメジャーバージョンで使用するためにソースコードの変更が必要になる場合があります。 これらは通常、#if PG_VERSION_NUM >= 160000などのプリプロセッサ条件で管理できます。 -明確に定義されたものを超えたインタフェースを使用する高度な拡張では、通常、メジャーサーババージョンごとにこのような変更をいくつか行う必要があります。 +明確に区切られたインタフェースを超えて使用する高度な拡張機能では、通常、サーバのメジャーバージョンごとにこのような変更をいくつか行う必要があります。 + + マイナーバージョン -《機械翻訳》PostgreSQLマイナーリリースでのサーバAPIの中断を避けるために努力しています。 -一般的に、あるマイナーリリースをコンパイルして作業するextensionコードは、コンパイルも行い、過去または将来にわたって同じメジャーバージョンの他のマイナーリリースと作業する必要があります。 +PostgreSQLは、マイナーリリースでのサーバAPIの破損を避けるために努力しています。 +一般的に、あるマイナーリリースでコンパイルされ動作する拡張機能のコードは、同じメジャーバージョンの過去または将来の他のマイナーリリースでも同様にコンパイルされ動作するはずです。 @@ -4064,24 +4075,30 @@ extensionの作成者は、時間の経過とともに新しい使用パター changes will be communicated in the release notes (). --> -《機械翻訳》変更必要な場合には、アカウントへの延長の要件を考慮しつつ、慎重に管理される。 -そのような変更は、リリースノートにおいて伝達される。 +変更が必要な場合には、拡張機能の要件を考慮しつつ、慎重に管理されます。 +そのような変更は、リリースノートで伝達されます。 + + ABI互換性 -《機械翻訳》ABI、またはアプリケーションバイナリインタフェースは、実行時に使用されるインタフェースです。 +ABI、すなわちアプリケーションバイナリインタフェースは、実行時に使用されるインタフェースです。 + + メジャーバージョン -《機械翻訳》異なるメジャーバージョンのサーバには、意図的に互換性のないABIがあります。 -したがって、サーバAPIを使用する拡張は、メジャーリリースごとに再コンパイルする必要があります。 -PG_MODULE_MAGICを参照のinclusionは、あるコード用にコンパイルされたメジャーバージョンが他のメジャーバージョンによって拒否されることを保証します。 +異なるメジャーバージョンのサーバには、意図的に互換性のないABIがあります。 +したがって、サーバAPIを使用する拡張機能は、メジャーリリースごとに再コンパイルする必要があります。 +PG_MODULE_MAGIC参照)を含めることで、あるメジャーバージョン向けにコンパイルされたコードが他のメジャーバージョンでは拒否されることが保証されます。 + + + マイナーバージョン -《機械翻訳》PostgreSQLマイナーリリースでのサーバABIの破損を回避するために努力しています。 -一般的に、任意のextensionに対してコンパイルされたマイナーリリースは、過去または将来にわたって同じマイナーリリースの他のメジャーバージョンと連携する必要があります。 +PostgreSQLは、マイナーリリースでのサーバABIの破損を避けるために努力しています。 +一般的に、あるマイナーリリースでコンパイルされた拡張機能は、同じメジャーバージョンの過去または将来の他のマイナーリリースでも同様に動作するはずです。 @@ -4118,8 +4139,8 @@ extensionの作成者は、時間の経過とともに新しい使用パター should not impact extensions unless they use very unusual code patterns. --> -《機械翻訳》変更isが必要な場合、PostgreSQLは例に対して、新しいフィールドをパディングスペースにスクイーズするか、構造体の末尾に追加することで、可能な限り侵襲性の低い変更を選択します。 -これらの種類の変更は、非常に珍しいインパクトパターンを使用しない限り、コード拡張されるべきではありません。 +変更が必要な場合、PostgreSQLは可能な限り侵襲性の低い変更、例えば、新しいフィールドをパディングスペースに詰め込むか、構造体の末尾に追加するといった選択をします。 +これらの種類の変更は、非常に特殊なコードパターンを使用している場合を除き、拡張機能に影響を与えることはありません。 @@ -4130,9 +4151,9 @@ extensionの作成者は、時間の経過とともに新しい使用パター Such changes will also be documented in the release notes (). --> -《機械翻訳》しかし、まれに、このような非侵襲的な変更でさえ実行不可能または不可能な場合があります。 -このようなイベントでは、アカウントへの延長の要件を考慮して、変更は慎重に管理されます。 -このような変更は、リリースノート()にも文書化されます。 +しかし、まれに、このような非侵襲的な変更でさえ現実的ではない、または不可能な場合があります。 +このような場合、変更は拡張機能の要件を考慮しつつ、慎重に管理されます。 +このような変更は、リリースノート()にも記載されます。 @@ -4144,8 +4165,8 @@ extensionの作成者は、時間の経過とともに新しい使用パター for extension code than changes in well-defined and widely used interfaces. --> -《機械翻訳》しかし、ノートでは、サーバの多くの部分が公開可能なAPIとして設計または維持されていない(また、ほとんどの場合、実際の境界も明確に定義されていない)。 -緊急のニーズが発生した場合、それらの部分の変更は、明確に定義され広く使用されているインタフェースの変更よりも、extensionコードをあまり考慮せずに行われるのが自然である。 +ただし、サーバの多くの部分は、公的に利用可能なAPIとして設計・保守されていない点に留意してください(そして、ほとんどの場合、実際の境界も明確に定義されていません)。 +緊急の必要性が発生した場合、それらの部分の変更は、明確に定義され広く利用されているインタフェースの変更に比べると、拡張機能コードをあまり考慮せずに行われるのが自然です。 @@ -4154,7 +4175,7 @@ extensionの作成者は、時間の経過とともに新しい使用パター not a guarantee, but historically such breaking changes have been extremely rare. --> -《機械翻訳》また、そのような変更が自動的に検出されない場合、これは保証ではありませんが、歴史的ではそのような破壊的な変更は非常にまれです。 +また、そのような変更は自動的に検出されないため、保証はできませんが、歴史的にはそのような互換性を損なう変更は非常にまれです。 @@ -5300,12 +5321,9 @@ LWLockRelease(AddinShmemInitLock); the shmem_startup_hook, and each backend automatically inherits the pointers to shared memory. --> -《マッチ度[54.916793]》shmem_startup_hookは初期化コードを便利に提供しますが、このフックにすべてのコードを置く必要はありません。 -各バックエンドは、共有メモリに接続した直後に登録されたshmem_startup_hookを実行します。 -上の例に示すように、アドインはこのフック内でAddinShmemInitLockを取得する必要があります。 -《機械翻訳》shmem_startup_hookはコードの初期設定に便利な場所を提供しますが、そのようなコードをすべてこのフックに配置することは厳密には要求されていません。 -Windows(および EXEC_BACKENDが定義されている他の場所)では、各バックエンドは共有メモリに接続した直後に登録されたshmem_startup_hookを実行するので、アドインはAddinShmemInitLock上記の例で示されているように、このフック内で取得する必要があります。 -他のプラットフォームでは、postmasterプロセスのみがshmem_startup_hookを実行し、各バックエンドは共有メモリへのポインタを自動的に継承にします。 +shmem_startup_hookは初期化コードを便利に提供しますが、このフックにすべてのコードを置く必要はありません。 +Windows(および EXEC_BACKENDが定義されている他の場所)では、各バックエンドは、共有メモリに接続した直後に登録されたshmem_startup_hookを実行し、上の例に示すように、アドインはこのフック内でAddinShmemInitLockを取得する必要があります。 +他のプラットフォームでは、postmasterプロセスのみがshmem_startup_hookを実行し、各バックエンドは共有メモリへのポインタを自動的に継承します。 @@ -5547,15 +5565,11 @@ INJECTION_POINT(name, arg); dashes. arg is an optional argument value given to the callback at run-time. --> -《マッチ度[76.494024]》サーバコード内の戦略的なポイントに、すでにいくつかのインジェクションポイントが宣言されています。 +サーバコード内の戦略的なポイントに、すでにいくつかのインジェクションポイントが宣言されています。 新しいインジェクションポイントを追加した後、そのインジェクションポイントをバイナリで使用できるようにするには、コードをコンパイルする必要があります。 C言語で記述されたアドインは、同じマクロを使用して、独自のコードでインジェクションポイントを宣言できます。 インジェクションポイント名は小文字を使用し、単語はハイフンで区切る必要があります。 -《機械翻訳》サーバコード内の要衝には、すでに宣言されているインジェクションポイントがいくつかあります。 -新しいインジェクションポイントを追加した後、コードニーズはオーダーでコンパイルされ、そのインジェクションポイントがバイナリで使用可能になります。 -C-言語で作成されたアドインは、同じマクロを使用して独自のコードでインジェクションポイントを宣言できます。 -インジェクションポイントの名前には、ダッシュで区切られた語とともに、下位ケース文字を使用する必要があります。 -argは、実行時にコールバックに与えられるオプショナル引数値です。 +argは、実行時にコールバックに与えられるオプションの引数値です。 @@ -5565,8 +5579,8 @@ C-言語で作成されたアドインは、同じマクロを使用して独自 critical section where dynamic allocations are not allowed, you can use a two-step approach with the following macros: --> -《機械翻訳》インジェクションポイントを実行すると、少量のメモリの割当てが必要になる場合がありますが、これは失敗する可能性があります。 -動的割当てが許可されていないクリティカル・セクションにインジェクションポイントが必要な場合は、次のマクロを使用して2ステップアプローチを使用できます:。 +インジェクションポイントを実行すると、少量のメモリ割当てが必要になる場合がありますが、これは失敗する可能性があります。 +動的割当てが許可されていないクリティカルセクションにインジェクションポイントが必要な場合は、以下のマクロによる2段階のアプローチを使用できます: INJECTION_POINT_LOAD(name); INJECTION_POINT_CACHED(name, arg); @@ -5579,9 +5593,9 @@ INJECTION_POINT_CACHED(name, arg); active. Inside the critical section, use INJECTION_POINT_CACHED to execute the callback. --> -《機械翻訳》危険区間である呼び出しに入る前INJECTION_POINT_LOAD。 -共有メモリの状態を確認し、アクティブの場合はバックエンドプライベートメモリにコールバックを積み込みます。 -危険区間内では、INJECTION_POINT_CACHEDを使用してコールバックを実行します。 +クリティカルセクションに入る前にINJECTION_POINT_LOADを呼び出します。 +共有メモリの状態を確認し、アクティブの場合はバックエンドプライベートメモリにコールバックをロードします。 +クリティカルセクションでは、INJECTION_POINT_CACHEDを使用してコールバックを実行します。 @@ -5645,9 +5659,9 @@ custom_injection_callback(const char *name, IS_INJECTION_POINT_ATTACHED macro can then be used to check if an injection point is attached, for example: --> -《機械翻訳》インジェクションポイントに到達したときに実行する処理を定義するもう1つの方法は、通常のコードの横にテストソースコードを追加することです。 +インジェクションポイントに到達したときに実行する処理を定義するもう1つの方法は、通常のソースコードにならべてテストコードを追加することです。 これは、処理がロードされたモジュールにアクセスできないローカル変数に依存している場合などに便利です。 -インジェクションポイントが接続されている場合は、例に対してIS_INJECTION_POINT_ATTACHEDマクロをチェックに使用できます。 +IS_INJECTION_POINT_ATTACHEDマクロを使うと、インジェクションポイントがアタッチされているかどうか確認できます、以下に例を示します: #ifdef USE_INJECTION_POINTS if (IS_INJECTION_POINT_ATTACHED("before-foobar")) @@ -5666,8 +5680,8 @@ if (IS_INJECTION_POINT_ATTACHED("before-foobar")) macro. If you want to execute the callback, you must also call INJECTION_POINT_CACHED like in the above example. --> -《機械翻訳》インジェクションポイントに付属するコールバックのノートは、IS_INJECTION_POINT_ATTACHEDマクロでは行われません。 -コールバックを実行したい場合は、INJECTION_POINT_CACHED上記の例のように呼び出しもする必要があります。 +インジェクションポイントにアタッチされたコールバックは、IS_INJECTION_POINT_ATTACHEDマクロによって実行されないことに注意してください。 +コールバックを実行したい場合は、上記の例のようにINJECTION_POINT_CACHEDも呼び出す必要があります。 @@ -5718,7 +5732,10 @@ extern bool InjectionPointDetach(const char *name); + + カスタム累積統計 -《機械翻訳》累積言語カスタムに登録されている累積統計処理の統計処理種別は、C-システムで記述されたアドインで利用することが可能です。 +C言語で記述されたアドインは、累積統計システムに登録されているカスタムタイプの累積統計を利用することが可能です。 @@ -5734,8 +5751,8 @@ extern bool InjectionPointDetach(const char *name); First, define a PgStat_KindInfo that includes all the information related to the custom type registered. For example: --> -《機械翻訳》まず、PgStat_KindInfo登録されたカスタムタイプに関連するすべての情報を含むを定義します。 -例の場合:。 +まず、登録されているカスタムタイプに関連するすべての情報を含むPgStat_KindInfoを定義します。 +以下に例を示します: static const PgStat_KindInfo custom_stats = { .name = "custom_stats", @@ -5752,8 +5769,7 @@ static const PgStat_KindInfo custom_stats = { it with pgstat_register_kind and a unique ID used to store the entries related to this type of statistics: --> -《機械翻訳》次に、このカスタムタイプバックエンドを使用する各ニーズを登録しますpgstat_register_kindおよび統計処理のこのニーズに関連するエントリを格納するために使用されるユニークID:。 -タイプ +次に、このカスタムタイプを使用する必要のある各バックエンドは、pgstat_register_kindと、この統計情報の種類に関連するエントリを格納するために使用される一意のIDとともにこれを登録する必要があります: extern PgStat_Kind pgstat_register_kind(PgStat_Kind kind, const PgStat_KindInfo *kind_info); @@ -5766,8 +5782,8 @@ extern PgStat_Kind pgstat_register_kind(PgStat_Kind kind, Custom Cumulative Statistics page. --> -《機械翻訳》新しいextensionを開発する場合は、PGSTAT_KIND_EXPERIMENTAL kind。 -ユーザにextensionをリリースする準備ができたら、カスタム累積統計処理で種類IDを予約してくださいページを使用します。 +新しい拡張機能を開発する場合は、kindPGSTAT_KIND_EXPERIMENTALを使用してください。 +ユーザに拡張機能をリリースする準備ができたら、カスタム累積統計ページで種類IDを予約してください。 @@ -5775,7 +5791,7 @@ extern PgStat_Kind pgstat_register_kind(PgStat_Kind kind, The details of the API for PgStat_KindInfo can be found in src/include/utils/pgstat_internal.h. --> -《機械翻訳》PgStat_KindInfoのAPIの詳細については、src/include/utils/pgstat_internal.hを参照してください。 +PgStat_KindInfoのAPIの詳細については、src/include/utils/pgstat_internal.hを参照してください。 @@ -5785,8 +5801,8 @@ extern PgStat_Kind pgstat_register_kind(PgStat_Kind kind, custom type of statistics maintains a local cache storing the information of each custom PgStat_KindInfo. --> -《機械翻訳》登録された統計処理のタイプは、名前および共有メモリのサーバ全体で共有されるユニークIDに関連付けられます。 -統計処理のカスタムタイプを使用する各バックエンドは、各カスタムの情報を格納するローカルキャッシュを保守しますPgStat_KindInfo。 +登録された統計のタイプは、名前とユニークIDに関連付けられ、共有メモリ上でサーバ全体に共有されます。 +統計のカスタムタイプを使用する各バックエンドは、各カスタムPgStat_KindInfoの情報を格納するローカルキャッシュを維持します。 @@ -5795,7 +5811,7 @@ extern PgStat_Kind pgstat_register_kind(PgStat_Kind kind, type in so that it will be loaded early during PostgreSQL startup. --> -《機械翻訳》extension累積統計処理タイプを実装するカスタムモジュールをに配置して、PostgreSQLスタートアップの間の早い時期にロードされるようにします。 + カスタム累積統計タイプを実装する拡張機能モジュールをに設定し、PostgreSQLの起動時に早期にロードされるようにします。 @@ -5803,7 +5819,7 @@ extern PgStat_Kind pgstat_register_kind(PgStat_Kind kind, An example describing how to register and use custom statistics can be found in src/test/modules/injection_points. --> -《機械翻訳》カスタム例の登録方法と使用方法を説明した統計処理は、src/test/modules/injection_pointsにあります。 +カスタム統計の登録方法と使用方法を説明する例は、src/test/modules/injection_pointsにあります。