pg 1.1.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.appveyor.yml +42 -0
  4. data/.gems +6 -0
  5. data/.github/workflows/binary-gems.yml +117 -0
  6. data/.github/workflows/source-gem.yml +141 -0
  7. data/.gitignore +22 -0
  8. data/.hgsigs +34 -0
  9. data/.hgtags +41 -0
  10. data/.irbrc +23 -0
  11. data/.pryrc +23 -0
  12. data/.tm_properties +21 -0
  13. data/.travis.yml +49 -0
  14. data/Gemfile +14 -0
  15. data/History.md +884 -0
  16. data/Manifest.txt +3 -3
  17. data/README-Windows.rdoc +4 -4
  18. data/README.ja.md +300 -0
  19. data/README.md +286 -0
  20. data/Rakefile +37 -137
  21. data/Rakefile.cross +62 -62
  22. data/certs/ged.pem +24 -0
  23. data/certs/larskanis-2022.pem +26 -0
  24. data/certs/larskanis-2023.pem +24 -0
  25. data/ext/errorcodes.def +80 -0
  26. data/ext/errorcodes.rb +0 -0
  27. data/ext/errorcodes.txt +22 -2
  28. data/ext/extconf.rb +105 -26
  29. data/ext/gvl_wrappers.c +4 -0
  30. data/ext/gvl_wrappers.h +23 -0
  31. data/ext/pg.c +204 -152
  32. data/ext/pg.h +52 -21
  33. data/ext/pg_binary_decoder.c +100 -17
  34. data/ext/pg_binary_encoder.c +238 -13
  35. data/ext/pg_coder.c +109 -34
  36. data/ext/pg_connection.c +1383 -983
  37. data/ext/pg_copy_coder.c +356 -35
  38. data/ext/pg_errors.c +1 -1
  39. data/ext/pg_record_coder.c +522 -0
  40. data/ext/pg_result.c +439 -172
  41. data/ext/pg_text_decoder.c +42 -18
  42. data/ext/pg_text_encoder.c +201 -56
  43. data/ext/pg_tuple.c +97 -66
  44. data/ext/pg_type_map.c +45 -11
  45. data/ext/pg_type_map_all_strings.c +21 -7
  46. data/ext/pg_type_map_by_class.c +59 -27
  47. data/ext/pg_type_map_by_column.c +80 -37
  48. data/ext/pg_type_map_by_mri_type.c +49 -20
  49. data/ext/pg_type_map_by_oid.c +62 -29
  50. data/ext/pg_type_map_in_ruby.c +56 -22
  51. data/ext/{util.c → pg_util.c} +7 -7
  52. data/lib/pg/basic_type_map_based_on_result.rb +67 -0
  53. data/lib/pg/basic_type_map_for_queries.rb +198 -0
  54. data/lib/pg/basic_type_map_for_results.rb +104 -0
  55. data/lib/pg/basic_type_registry.rb +299 -0
  56. data/lib/pg/binary_decoder/date.rb +9 -0
  57. data/lib/pg/binary_decoder/timestamp.rb +26 -0
  58. data/lib/pg/binary_encoder/timestamp.rb +20 -0
  59. data/lib/pg/coder.rb +35 -12
  60. data/lib/pg/connection.rb +744 -84
  61. data/lib/pg/exceptions.rb +15 -1
  62. data/lib/pg/result.rb +13 -1
  63. data/lib/pg/text_decoder/date.rb +18 -0
  64. data/lib/pg/text_decoder/inet.rb +9 -0
  65. data/lib/pg/text_decoder/json.rb +14 -0
  66. data/lib/pg/text_decoder/numeric.rb +9 -0
  67. data/lib/pg/text_decoder/timestamp.rb +30 -0
  68. data/lib/pg/text_encoder/date.rb +12 -0
  69. data/lib/pg/text_encoder/inet.rb +28 -0
  70. data/lib/pg/text_encoder/json.rb +14 -0
  71. data/lib/pg/text_encoder/numeric.rb +9 -0
  72. data/lib/pg/text_encoder/timestamp.rb +24 -0
  73. data/lib/pg/type_map_by_column.rb +2 -1
  74. data/lib/pg/version.rb +4 -0
  75. data/lib/pg.rb +94 -39
  76. data/misc/openssl-pg-segfault.rb +31 -0
  77. data/misc/postgres/History.txt +9 -0
  78. data/misc/postgres/Manifest.txt +5 -0
  79. data/misc/postgres/README.txt +21 -0
  80. data/misc/postgres/Rakefile +21 -0
  81. data/misc/postgres/lib/postgres.rb +16 -0
  82. data/misc/ruby-pg/History.txt +9 -0
  83. data/misc/ruby-pg/Manifest.txt +5 -0
  84. data/misc/ruby-pg/README.txt +21 -0
  85. data/misc/ruby-pg/Rakefile +21 -0
  86. data/misc/ruby-pg/lib/ruby/pg.rb +16 -0
  87. data/pg.gemspec +34 -0
  88. data/rakelib/task_extension.rb +46 -0
  89. data/sample/array_insert.rb +20 -0
  90. data/sample/async_api.rb +102 -0
  91. data/sample/async_copyto.rb +39 -0
  92. data/sample/async_mixed.rb +56 -0
  93. data/sample/check_conn.rb +21 -0
  94. data/sample/copydata.rb +71 -0
  95. data/sample/copyfrom.rb +81 -0
  96. data/sample/copyto.rb +19 -0
  97. data/sample/cursor.rb +21 -0
  98. data/sample/disk_usage_report.rb +177 -0
  99. data/sample/issue-119.rb +94 -0
  100. data/sample/losample.rb +69 -0
  101. data/sample/minimal-testcase.rb +17 -0
  102. data/sample/notify_wait.rb +72 -0
  103. data/sample/pg_statistics.rb +285 -0
  104. data/sample/replication_monitor.rb +222 -0
  105. data/sample/test_binary_values.rb +33 -0
  106. data/sample/wal_shipper.rb +434 -0
  107. data/sample/warehouse_partitions.rb +311 -0
  108. data/translation/.po4a-version +7 -0
  109. data/translation/po/all.pot +936 -0
  110. data/translation/po/ja.po +1036 -0
  111. data/translation/po4a.cfg +12 -0
  112. data.tar.gz.sig +0 -0
  113. metadata +144 -222
  114. metadata.gz.sig +0 -0
  115. data/ChangeLog +0 -6595
  116. data/History.rdoc +0 -485
  117. data/README.ja.rdoc +0 -14
  118. data/README.rdoc +0 -178
  119. data/lib/pg/basic_type_mapping.rb +0 -459
  120. data/lib/pg/binary_decoder.rb +0 -22
  121. data/lib/pg/constants.rb +0 -11
  122. data/lib/pg/text_decoder.rb +0 -47
  123. data/lib/pg/text_encoder.rb +0 -69
  124. data/spec/data/expected_trace.out +0 -26
  125. data/spec/data/random_binary_data +0 -0
  126. data/spec/helpers.rb +0 -381
  127. data/spec/pg/basic_type_mapping_spec.rb +0 -508
  128. data/spec/pg/connection_spec.rb +0 -1849
  129. data/spec/pg/connection_sync_spec.rb +0 -41
  130. data/spec/pg/result_spec.rb +0 -491
  131. data/spec/pg/tuple_spec.rb +0 -280
  132. data/spec/pg/type_map_by_class_spec.rb +0 -138
  133. data/spec/pg/type_map_by_column_spec.rb +0 -222
  134. data/spec/pg/type_map_by_mri_type_spec.rb +0 -136
  135. data/spec/pg/type_map_by_oid_spec.rb +0 -149
  136. data/spec/pg/type_map_in_ruby_spec.rb +0 -164
  137. data/spec/pg/type_map_spec.rb +0 -22
  138. data/spec/pg/type_spec.rb +0 -949
  139. data/spec/pg_spec.rb +0 -50
  140. /data/ext/{util.h → pg_util.h} +0 -0
@@ -0,0 +1,1036 @@
1
+ # Pgの日本語訳
2
+ # Copyright (C) 2023 gemmaro.
3
+ #
4
+ # 翻訳に関しての注意点は以下です。
5
+ #
6
+ # * クラス名やファイル名の両側には日本語の文字をそのまま書けません。
7
+ # RDocでドキュメントを生成したときにリンクが自動生成されないからです。
8
+ #
9
+ # また訳語は以下の対応にしています。
10
+ #
11
+ # encoder -> エンコーダー
12
+ # decoder -> デコーダー
13
+ msgid ""
14
+ msgstr ""
15
+ "Project-Id-Version: Pg 1.4.5\n"
16
+ "POT-Creation-Date: 2023-05-26 21:44+0900\n"
17
+ "PO-Revision-Date: 2023-05-26 22:39+0900\n"
18
+ "Last-Translator: gemmaro <gemmaro.dev@gmail.com>\n"
19
+ "Language-Team: none\n"
20
+ "Language: ja\n"
21
+ "MIME-Version: 1.0\n"
22
+ "Content-Type: text/plain; charset=UTF-8\n"
23
+ "Content-Transfer-Encoding: 8bit\n"
24
+
25
+ #. type: Title #
26
+ #: ../README.md:1
27
+ #, no-wrap
28
+ msgid "pg"
29
+ msgstr "pg"
30
+
31
+ #. type: Bullet: '* '
32
+ #: ../README.md:7
33
+ msgid "home :: https://github.com/ged/ruby-pg"
34
+ msgstr "ホーム :: https://github.com/ged/ruby-pg"
35
+
36
+ #. type: Plain text
37
+ #: ../README.md:7
38
+ #, no-wrap
39
+ msgid ""
40
+ "* docs :: http://deveiate.org/code/pg (English) ,\n"
41
+ " https://deveiate.org/code/pg/README_ja_md.html (Japanese)\n"
42
+ "* clog :: link:/History.md\n"
43
+ msgstr ""
44
+ "* ドキュメント :: http://deveiate.org/code/pg (英語)、 https://deveiate.org/code/pg/README_ja_md.html (日本語)\n"
45
+ "* 変更履歴 :: link:/History.md\n"
46
+
47
+ #. type: Plain text
48
+ #: ../README.md:9
49
+ msgid ""
50
+ "[![Join the chat at https://gitter.im/ged/ruby-pg](https://badges.gitter.im/"
51
+ "Join%20Chat.svg)](https://gitter.im/ged/ruby-pg?"
52
+ "utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)"
53
+ msgstr ""
54
+ "[![https://gitter.im/ged/ruby-pg でチャットに参加](https://badges.gitter.im/"
55
+ "Join%20Chat.svg)](https://gitter.im/ged/ruby-pg?"
56
+ "utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)"
57
+
58
+ #. type: Title ##
59
+ #: ../README.md:11
60
+ #, no-wrap
61
+ msgid "Description"
62
+ msgstr "説明"
63
+
64
+ #. type: Plain text
65
+ #: ../README.md:15
66
+ msgid ""
67
+ "Pg is the Ruby interface to the [PostgreSQL RDBMS](http://www.postgresql."
68
+ "org/). It works with [PostgreSQL 9.3 and later](http://www.postgresql.org/"
69
+ "support/versioning/)."
70
+ msgstr ""
71
+ "Pgは[PostgreSQL RDBMS](http://www.postgresql.org/)へのRubyのインターフェース"
72
+ "です。[PostgreSQL 9.3以降](http://www.postgresql.org/support/versioning/)で動"
73
+ "作します。"
74
+
75
+ #. type: Plain text
76
+ #: ../README.md:17
77
+ msgid "A small example usage:"
78
+ msgstr "簡単な使用例は次の通りです。"
79
+
80
+ #. type: Fenced code block (ruby)
81
+ #: ../README.md:17
82
+ #, no-wrap
83
+ msgid ""
84
+ " #!/usr/bin/env ruby\n"
85
+ "\n"
86
+ " require 'pg'\n"
87
+ "\n"
88
+ " # Output a table of current connections to the DB\n"
89
+ " conn = PG.connect( dbname: 'sales' )\n"
90
+ " conn.exec( \"SELECT * FROM pg_stat_activity\" ) do |result|\n"
91
+ " puts \" PID | User | Query\"\n"
92
+ " result.each do |row|\n"
93
+ " puts \" %7d | %-16s | %s \" %\n"
94
+ " row.values_at('pid', 'usename', 'query')\n"
95
+ " end\n"
96
+ " end\n"
97
+ msgstr ""
98
+ " #!/usr/bin/env ruby\n"
99
+ "\n"
100
+ " require 'pg'\n"
101
+ "\n"
102
+ " # データベースへの現在の接続を表に出力します\n"
103
+ " conn = PG.connect( dbname: 'sales' )\n"
104
+ " conn.exec( \"SELECT * FROM pg_stat_activity\" ) do |result|\n"
105
+ " puts \" PID | User | Query\"\n"
106
+ " result.each do |row|\n"
107
+ " puts \" %7d | %-16s | %s \" %\n"
108
+ " row.values_at('pid', 'usename', 'query')\n"
109
+ " end\n"
110
+ " end\n"
111
+
112
+ #. type: Title ##
113
+ #: ../README.md:33
114
+ #, no-wrap
115
+ msgid "Build Status"
116
+ msgstr "ビルド状況"
117
+
118
+ #. type: Plain text
119
+ #: ../README.md:38
120
+ msgid ""
121
+ "[![Build Status Github Actions](https://github.com/ged/ruby-pg/actions/"
122
+ "workflows/source-gem.yml/badge.svg?branch=master)](https://github.com/ged/"
123
+ "ruby-pg/actions/workflows/source-gem.yml) [![Binary gems](https://github."
124
+ "com/ged/ruby-pg/actions/workflows/binary-gems.yml/badge.svg?branch=master)]"
125
+ "(https://github.com/ged/ruby-pg/actions/workflows/binary-gems.yml) [![Build "
126
+ "Status Appveyor](https://ci.appveyor.com/api/projects/status/"
127
+ "gjx5axouf3b1wicp?svg=true)](https://ci.appveyor.com/project/ged/ruby-"
128
+ "pg-9j8l3)"
129
+ msgstr ""
130
+ "[![Github Actionsのビルド状況](https://github.com/ged/ruby-pg/actions/"
131
+ "workflows/source-gem.yml/badge.svg?branch=master)](https://github.com/ged/"
132
+ "ruby-pg/actions/workflows/source-gem.yml) [![バイナリgem](https://github."
133
+ "com/ged/ruby-pg/actions/workflows/binary-gems.yml/badge.svg?branch=master)]"
134
+ "(https://github.com/ged/ruby-pg/actions/workflows/binary-gems.yml) [!"
135
+ "[Appveyorのビルド状況](https://ci.appveyor.com/api/projects/status/"
136
+ "gjx5axouf3b1wicp?svg=true)](https://ci.appveyor.com/project/ged/ruby-"
137
+ "pg-9j8l3)"
138
+
139
+ #. type: Title ##
140
+ #: ../README.md:40
141
+ #, no-wrap
142
+ msgid "Requirements"
143
+ msgstr "要件"
144
+
145
+ #. type: Bullet: '* '
146
+ #: ../README.md:44
147
+ msgid "Ruby 2.5 or newer"
148
+ msgstr "Ruby 2.5かそれより新しいバージョン"
149
+
150
+ #. type: Bullet: '* '
151
+ #: ../README.md:44
152
+ msgid "PostgreSQL 9.3.x or later (with headers, -dev packages, etc)."
153
+ msgstr ""
154
+ "PostgreSQL 9.3.xかそれ以降のバージョン(ヘッダー付属のもの、例えば-devの名前"
155
+ "のパッケージ)。"
156
+
157
+ #. type: Plain text
158
+ #: ../README.md:47
159
+ msgid ""
160
+ "It usually works with earlier versions of Ruby/PostgreSQL as well, but those "
161
+ "are not regularly tested."
162
+ msgstr ""
163
+ "それより前のバージョンのRubyやPostgreSQLでも通常は同様に動作しますが、定期的"
164
+ "なテストはされていません。"
165
+
166
+ #. type: Title ##
167
+ #: ../README.md:49
168
+ #, no-wrap
169
+ msgid "Versioning"
170
+ msgstr "バージョン管理"
171
+
172
+ #. type: Plain text
173
+ #: ../README.md:52
174
+ msgid ""
175
+ "We tag and release gems according to the [Semantic Versioning](http://semver."
176
+ "org/) principle."
177
+ msgstr ""
178
+ "[セマンティックバージョニング](http://semver.org/)の原則にしたがってgemをタグ"
179
+ "付けしてリリースしています。"
180
+
181
+ #. type: Plain text
182
+ #: ../README.md:54
183
+ msgid ""
184
+ "As a result of this policy, you can (and should) specify a dependency on "
185
+ "this gem using the [Pessimistic Version Constraint](http://guides.rubygems."
186
+ "org/patterns/#pessimistic-version-constraint) with two digits of precision."
187
+ msgstr ""
188
+ "この方針の結果として、2つの数字を指定する[悲観的バージョン制約](http://"
189
+ "guides.rubygems.org/patterns/#pessimistic-version-constraint)を使ってこのgem"
190
+ "への依存関係を指定することができます(またそうすべきです)。"
191
+
192
+ #. type: Plain text
193
+ #: ../README.md:56
194
+ msgid "For example:"
195
+ msgstr "例えば次の通りです。"
196
+
197
+ #. type: Fenced code block (ruby)
198
+ #: ../README.md:57
199
+ #, no-wrap
200
+ msgid " spec.add_dependency 'pg', '~> 1.0'\n"
201
+ msgstr " spec.add_dependency 'pg', '~> 1.0'\n"
202
+
203
+ #. type: Title ##
204
+ #: ../README.md:61
205
+ #, no-wrap
206
+ msgid "How To Install"
207
+ msgstr "インストール方法"
208
+
209
+ #. type: Plain text
210
+ #: ../README.md:64
211
+ msgid "Install via RubyGems:"
212
+ msgstr "RubyGemsを経由してインストールするには以下とします。"
213
+
214
+ #. type: Plain text
215
+ #: ../README.md:66
216
+ #, no-wrap
217
+ msgid " gem install pg\n"
218
+ msgstr " gem install pg\n"
219
+
220
+ #. type: Plain text
221
+ #: ../README.md:69
222
+ msgid ""
223
+ "You may need to specify the path to the 'pg_config' program installed with "
224
+ "Postgres:"
225
+ msgstr ""
226
+ "Postgresと一緒にインストールされた'pg_config'プログラムへのパスを指定する必要"
227
+ "があるかもしれません。"
228
+
229
+ #. type: Plain text
230
+ #: ../README.md:71
231
+ #, no-wrap
232
+ msgid " gem install pg -- --with-pg-config=<path to pg_config>\n"
233
+ msgstr " gem install pg -- --with-pg-config=<path to pg_config>\n"
234
+
235
+ #. type: Plain text
236
+ #: ../README.md:73
237
+ msgid ""
238
+ "If you're installing via Bundler, you can provide compile hints like so:"
239
+ msgstr ""
240
+ "Bundlerを介してインストールした場合は次のようにコンパイルのためのヒントを与え"
241
+ "られます。"
242
+
243
+ #. type: Plain text
244
+ #: ../README.md:75
245
+ #, no-wrap
246
+ msgid " bundle config build.pg --with-pg-config=<path to pg_config>\n"
247
+ msgstr " bundle config build.pg --with-pg-config=<path to pg_config>\n"
248
+
249
+ #. type: Plain text
250
+ #: ../README.md:78
251
+ msgid ""
252
+ "See README-OS_X.rdoc for more information about installing under MacOS X, "
253
+ "and README-Windows.rdoc for Windows build/installation instructions."
254
+ msgstr ""
255
+ "MacOS Xへインストールする詳しい情報については README-OS_X.rdoc を、Windows用"
256
+ "のビルドやインストールの説明については README-Windows.rdoc を参照してくださ"
257
+ "い。"
258
+
259
+ #. type: Plain text
260
+ #: ../README.md:82
261
+ msgid ""
262
+ "There's also [a Google+ group](http://goo.gl/TFy1U) and a [mailing list]"
263
+ "(http://groups.google.com/group/ruby-pg) if you get stuck, or just want to "
264
+ "chat about something."
265
+ msgstr ""
266
+ "詰まったときやただ何か喋りたいときのために[Google+グループ](http://goo.gl/"
267
+ "TFy1U)と[メーリングリスト](http://groups.google.com/group/ruby-pg)もありま"
268
+ "す。"
269
+
270
+ #. type: Plain text
271
+ #: ../README.md:86
272
+ msgid ""
273
+ "If you want to install as a signed gem, the public certs of the gem signers "
274
+ "can be found in [the `certs` directory](https://github.com/ged/ruby-pg/tree/"
275
+ "master/certs) of the repository."
276
+ msgstr ""
277
+ "署名されたgemとしてインストールしたい場合は、リポジトリの[`certs`ディレクト"
278
+ "リ](https://github.com/ged/ruby-pg/tree/master/certs)にgemの署名をする公開証"
279
+ "明書があります。"
280
+
281
+ #. type: Title ##
282
+ #: ../README.md:88
283
+ #, no-wrap
284
+ msgid "Type Casts"
285
+ msgstr "型変換"
286
+
287
+ #. type: Plain text
288
+ #: ../README.md:94
289
+ msgid ""
290
+ "Pg can optionally type cast result values and query parameters in Ruby or "
291
+ "native C code. This can speed up data transfers to and from the database, "
292
+ "because String allocations are reduced and conversions in (slower) Ruby code "
293
+ "can be omitted."
294
+ msgstr ""
295
+ "Pgでは任意でRubyと素のCコードにある結果の値やクエリ引数の型変換ができます。\n"
296
+ "こうすることでデータベースとのデータの往来を加速させられます。\n"
297
+ "なぜなら文字列のアロケーションが減り、(比較的遅い)Rubyのコードでの変換部分が省かれるからです。"
298
+
299
+ #. type: Plain text
300
+ #: ../README.md:96
301
+ msgid "Very basic type casting can be enabled by:"
302
+ msgstr "とても基本的な型変換は次のようにできます。"
303
+
304
+ #. type: Fenced code block (ruby)
305
+ #: ../README.md:96
306
+ #, no-wrap
307
+ msgid ""
308
+ " conn.type_map_for_results = PG::BasicTypeMapForResults.new conn\n"
309
+ " # ... this works for result value mapping:\n"
310
+ " conn.exec(\"select 1, now(), '{2,3}'::int[]\").values\n"
311
+ " # => [[1, 2014-09-21 20:51:56 +0200, [2, 3]]]\n"
312
+ "\n"
313
+ " conn.type_map_for_queries = PG::BasicTypeMapForQueries.new conn\n"
314
+ " # ... and this for param value mapping:\n"
315
+ " conn.exec_params(\"SELECT $1::text, $2::text, $3::text\", [1, 1.23, [2,3]]).values\n"
316
+ " # => [[\"1\", \"1.2300000000000000E+00\", \"{2,3}\"]]\n"
317
+ msgstr ""
318
+ " conn.type_map_for_results = PG::BasicTypeMapForResults.new conn\n"
319
+ " # ……これは結果の値の対応付けに作用します。\n"
320
+ " conn.exec(\"select 1, now(), '{2,3}'::int[]\").values\n"
321
+ " # => [[1, 2014-09-21 20:51:56 +0200, [2, 3]]]\n"
322
+ "\n"
323
+ " conn.type_map_for_queries = PG::BasicTypeMapForQueries.new conn\n"
324
+ " # ……そしてこれは引数値の対応付けのためのものです。\n"
325
+ " conn.exec_params(\"SELECT $1::text, $2::text, $3::text\", [1, 1.23, [2,3]]).values\n"
326
+ " # => [[\"1\", \"1.2300000000000000E+00\", \"{2,3}\"]]\n"
327
+
328
+ #. type: Plain text
329
+ #: ../README.md:110
330
+ msgid ""
331
+ "But Pg's type casting is highly customizable. That's why it's divided into 2 "
332
+ "layers:"
333
+ msgstr ""
334
+ "しかしPgの型変換はかなり調整が効きます。2層に分かれているのがその理由です。"
335
+
336
+ #. type: Title ###
337
+ #: ../README.md:111
338
+ #, no-wrap
339
+ msgid "Encoders / Decoders (ext/pg_*coder.c, lib/pg/*coder.rb)"
340
+ msgstr "エンコーダーとデコーダー (ext/pg_*coder.c, lib/pg/*coder.rb)"
341
+
342
+ #. type: Plain text
343
+ #: ../README.md:118
344
+ msgid ""
345
+ "This is the lower layer, containing encoding classes that convert Ruby "
346
+ "objects for transmission to the DBMS and decoding classes to convert "
347
+ "received data back to Ruby objects. The classes are namespaced according to "
348
+ "their format and direction in PG::TextEncoder, PG::TextDecoder, PG::"
349
+ "BinaryEncoder and PG::BinaryDecoder."
350
+ msgstr ""
351
+ "こちらはより低層で、DBMSへ転送するためにRubyのオブジェクトを変換するエンコーディングクラスと、取得してきたデータをRubyのオブジェクトに変換し戻すデコーディングクラスが含まれています。\n"
352
+ "クラスはそれぞれの形式によって名前空間 PG::TextEncoder, PG::TextDecoder, PG::BinaryEncoder, そして PG::BinaryDecoder に分かれています。"
353
+
354
+ # 以下によるとcomposite typeは複合型と訳すのが良さそうです。
355
+ #
356
+ # PostgreSQL 15.0文書
357
+ # 第8章 データ型
358
+ # 8.16. 複合型
359
+ # https://pgsql-jp.github.io/current/html/rowtypes.html
360
+ #
361
+ # また、type OIDはOIDデータ型としました。
362
+ #
363
+ # PostgreSQL 15.0文書
364
+ # 第8章 データ型
365
+ # 8.19. オブジェクト識別子データ型
366
+ # https://pgsql-jp.github.io/current/html/datatype-oid.html
367
+ #. type: Plain text
368
+ #: ../README.md:124
369
+ msgid ""
370
+ "It is possible to assign a type OID, format code (text or binary) and "
371
+ "optionally a name to an encoder or decoder object. It's also possible to "
372
+ "build composite types by assigning an element encoder/decoder. PG::Coder "
373
+ "objects can be used to set up a PG::TypeMap or alternatively to convert "
374
+ "single values to/from their string representation."
375
+ msgstr ""
376
+ "エンコーダーないしデコーダーオブジェクトにOIDデータ型や形式コード(テキストないしバイナリ)や任意で名前を割り当てることができます。\n"
377
+ "要素のエンコーダーないしデコーダーを割り当てることによって複合型を構築することもできます。\n"
378
+ "PG::Coder オブジェクトは PG::TypeMap をセットアップしたり、その代わりに単一の値と文字列表現とを相互に変換したりするのに使えます。"
379
+
380
+ #. type: Plain text
381
+ #: ../README.md:126
382
+ msgid ""
383
+ "The following PostgreSQL column types are supported by ruby-pg (TE = Text "
384
+ "Encoder, TD = Text Decoder, BE = Binary Encoder, BD = Binary Decoder):"
385
+ msgstr ""
386
+ "ruby-pgでは以下のPostgreSQLカラム型に対応しています(TE = Text Encoder、TD = "
387
+ "Text Decoder、BE = Binary Encoder、BD = Binary Decoder)。"
388
+
389
+ #. type: Bullet: '* '
390
+ #: ../README.md:146
391
+ msgid ""
392
+ "Integer: [TE](rdoc-ref:PG::TextEncoder::Integer), [TD](rdoc-ref:PG::"
393
+ "TextDecoder::Integer), [BD](rdoc-ref:PG::BinaryDecoder::Integer) 💡 No "
394
+ "links? Switch to [here](https://deveiate.org/code/pg/README_md.html#label-"
395
+ "Type+Casts) 💡"
396
+ msgstr ""
397
+ "Integer: [TE](rdoc-ref:PG::TextEncoder::Integer)、[TD](rdoc-ref:PG::"
398
+ "TextDecoder::Integer)、[BD](rdoc-ref:PG::BinaryDecoder::Integer) 💡 リンクが"
399
+ "ないでしょうか。[こちら](https://deveiate.org/code/pg/README_ja_md."
400
+ "html#label-E5-9E-8B-E5-A4-89-E6-8F-9B)を代わりに見てください 💡"
401
+
402
+ #. type: Bullet: ' * '
403
+ #: ../README.md:146
404
+ msgid ""
405
+ "BE: [Int2](rdoc-ref:PG::BinaryEncoder::Int2), [Int4](rdoc-ref:PG::"
406
+ "BinaryEncoder::Int4), [Int8](rdoc-ref:PG::BinaryEncoder::Int8)"
407
+ msgstr ""
408
+ "BE: [Int2](rdoc-ref:PG::BinaryEncoder::Int2)、[Int4](rdoc-ref:PG::"
409
+ "BinaryEncoder::Int4)、[Int8](rdoc-ref:PG::BinaryEncoder::Int8)"
410
+
411
+ #. type: Bullet: '* '
412
+ #: ../README.md:146
413
+ msgid ""
414
+ "Float: [TE](rdoc-ref:PG::TextEncoder::Float), [TD](rdoc-ref:PG::TextDecoder::"
415
+ "Float), [BD](rdoc-ref:PG::BinaryDecoder::Float)"
416
+ msgstr ""
417
+ "Float: [TE](rdoc-ref:PG::TextEncoder::Float)、[TD](rdoc-ref:PG::TextDecoder::"
418
+ "Float)、[BD](rdoc-ref:PG::BinaryDecoder::Float)"
419
+
420
+ #. type: Bullet: ' * '
421
+ #: ../README.md:146
422
+ msgid ""
423
+ "BE: [Float4](rdoc-ref:PG::BinaryEncoder::Float4), [Float8](rdoc-ref:PG::"
424
+ "BinaryEncoder::Float8)"
425
+ msgstr "BE: [Float4](rdoc-ref:PG::BinaryEncoder::Float4), [Float8](rdoc-ref:PG::BinaryEncoder::Float8)"
426
+
427
+ #. type: Bullet: '* '
428
+ #: ../README.md:146
429
+ msgid ""
430
+ "Numeric: [TE](rdoc-ref:PG::TextEncoder::Numeric), [TD](rdoc-ref:PG::"
431
+ "TextDecoder::Numeric)"
432
+ msgstr ""
433
+ "Numeric: [TE](rdoc-ref:PG::TextEncoder::Numeric)、[TD](rdoc-ref:PG::"
434
+ "TextDecoder::Numeric)"
435
+
436
+ #. type: Bullet: '* '
437
+ #: ../README.md:146
438
+ msgid ""
439
+ "Boolean: [TE](rdoc-ref:PG::TextEncoder::Boolean), [TD](rdoc-ref:PG::"
440
+ "TextDecoder::Boolean), [BE](rdoc-ref:PG::BinaryEncoder::Boolean), [BD](rdoc-"
441
+ "ref:PG::BinaryDecoder::Boolean)"
442
+ msgstr ""
443
+ "Boolean: [TE](rdoc-ref:PG::TextEncoder::Boolean)、[TD](rdoc-ref:PG::"
444
+ "TextDecoder::Boolean)、[BE](rdoc-ref:PG::BinaryEncoder::Boolean)、[BD](rdoc-"
445
+ "ref:PG::BinaryDecoder::Boolean)"
446
+
447
+ #. type: Bullet: '* '
448
+ #: ../README.md:146
449
+ msgid ""
450
+ "String: [TE](rdoc-ref:PG::TextEncoder::String), [TD](rdoc-ref:PG::"
451
+ "TextDecoder::String), [BE](rdoc-ref:PG::BinaryEncoder::String), [BD](rdoc-"
452
+ "ref:PG::BinaryDecoder::String)"
453
+ msgstr ""
454
+ "String: [TE](rdoc-ref:PG::TextEncoder::String)、[TD](rdoc-ref:PG::"
455
+ "TextDecoder::String)、[BE](rdoc-ref:PG::BinaryEncoder::String)、[BD](rdoc-"
456
+ "ref:PG::BinaryDecoder::String)"
457
+
458
+ #. type: Bullet: '* '
459
+ #: ../README.md:146
460
+ msgid ""
461
+ "Bytea: [TE](rdoc-ref:PG::TextEncoder::Bytea), [TD](rdoc-ref:PG::TextDecoder::"
462
+ "Bytea), [BE](rdoc-ref:PG::BinaryEncoder::Bytea), [BD](rdoc-ref:PG::"
463
+ "BinaryDecoder::Bytea)"
464
+ msgstr ""
465
+ "Bytea: [TE](rdoc-ref:PG::TextEncoder::Bytea)、[TD](rdoc-ref:PG::TextDecoder::"
466
+ "Bytea)、[BE](rdoc-ref:PG::BinaryEncoder::Bytea)、[BD](rdoc-ref:PG::"
467
+ "BinaryDecoder::Bytea)"
468
+
469
+ #. type: Bullet: '* '
470
+ #: ../README.md:146
471
+ msgid ""
472
+ "Base64: [TE](rdoc-ref:PG::TextEncoder::ToBase64), [TD](rdoc-ref:PG::"
473
+ "TextDecoder::FromBase64), [BE](rdoc-ref:PG::BinaryEncoder::FromBase64), [BD]"
474
+ "(rdoc-ref:PG::BinaryDecoder::ToBase64)"
475
+ msgstr ""
476
+ "Base64: [TE](rdoc-ref:PG::TextEncoder::ToBase64)、[TD](rdoc-ref:PG::"
477
+ "TextDecoder::FromBase64)、[BE](rdoc-ref:PG::BinaryEncoder::FromBase64)、[BD]"
478
+ "(rdoc-ref:PG::BinaryDecoder::ToBase64)"
479
+
480
+ #. type: Bullet: '* '
481
+ #: ../README.md:146
482
+ msgid "Timestamp:"
483
+ msgstr "Timestamp:"
484
+
485
+ #. type: Bullet: ' * '
486
+ #: ../README.md:146
487
+ msgid ""
488
+ "TE: [local](rdoc-ref:PG::TextEncoder::TimestampWithoutTimeZone), [UTC](rdoc-"
489
+ "ref:PG::TextEncoder::TimestampUtc), [with-TZ](rdoc-ref:PG::TextEncoder::"
490
+ "TimestampWithTimeZone)"
491
+ msgstr ""
492
+ "TE: [現地時間](rdoc-ref:PG::TextEncoder::TimestampWithoutTimeZone)、[UTC]"
493
+ "(rdoc-ref:PG::TextEncoder::TimestampUtc)、[タイムゾーン付き](rdoc-ref:PG::"
494
+ "TextEncoder::TimestampWithTimeZone)"
495
+
496
+ #. type: Bullet: ' * '
497
+ #: ../README.md:146
498
+ msgid ""
499
+ "TD: [local](rdoc-ref:PG::TextDecoder::TimestampLocal), [UTC](rdoc-ref:PG::"
500
+ "TextDecoder::TimestampUtc), [UTC-to-local](rdoc-ref:PG::TextDecoder::"
501
+ "TimestampUtcToLocal)"
502
+ msgstr ""
503
+ "TD: [現地時間](rdoc-ref:PG::TextDecoder::TimestampLocal)、[UTC](rdoc-ref:PG::"
504
+ "TextDecoder::TimestampUtc)、[UTCから現地時間へ](rdoc-ref:PG::TextDecoder::"
505
+ "TimestampUtcToLocal)"
506
+
507
+ #. type: Bullet: ' * '
508
+ #: ../README.md:146
509
+ msgid ""
510
+ "BE: [local](rdoc-ref:PG::BinaryEncoder::TimestampLocal), [UTC](rdoc-ref:PG::"
511
+ "BinaryEncoder::TimestampUtc)"
512
+ msgstr "BE: [現地時間](rdoc-ref:PG::BinaryEncoder::TimestampLocal)、[UTC](rdoc-ref:PG::BinaryEncoder::TimestampUtc)"
513
+
514
+ #. type: Bullet: ' * '
515
+ #: ../README.md:146
516
+ msgid ""
517
+ "BD: [local](rdoc-ref:PG::BinaryDecoder::TimestampLocal), [UTC](rdoc-ref:PG::"
518
+ "BinaryDecoder::TimestampUtc), [UTC-to-local](rdoc-ref:PG::BinaryDecoder::"
519
+ "TimestampUtcToLocal)"
520
+ msgstr ""
521
+ "BD: [現地時間](rdoc-ref:PG::BinaryDecoder::TimestampLocal)、[UTC](rdoc-ref:"
522
+ "PG::BinaryDecoder::TimestampUtc)、[UTCから現地時間へ](rdoc-ref:PG::"
523
+ "BinaryDecoder::TimestampUtcToLocal)"
524
+
525
+ #. type: Bullet: '* '
526
+ #: ../README.md:146
527
+ msgid ""
528
+ "Date: [TE](rdoc-ref:PG::TextEncoder::Date), [TD](rdoc-ref:PG::TextDecoder::"
529
+ "Date), [BE](rdoc-ref:PG::BinaryEncoder::Date), [BD](rdoc-ref:PG::"
530
+ "BinaryDecoder::Date)"
531
+ msgstr "日付:[TE](rdoc-ref:PG::TextEncoder::Date)、[TD](rdoc-ref:PG::TextDecoder::Date)、[BE](rdoc-ref:PG::BinaryEncoder::Date)、[BD](rdoc-ref:PG::BinaryDecoder::Date)"
532
+
533
+ #. type: Bullet: '* '
534
+ #: ../README.md:146
535
+ msgid ""
536
+ "JSON and JSONB: [TE](rdoc-ref:PG::TextEncoder::JSON), [TD](rdoc-ref:PG::"
537
+ "TextDecoder::JSON)"
538
+ msgstr ""
539
+ "JSONとJSONB: [TE](rdoc-ref:PG::TextEncoder::JSON)、[TD](rdoc-ref:PG::"
540
+ "TextDecoder::JSON)"
541
+
542
+ #. type: Bullet: '* '
543
+ #: ../README.md:146
544
+ msgid ""
545
+ "Inet: [TE](rdoc-ref:PG::TextEncoder::Inet), [TD](rdoc-ref:PG::TextDecoder::"
546
+ "Inet)"
547
+ msgstr ""
548
+ "Inet: [TE](rdoc-ref:PG::TextEncoder::Inet)、[TD](rdoc-ref:PG::TextDecoder::"
549
+ "Inet)"
550
+
551
+ #. type: Bullet: '* '
552
+ #: ../README.md:146
553
+ msgid ""
554
+ "Array: [TE](rdoc-ref:PG::TextEncoder::Array), [TD](rdoc-ref:PG::TextDecoder::"
555
+ "Array)"
556
+ msgstr ""
557
+ "Array: [TE](rdoc-ref:PG::TextEncoder::Array)、[TD](rdoc-ref:PG::TextDecoder::"
558
+ "Array)"
559
+
560
+ #. type: Bullet: '* '
561
+ #: ../README.md:146
562
+ msgid ""
563
+ "Composite Type (also called \"Row\" or \"Record\"): [TE](rdoc-ref:PG::"
564
+ "TextEncoder::Record), [TD](rdoc-ref:PG::TextDecoder::Record)"
565
+ msgstr ""
566
+ "複合型(「行」や「レコード」などとも言います):[TE](rdoc-ref:PG::"
567
+ "TextEncoder::Record)、[TD](rdoc-ref:PG::TextDecoder::Record)"
568
+
569
+ #. type: Plain text
570
+ #: ../README.md:148
571
+ msgid ""
572
+ "The following text and binary formats can also be encoded although they are "
573
+ "not used as column type:"
574
+ msgstr "カラム型として使われていませんが、以下のテキスト形式とバイナリ形式もエンコードできます。"
575
+
576
+ #. type: Bullet: '* '
577
+ #: ../README.md:152
578
+ msgid ""
579
+ "COPY input and output data: [TE](rdoc-ref:PG::TextEncoder::CopyRow), [TD]"
580
+ "(rdoc-ref:PG::TextDecoder::CopyRow), [BE](rdoc-ref:PG::BinaryEncoder::"
581
+ "CopyRow), [BD](rdoc-ref:PG::BinaryDecoder::CopyRow)"
582
+ msgstr ""
583
+ "COPYの入出力データ:[TE](rdoc-ref:PG::TextEncoder::CopyRow)、[TD](rdoc-ref:"
584
+ "PG::TextDecoder::CopyRow), [BE](rdoc-ref:PG::BinaryEncoder::CopyRow), [BD]"
585
+ "(rdoc-ref:PG::BinaryDecoder::CopyRow)"
586
+
587
+ #. type: Bullet: '* '
588
+ #: ../README.md:152
589
+ msgid ""
590
+ "Literal for insertion into SQL string: [TE](rdoc-ref:PG::TextEncoder::"
591
+ "QuotedLiteral)"
592
+ msgstr ""
593
+ "SQL文字列に挿入するリテラル:[TE](rdoc-ref:PG::TextEncoder::QuotedLiteral)"
594
+
595
+ #. type: Bullet: '* '
596
+ #: ../README.md:152
597
+ msgid ""
598
+ "SQL-Identifier: [TE](rdoc-ref:PG::TextEncoder::Identifier), [TD](rdoc-ref:"
599
+ "PG::TextDecoder::Identifier)"
600
+ msgstr ""
601
+ "SQLの識別子: [TE](rdoc-ref:PG::TextEncoder::Identifier)、[TD](rdoc-ref:PG::"
602
+ "TextDecoder::Identifier)"
603
+
604
+ #. type: Title ###
605
+ #: ../README.md:153
606
+ #, no-wrap
607
+ msgid "PG::TypeMap and derivations (ext/pg_type_map*.c, lib/pg/type_map*.rb)"
608
+ msgstr "PG::TypeMap とその派生 (ext/pg_type_map*.c, lib/pg/type_map*.rb)"
609
+
610
+ #. type: Plain text
611
+ #: ../README.md:159
612
+ msgid ""
613
+ "A TypeMap defines which value will be converted by which encoder/decoder. "
614
+ "There are different type map strategies, implemented by several derivations "
615
+ "of this class. They can be chosen and configured according to the particular "
616
+ "needs for type casting. The default type map is PG::TypeMapAllStrings."
617
+ msgstr ""
618
+ "TypeMapはエンコーダーまたはデコーダーのどちらによってどの値を変換するかを定義します。\n"
619
+ "様々な型の対応付け戦略があるので、このクラスにはいくつかの派生が実装されています。\n"
620
+ "型変換の特有の需要に合わせてそれらの派生から選んで調整を加えることができます。\n"
621
+ "既定の型の対応付けは PG::TypeMapAllStrings です。"
622
+
623
+ #. type: Plain text
624
+ #: ../README.md:163
625
+ msgid ""
626
+ "A type map can be assigned per connection or per query respectively per "
627
+ "result set. Type maps can also be used for COPY in and out data streaming. "
628
+ "See PG::Connection#copy_data ."
629
+ msgstr ""
630
+ "型の対応付けは、結果の集合それぞれに対し、接続毎ないしクエリ毎に割り当てることができます。\n"
631
+ "型の対応付けはCOPYの入出力データストリーミングでも使うことができます。\n"
632
+ "PG::Connection#copy_data を参照してください。"
633
+
634
+ #. type: Plain text
635
+ #: ../README.md:165
636
+ msgid "The following base type maps are available:"
637
+ msgstr "以下の基底となる型の対応付けが使えます。"
638
+
639
+ #. type: Bullet: '* '
640
+ #: ../README.md:171
641
+ msgid ""
642
+ "PG::TypeMapAllStrings - encodes and decodes all values to and from strings "
643
+ "(default)"
644
+ msgstr ""
645
+ "PG::TypeMapAllStrings - 全ての値と文字列について相互にエンコードとデコードを"
646
+ "行います(既定)"
647
+
648
+ #. type: Bullet: '* '
649
+ #: ../README.md:171
650
+ msgid ""
651
+ "PG::TypeMapByClass - selects encoder based on the class of the value to be "
652
+ "sent"
653
+ msgstr ""
654
+ "PG::TypeMapByClass - 送信する値のクラスに基づいてエンコーダーを選択します"
655
+
656
+ #. type: Bullet: '* '
657
+ #: ../README.md:171
658
+ msgid "PG::TypeMapByColumn - selects encoder and decoder by column order"
659
+ msgstr ""
660
+ "PG::TypeMapByColumn - カラムの順番によってエンコーダーとデコーダーを選択しま"
661
+ "す"
662
+
663
+ #. type: Bullet: '* '
664
+ #: ../README.md:171
665
+ msgid "PG::TypeMapByOid - selects decoder by PostgreSQL type OID"
666
+ msgstr ""
667
+ "PG::TypeMapByOid - PostgreSQLのOIDデータ型によってデコーダーを選択します"
668
+
669
+ #. type: Bullet: '* '
670
+ #: ../README.md:171
671
+ msgid "PG::TypeMapInRuby - define a custom type map in ruby"
672
+ msgstr "PG::TypeMapInRuby - Rubyで独自の型の対応付けを定義します"
673
+
674
+ #. type: Plain text
675
+ #: ../README.md:173
676
+ msgid ""
677
+ "The following type maps are prefilled with type mappings from the PG::"
678
+ "BasicTypeRegistry :"
679
+ msgstr "以下の型の対応付けは PG::BasicTypeRegistry 由来の型の対応付けが入った状態になっています。"
680
+
681
+ #. type: Bullet: '* '
682
+ #: ../README.md:177
683
+ msgid ""
684
+ "PG::BasicTypeMapForResults - a PG::TypeMapByOid prefilled with decoders for "
685
+ "common PostgreSQL column types"
686
+ msgstr "PG::BasicTypeMapForResults - PG::TypeMapByOid によくあるPostgreSQLカラム型用にデコーダーが入った状態になっています"
687
+
688
+ #. type: Bullet: '* '
689
+ #: ../README.md:177
690
+ msgid ""
691
+ "PG::BasicTypeMapBasedOnResult - a PG::TypeMapByOid prefilled with encoders "
692
+ "for common PostgreSQL column types"
693
+ msgstr "PG::BasicTypeMapBasedOnResult - PG::TypeMapByOid によくあるPostgreSQLカラム型用のエンコーダーが入った状態になっています"
694
+
695
+ #. type: Bullet: '* '
696
+ #: ../README.md:177
697
+ msgid ""
698
+ "PG::BasicTypeMapForQueries - a PG::TypeMapByClass prefilled with encoders "
699
+ "for common Ruby value classes"
700
+ msgstr "PG::BasicTypeMapForQueries - PG::TypeMapByClass によくあるRubyの値クラス用にエンコーダーが入った状態になっています"
701
+
702
+ #. type: Title ##
703
+ #: ../README.md:179
704
+ #, no-wrap
705
+ msgid "Thread support"
706
+ msgstr "スレッド対応"
707
+
708
+ #. type: Plain text
709
+ #: ../README.md:184
710
+ msgid ""
711
+ "PG is thread safe in such a way that different threads can use different PG::"
712
+ "Connection objects concurrently. However it is not safe to access any Pg "
713
+ "objects simultaneously from more than one thread. So make sure to open a "
714
+ "new database server connection for every new thread or use a wrapper library "
715
+ "like ActiveRecord that manages connections in a thread safe way."
716
+ msgstr ""
717
+ "PGには個々のスレッドが別々の PG::Connection オブジェクトを同時に使えるという点でスレッド安全性があります。\n"
718
+ "しかし1つ以上のスレッドから同時にPgのオブジェクトにアクセスすると安全ではありません。\n"
719
+ "そのため必ず、毎回新しいスレッドを作るときに新しいデータベースサーバー接続を開くか、スレッド安全性のある方法で接続を管理するActiveRecordのようなラッパーライブラリを使うようにしてください。"
720
+
721
+ #. type: Plain text
722
+ #: ../README.md:186
723
+ msgid ""
724
+ "If messages like the following are printed to stderr, you're probably using "
725
+ "one connection from several threads:"
726
+ msgstr ""
727
+ "以下のようなメッセージが標準エラー出力に表示された場合、恐らく複数のスレッド"
728
+ "が1つの接続を使っています。"
729
+
730
+ #. type: Plain text
731
+ #: ../README.md:192
732
+ #, no-wrap
733
+ msgid ""
734
+ " message type 0x31 arrived from server while idle\n"
735
+ " message type 0x32 arrived from server while idle\n"
736
+ " message type 0x54 arrived from server while idle\n"
737
+ " message type 0x43 arrived from server while idle\n"
738
+ " message type 0x5a arrived from server while idle\n"
739
+ msgstr ""
740
+ " message type 0x31 arrived from server while idle\n"
741
+ " message type 0x32 arrived from server while idle\n"
742
+ " message type 0x54 arrived from server while idle\n"
743
+ " message type 0x43 arrived from server while idle\n"
744
+ " message type 0x5a arrived from server while idle\n"
745
+
746
+ #. type: Title ##
747
+ #: ../README.md:194
748
+ #, no-wrap
749
+ msgid "Fiber IO scheduler support"
750
+ msgstr "Fiber IOスケジューラー対応"
751
+
752
+ #. type: Plain text
753
+ #: ../README.md:201
754
+ msgid ""
755
+ "Pg is fully compatible with `Fiber.scheduler` introduced in Ruby-3.0 since "
756
+ "pg-1.3.0. On Windows support for `Fiber.scheduler` is available on Ruby-3.1 "
757
+ "or newer. All possibly blocking IO operations are routed through the `Fiber."
758
+ "scheduler` if one is registered for the running thread. That is why pg "
759
+ "internally uses the asynchronous libpq interface even for synchronous/"
760
+ "blocking method calls. It also uses Ruby's DNS resolution instead of "
761
+ "libpq's builtin functions."
762
+ msgstr ""
763
+ "pg-1.3.0以降で、PgはRuby-3.0で導入された`Fiber.scheduler`に完全に対応しています。\n"
764
+ "Windowsでは、`Fiber.scheduler`対応はRuby-3.1以降で使えます。\n"
765
+ "`Fiber.scheduler`が走らせているスレッドに登録されている場合、起こりうる全てのブロッキングIO操作はそのスケジューラーを経由します。\n"
766
+ "同期的であったりブロックしたりするメソッド呼び出しについてもpgが内部的に非同期のlibpqインターフェースを使っているのはそれが理由です。\n"
767
+ "またlibpqの組み込み関数に代えてRubyのDNS解決を使っています。"
768
+
769
+ #. type: Plain text
770
+ #: ../README.md:205
771
+ msgid ""
772
+ "Internally Pg always uses the nonblocking connection mode of libpq. It then "
773
+ "behaves like running in blocking mode but ensures, that all blocking IO is "
774
+ "handled in Ruby through a possibly registered `Fiber.scheduler`. When `PG::"
775
+ "Connection.setnonblocking(true)` is called then the nonblocking state stays "
776
+ "enabled, but the additional handling of blocking states is disabled, so that "
777
+ "the calling program has to handle blocking states on its own."
778
+ msgstr ""
779
+ "内部的にPgは常にlibpqのノンブロッキング接続モードを使います。\n"
780
+ "それからブロッキングモードで走っているように振舞いますが、もし`Fiber.scheduler`が登録されていれば全てのブロッキングIOはそのスケジューラーを通じてRubyで制御されます。\n"
781
+ "`PG::Connection.setnonblocking(true)`が呼ばれたらノンブロッキング状態が有効になったままになりますが、それ以降のブロッキング状態の制御が無効になるので、呼び出しているプログラムはブロッキング状態を自力で制御しなければなりません。"
782
+
783
+ #. type: Plain text
784
+ #: ../README.md:209
785
+ msgid ""
786
+ "An exception to this rule are the methods for large objects like `PG::"
787
+ "Connection#lo_create` and authentication methods using external libraries "
788
+ "(like GSSAPI authentication). They are not compatible with `Fiber."
789
+ "scheduler`, so that blocking states are not passed to the registered IO "
790
+ "scheduler. That means the operation will work properly, but IO waiting "
791
+ "states can not be used to switch to another Fiber doing IO."
792
+ msgstr ""
793
+ "この規則の1つの例外には、`PG::Connection#lo_create`や外部ライブラリを使う認証"
794
+ "メソッド(GSSAPI認証など)のような、大きめのオブジェクト用のメソッドがありま"
795
+ "す。これらは`Fiber.scheduler`と互換性がないため、ブロッキング状態は登録された"
796
+ "IOスケジューラに渡されません。つまり操作は適切に実行されますが、IO待ち状態に"
797
+ "別のIOを扱うFiberから使用を切り替えてくることができなくなります。"
798
+
799
+ #. type: Title ##
800
+ #: ../README.md:211
801
+ #, no-wrap
802
+ msgid "Ractor support"
803
+ msgstr "Ractor対応"
804
+
805
+ #. type: Plain text
806
+ #: ../README.md:217
807
+ msgid ""
808
+ "Pg is fully compatible with Ractor introduced in Ruby-3.0 since pg-1.5.0. "
809
+ "All type en/decoders and type maps are shareable between ractors if they are "
810
+ "made frozen by `Ractor.make_shareable`. Also frozen PG::Result and PG::"
811
+ "Tuple objects can be shared. All frozen objects (except PG::Connection) can "
812
+ "still be used to do communication with the PostgreSQL server or to read "
813
+ "retrieved data."
814
+ msgstr ""
815
+ "pg-1.5.0以降で、PgはRuby-3.0で導入されたRactorと完全な互換性があります。\n"
816
+ "型エンコーダーないしデコーダー、及び型の対応付けが`Ractor.make_shareable`により凍結されている場合、これらをractor間で共有できます。\n"
817
+ "また凍結された PG::Result と PG::Tuple オブジェクトも共有できます。\n"
818
+ "少なくとも全ての凍結されたオブジェクト(ただし PG::Connection を除く)はPostgreSQLサーバーとのやり取りをしたり取得されたデータを読むのに使えます。"
819
+
820
+ #. type: Plain text
821
+ #: ../README.md:219
822
+ msgid ""
823
+ "PG::Connection is not shareable and must be created within each Ractor to "
824
+ "establish a dedicated connection."
825
+ msgstr "PG::Connection は共有できません。個々の接続を確立するために、それぞれのRactor内で作られなければなりません。"
826
+
827
+ #. type: Title ##
828
+ #: ../README.md:221
829
+ #, no-wrap
830
+ msgid "Contributing"
831
+ msgstr "貢献"
832
+
833
+ #. type: Plain text
834
+ #: ../README.md:225
835
+ msgid ""
836
+ "To report bugs, suggest features, or check out the source with Git, [check "
837
+ "out the project page](https://github.com/ged/ruby-pg)."
838
+ msgstr ""
839
+ "バグを報告したり機能を提案したりGitでソースをチェックアウトしたりするには[プ"
840
+ "ロジェクトページをご確認ください](https://github.com/ged/ruby-pg)。"
841
+
842
+ #. type: Plain text
843
+ #: ../README.md:227
844
+ msgid "After checking out the source, install all dependencies:"
845
+ msgstr "ソースをチェックアウトしたあとは全ての依存関係をインストールします。"
846
+
847
+ #. type: Plain text
848
+ #: ../README.md:229
849
+ #, no-wrap
850
+ msgid " $ bundle install\n"
851
+ msgstr " $ bundle install\n"
852
+
853
+ #. type: Plain text
854
+ #: ../README.md:232
855
+ msgid ""
856
+ "Cleanup extension files, packaging files, test databases. Run this to "
857
+ "change between PostgreSQL versions:"
858
+ msgstr ""
859
+ "拡張ファイル、パッケージファイル、テストデータベースを一掃するには、このコマ"
860
+ "ンドを走らせてください。PostgreSQLのバージョンも切り替わります。"
861
+
862
+ #. type: Plain text
863
+ #: ../README.md:234
864
+ #, no-wrap
865
+ msgid " $ rake clean\n"
866
+ msgstr " $ rake clean\n"
867
+
868
+ #. type: Plain text
869
+ #: ../README.md:236
870
+ msgid "Compile extension:"
871
+ msgstr "拡張をコンパイルするには次のようにします。"
872
+
873
+ #. type: Plain text
874
+ #: ../README.md:238
875
+ #, no-wrap
876
+ msgid " $ rake compile\n"
877
+ msgstr " $ rake compile\n"
878
+
879
+ #. type: Plain text
880
+ #: ../README.md:240
881
+ msgid ""
882
+ "Run tests/specs on the PostgreSQL version that `pg_config --bindir` points "
883
+ "to:"
884
+ msgstr ""
885
+ "`pg_config --bindir`が指すPostgreSQLのバージョンでテストやスペックを走らせる"
886
+ "には次のようにします。"
887
+
888
+ #. type: Plain text
889
+ #: ../README.md:242
890
+ #, no-wrap
891
+ msgid " $ rake test\n"
892
+ msgstr " $ rake test\n"
893
+
894
+ #. type: Plain text
895
+ #: ../README.md:244
896
+ msgid ""
897
+ "Or run a specific test per file and line number on a specific PostgreSQL "
898
+ "version:"
899
+ msgstr ""
900
+ "あるいは特定のPostgreSQLのバージョンで、ファイル中の行番号を使って特定のテス"
901
+ "トを走らせるには次のようにします。"
902
+
903
+ #. type: Plain text
904
+ #: ../README.md:246
905
+ #, no-wrap
906
+ msgid " $ PATH=/usr/lib/postgresql/14/bin:$PATH rspec -Ilib -fd spec/pg/connection_spec.rb:455\n"
907
+ msgstr " $ PATH=/usr/lib/postgresql/14/bin:$PATH rspec -Ilib -fd spec/pg/connection_spec.rb:455\n"
908
+
909
+ #. type: Plain text
910
+ #: ../README.md:248
911
+ msgid "Generate the API documentation:"
912
+ msgstr "APIドキュメントを生成するには次のようにします。"
913
+
914
+ #. type: Plain text
915
+ #: ../README.md:250
916
+ #, no-wrap
917
+ msgid " $ rake docs\n"
918
+ msgstr " $ rake docs\n"
919
+
920
+ #. type: Plain text
921
+ #: ../README.md:252
922
+ msgid "Make sure, that all bugs and new features are verified by tests."
923
+ msgstr "必ず全てのバグと新機能についてテストを使って検証してください。"
924
+
925
+ #. type: Plain text
926
+ #: ../README.md:255
927
+ msgid ""
928
+ "The current maintainers are Michael Granger <ged@FaerieMUD.org> and Lars "
929
+ "Kanis <lars@greiz-reinsdorf.de>."
930
+ msgstr ""
931
+ "現在のメンテナはMichael Granger <ged@FaerieMUD.org>とLars Kanis <lars@greiz-"
932
+ "reinsdorf.de>です。"
933
+
934
+ #. type: Title ##
935
+ #: ../README.md:257
936
+ #, no-wrap
937
+ msgid "Copying"
938
+ msgstr "著作権"
939
+
940
+ #. type: Plain text
941
+ #: ../README.md:260
942
+ msgid "Copyright (c) 1997-2022 by the authors."
943
+ msgstr "Copyright (c) 1997-2022 by the authors."
944
+
945
+ #. type: Bullet: '* '
946
+ #: ../README.md:269
947
+ msgid "Jeff Davis <ruby-pg@j-davis.com>"
948
+ msgstr "Jeff Davis <ruby-pg@j-davis.com>"
949
+
950
+ #. type: Bullet: '* '
951
+ #: ../README.md:269
952
+ msgid "Guy Decoux (ts) <decoux@moulon.inra.fr>"
953
+ msgstr "Guy Decoux (ts) <decoux@moulon.inra.fr>"
954
+
955
+ #. type: Bullet: '* '
956
+ #: ../README.md:269
957
+ msgid "Michael Granger <ged@FaerieMUD.org>"
958
+ msgstr "Michael Granger <ged@FaerieMUD.org>"
959
+
960
+ #. type: Bullet: '* '
961
+ #: ../README.md:269
962
+ msgid "Lars Kanis <lars@greiz-reinsdorf.de>"
963
+ msgstr "Lars Kanis <lars@greiz-reinsdorf.de>"
964
+
965
+ #. type: Bullet: '* '
966
+ #: ../README.md:269
967
+ msgid "Dave Lee"
968
+ msgstr "Dave Lee"
969
+
970
+ #. type: Bullet: '* '
971
+ #: ../README.md:269
972
+ msgid "Eiji Matsumoto <usagi@ruby.club.or.jp>"
973
+ msgstr "Eiji Matsumoto <usagi@ruby.club.or.jp>"
974
+
975
+ #. type: Bullet: '* '
976
+ #: ../README.md:269
977
+ msgid "Yukihiro Matsumoto <matz@ruby-lang.org>"
978
+ msgstr "Yukihiro Matsumoto <matz@ruby-lang.org>"
979
+
980
+ #. type: Bullet: '* '
981
+ #: ../README.md:269
982
+ msgid "Noboru Saitou <noborus@netlab.jp>"
983
+ msgstr "Noboru Saitou <noborus@netlab.jp>"
984
+
985
+ #. type: Plain text
986
+ #: ../README.md:273
987
+ msgid ""
988
+ "You may redistribute this software under the same terms as Ruby itself; see "
989
+ "https://www.ruby-lang.org/en/about/license.txt or the BSDL file in the "
990
+ "source for details."
991
+ msgstr ""
992
+ "You may redistribute this software under the same terms as Ruby itself; see "
993
+ "https://www.ruby-lang.org/en/about/license.txt or the BSDL file in the "
994
+ "source for details.\n"
995
+ "(参考訳:このソフトウェアはRuby自体と同じ条件の元で再配布することができま"
996
+ "す。詳細については https://www.ruby-lang.org/en/about/license.txt やソース中"
997
+ "のBSDLファイルを参照してください)"
998
+
999
+ #. type: Plain text
1000
+ #: ../README.md:276
1001
+ msgid ""
1002
+ "Portions of the code are from the PostgreSQL project, and are distributed "
1003
+ "under the terms of the PostgreSQL license, included in the file POSTGRES."
1004
+ msgstr ""
1005
+ "Portions of the code are from the PostgreSQL project, and are distributed "
1006
+ "\"\n"
1007
+ "\"under the terms of the PostgreSQL license, included in the file POSTGRES.\n"
1008
+ "(参考訳:コードの一部はPostgreSQLプロジェクトから来ており、PostgreSQLの使用"
1009
+ "許諾の条件の元で配布されます。ファイルPOSTGRESに含まれています)"
1010
+
1011
+ #. type: Plain text
1012
+ #: ../README.md:278
1013
+ msgid "Portions copyright LAIKA, Inc."
1014
+ msgstr "Portions copyright LAIKA, Inc."
1015
+
1016
+ #. type: Title ##
1017
+ #: ../README.md:280
1018
+ #, no-wrap
1019
+ msgid "Acknowledgments"
1020
+ msgstr "謝辞"
1021
+
1022
+ #. type: Plain text
1023
+ #: ../README.md:284
1024
+ msgid ""
1025
+ "See Contributors.rdoc for the many additional fine people that have "
1026
+ "contributed to this library over the years."
1027
+ msgstr "長年にわたって貢献してくださった方々については Contributors.rdoc を参照してください。"
1028
+
1029
+ #. type: Plain text
1030
+ #: ../README.md:286
1031
+ msgid ""
1032
+ "We are thankful to the people at the ruby-list and ruby-dev mailing lists. "
1033
+ "And to the people who developed PostgreSQL."
1034
+ msgstr ""
1035
+ "ruby-listとruby-devメーリングリストの方々に感謝します。またPostgreSQLを開発さ"
1036
+ "れた方々へも謝意を表します。"