cipherstash-pg 1.0.0.beta.1-x86_64-linux → 1.0.0.beta.4-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.appveyor.yml +42 -0
  3. data/.gems +6 -0
  4. data/.gemtest +0 -0
  5. data/.github/workflows/binary-gems.yml +117 -0
  6. data/.github/workflows/source-gem.yml +137 -0
  7. data/.gitignore +19 -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 +3 -3
  15. data/Gemfile.lock +45 -0
  16. data/{History.rdoc → History.md} +168 -153
  17. data/README.ja.md +266 -0
  18. data/README.md +272 -0
  19. data/Rakefile +65 -104
  20. data/Rakefile.cross +298 -0
  21. data/certs/larskanis-2023.pem +24 -0
  22. data/cipherstash-pg.gemspec +0 -0
  23. data/lib/2.7/pg_ext.so +0 -0
  24. data/lib/3.0/pg_ext.so +0 -0
  25. data/lib/3.1/pg_ext.so +0 -0
  26. data/lib/3.2/pg_ext.so +0 -0
  27. data/lib/cipherstash-pg/basic_type_map_based_on_result.rb +11 -0
  28. data/lib/cipherstash-pg/basic_type_map_for_queries.rb +113 -0
  29. data/lib/cipherstash-pg/basic_type_map_for_results.rb +30 -0
  30. data/lib/cipherstash-pg/basic_type_registry.rb +206 -0
  31. data/lib/cipherstash-pg/binary_decoder.rb +21 -0
  32. data/lib/cipherstash-pg/coder.rb +82 -0
  33. data/lib/cipherstash-pg/connection.rb +467 -0
  34. data/lib/cipherstash-pg/constants.rb +3 -0
  35. data/lib/cipherstash-pg/exceptions.rb +19 -0
  36. data/lib/cipherstash-pg/result.rb +22 -0
  37. data/lib/cipherstash-pg/text_decoder.rb +43 -0
  38. data/lib/cipherstash-pg/text_encoder.rb +67 -0
  39. data/lib/cipherstash-pg/tuple.rb +24 -0
  40. data/lib/cipherstash-pg/type_map_by_column.rb +11 -0
  41. data/lib/cipherstash-pg/version.rb +3 -0
  42. data/lib/cipherstash-pg.rb +56 -11
  43. data/lib/libpq.so.5 +0 -0
  44. data/misc/openssl-pg-segfault.rb +15 -25
  45. data/misc/postgres/Rakefile +13 -20
  46. data/misc/postgres/lib/postgres.rb +10 -14
  47. data/misc/ruby-pg/Rakefile +13 -20
  48. data/misc/ruby-pg/lib/ruby/pg.rb +10 -14
  49. data/rakelib/task_extension.rb +17 -31
  50. data/sample/array_insert.rb +7 -20
  51. data/sample/async_api.rb +54 -96
  52. data/sample/async_copyto.rb +20 -35
  53. data/sample/async_mixed.rb +22 -50
  54. data/sample/check_conn.rb +8 -20
  55. data/sample/copydata.rb +18 -68
  56. data/sample/copyfrom.rb +26 -78
  57. data/sample/copyto.rb +10 -16
  58. data/sample/cursor.rb +9 -19
  59. data/sample/disk_usage_report.rb +89 -174
  60. data/sample/issue-119.rb +45 -93
  61. data/sample/losample.rb +48 -66
  62. data/sample/minimal-testcase.rb +6 -17
  63. data/sample/notify_wait.rb +21 -67
  64. data/sample/pg_statistics.rb +100 -281
  65. data/sample/replication_monitor.rb +119 -218
  66. data/sample/test_binary_values.rb +14 -30
  67. data/sample/wal_shipper.rb +199 -431
  68. data/sample/warehouse_partitions.rb +157 -307
  69. data/translation/.po4a-version +7 -0
  70. data/translation/po/all.pot +875 -0
  71. data/translation/po/ja.po +868 -0
  72. data/translation/po4a.cfg +9 -0
  73. metadata +50 -28
  74. data/README.ja.rdoc +0 -13
  75. data/README.rdoc +0 -233
  76. data/lib/pg/basic_type_map_based_on_result.rb +0 -47
  77. data/lib/pg/basic_type_map_for_queries.rb +0 -193
  78. data/lib/pg/basic_type_map_for_results.rb +0 -81
  79. data/lib/pg/basic_type_registry.rb +0 -301
  80. data/lib/pg/binary_decoder.rb +0 -23
  81. data/lib/pg/coder.rb +0 -104
  82. data/lib/pg/connection.rb +0 -878
  83. data/lib/pg/constants.rb +0 -12
  84. data/lib/pg/exceptions.rb +0 -18
  85. data/lib/pg/result.rb +0 -43
  86. data/lib/pg/text_decoder.rb +0 -46
  87. data/lib/pg/text_encoder.rb +0 -59
  88. data/lib/pg/tuple.rb +0 -30
  89. data/lib/pg/type_map_by_column.rb +0 -16
  90. data/lib/pg/version.rb +0 -4
  91. data/lib/pg.rb +0 -55
@@ -0,0 +1,875 @@
1
+ # translation template for Pg.
2
+ # Copyright (C) 1997-2022 Pg authors.
3
+ # This file is distributed under the same license as the Pg.
4
+ #
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: Pg 1.4.5\n"
8
+ "POT-Creation-Date: 2023-02-23 22:20+0900\n"
9
+ "PO-Revision-Date: 2023-02-25 14:02+0900\n"
10
+ "Last-Translator: none\n"
11
+ "Language-Team: none\n"
12
+ "Language: en\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+
17
+ #. type: Title #
18
+ #: ../README.md:1
19
+ #, markdown-text, no-wrap
20
+ msgid "pg"
21
+ msgstr ""
22
+
23
+ #. type: Plain text
24
+ #: ../README.md:6
25
+ #, markdown-text
26
+ msgid ""
27
+ "home :: https://github.com/ged/ruby-pg docs :: http://deveiate.org/code/pg "
28
+ "clog :: link:/History.md"
29
+ msgstr ""
30
+
31
+ #. type: Plain text
32
+ #: ../README.md:8
33
+ #, markdown-text
34
+ msgid ""
35
+ "[![Join the chat at "
36
+ "https://gitter.im/ged/ruby-pg](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ged/ruby-pg?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)"
37
+ msgstr ""
38
+
39
+ #. type: Title ##
40
+ #: ../README.md:10
41
+ #, markdown-text, no-wrap
42
+ msgid "Description"
43
+ msgstr ""
44
+
45
+ #. type: Plain text
46
+ #: ../README.md:14
47
+ #, markdown-text
48
+ msgid ""
49
+ "Pg is the Ruby interface to the [PostgreSQL "
50
+ "RDBMS](http://www.postgresql.org/). It works with [PostgreSQL 9.3 and "
51
+ "later](http://www.postgresql.org/support/versioning/)."
52
+ msgstr ""
53
+
54
+ #. type: Plain text
55
+ #: ../README.md:16
56
+ #, markdown-text
57
+ msgid "A small example usage:"
58
+ msgstr ""
59
+
60
+ #. type: Fenced code block (ruby)
61
+ #: ../README.md:16
62
+ #, no-wrap
63
+ msgid ""
64
+ " #!/usr/bin/env ruby\n"
65
+ "\n"
66
+ " require 'pg'\n"
67
+ "\n"
68
+ " # Output a table of current connections to the DB\n"
69
+ " conn = PG.connect( dbname: 'sales' )\n"
70
+ " conn.exec( \"SELECT * FROM pg_stat_activity\" ) do |result|\n"
71
+ " puts \" PID | User | Query\"\n"
72
+ " result.each do |row|\n"
73
+ " puts \" %7d | %-16s | %s \" %\n"
74
+ " row.values_at('pid', 'usename', 'query')\n"
75
+ " end\n"
76
+ " end\n"
77
+ msgstr ""
78
+
79
+ #. type: Title ##
80
+ #: ../README.md:32
81
+ #, markdown-text, no-wrap
82
+ msgid "Build Status"
83
+ msgstr ""
84
+
85
+ #. type: Plain text
86
+ #: ../README.md:37
87
+ #, markdown-text
88
+ msgid ""
89
+ "[![Build Status Github "
90
+ "Actions](https://github.com/ged/ruby-pg/actions/workflows/source-gem.yml/badge.svg?branch=master)](https://github.com/ged/ruby-pg/actions/workflows/source-gem.yml) "
91
+ "[![Binary "
92
+ "gems](https://github.com/ged/ruby-pg/actions/workflows/binary-gems.yml/badge.svg?branch=master)](https://github.com/ged/ruby-pg/actions/workflows/binary-gems.yml) "
93
+ "[![Build Status "
94
+ "Appveyor](https://ci.appveyor.com/api/projects/status/gjx5axouf3b1wicp?svg=true)](https://ci.appveyor.com/project/ged/ruby-pg-9j8l3)"
95
+ msgstr ""
96
+
97
+ #. type: Title ##
98
+ #: ../README.md:39
99
+ #, markdown-text, no-wrap
100
+ msgid "Requirements"
101
+ msgstr ""
102
+
103
+ #. type: Bullet: '* '
104
+ #: ../README.md:43
105
+ #, markdown-text
106
+ msgid "Ruby 2.4 or newer"
107
+ msgstr ""
108
+
109
+ #. type: Bullet: '* '
110
+ #: ../README.md:43
111
+ #, markdown-text
112
+ msgid "PostgreSQL 9.3.x or later (with headers, -dev packages, etc)."
113
+ msgstr ""
114
+
115
+ #. type: Plain text
116
+ #: ../README.md:46
117
+ #, markdown-text
118
+ msgid ""
119
+ "It usually works with earlier versions of Ruby/PostgreSQL as well, but those "
120
+ "are not regularly tested."
121
+ msgstr ""
122
+
123
+ #. type: Title ##
124
+ #: ../README.md:48
125
+ #, markdown-text, no-wrap
126
+ msgid "Versioning"
127
+ msgstr ""
128
+
129
+ #. type: Plain text
130
+ #: ../README.md:51
131
+ #, markdown-text
132
+ msgid ""
133
+ "We tag and release gems according to the [Semantic "
134
+ "Versioning](http://semver.org/) principle."
135
+ msgstr ""
136
+
137
+ #. type: Plain text
138
+ #: ../README.md:53
139
+ #, markdown-text
140
+ msgid ""
141
+ "As a result of this policy, you can (and should) specify a dependency on "
142
+ "this gem using the [Pessimistic Version "
143
+ "Constraint](http://guides.rubygems.org/patterns/#pessimistic-version-constraint) "
144
+ "with two digits of precision."
145
+ msgstr ""
146
+
147
+ #. type: Plain text
148
+ #: ../README.md:55
149
+ #, markdown-text
150
+ msgid "For example:"
151
+ msgstr ""
152
+
153
+ #. type: Fenced code block (ruby)
154
+ #: ../README.md:56
155
+ #, no-wrap
156
+ msgid " spec.add_dependency 'pg', '~> 1.0'\n"
157
+ msgstr ""
158
+
159
+ #. type: Title ##
160
+ #: ../README.md:60
161
+ #, markdown-text, no-wrap
162
+ msgid "How To Install"
163
+ msgstr ""
164
+
165
+ #. type: Plain text
166
+ #: ../README.md:63
167
+ #, markdown-text
168
+ msgid "Install via RubyGems:"
169
+ msgstr ""
170
+
171
+ #. type: Plain text
172
+ #: ../README.md:65
173
+ #, markdown-text, no-wrap
174
+ msgid " gem install pg\n"
175
+ msgstr ""
176
+
177
+ #. type: Plain text
178
+ #: ../README.md:68
179
+ #, markdown-text
180
+ msgid ""
181
+ "You may need to specify the path to the 'pg_config' program installed with "
182
+ "Postgres:"
183
+ msgstr ""
184
+
185
+ #. type: Plain text
186
+ #: ../README.md:70
187
+ #, markdown-text, no-wrap
188
+ msgid " gem install pg -- --with-pg-config=<path to pg_config>\n"
189
+ msgstr ""
190
+
191
+ #. type: Plain text
192
+ #: ../README.md:72
193
+ #, markdown-text
194
+ msgid "If you're installing via Bundler, you can provide compile hints like so:"
195
+ msgstr ""
196
+
197
+ #. type: Plain text
198
+ #: ../README.md:74
199
+ #, markdown-text, no-wrap
200
+ msgid " bundle config build.pg --with-pg-config=<path to pg_config>\n"
201
+ msgstr ""
202
+
203
+ #. type: Plain text
204
+ #: ../README.md:77
205
+ #, markdown-text
206
+ msgid ""
207
+ "See README-OS_X.rdoc for more information about installing under MacOS X, "
208
+ "and README-Windows.rdoc for Windows build/installation instructions."
209
+ msgstr ""
210
+
211
+ #. type: Plain text
212
+ #: ../README.md:81
213
+ #, markdown-text
214
+ msgid ""
215
+ "There's also [a Google+ group](http://goo.gl/TFy1U) and a [mailing "
216
+ "list](http://groups.google.com/group/ruby-pg) if you get stuck, or just want "
217
+ "to chat about something."
218
+ msgstr ""
219
+
220
+ #. type: Plain text
221
+ #: ../README.md:85
222
+ #, markdown-text
223
+ msgid ""
224
+ "If you want to install as a signed gem, the public certs of the gem signers "
225
+ "can be found in [the `certs` "
226
+ "directory](https://github.com/ged/ruby-pg/tree/master/certs) of the "
227
+ "repository."
228
+ msgstr ""
229
+
230
+ #. type: Title ##
231
+ #: ../README.md:87
232
+ #, markdown-text, no-wrap
233
+ msgid "Type Casts"
234
+ msgstr ""
235
+
236
+ #. type: Plain text
237
+ #: ../README.md:93
238
+ #, markdown-text
239
+ msgid ""
240
+ "Pg can optionally type cast result values and query parameters in Ruby or "
241
+ "native C code. This can speed up data transfers to and from the database, "
242
+ "because String allocations are reduced and conversions in (slower) Ruby code "
243
+ "can be omitted."
244
+ msgstr ""
245
+
246
+ #. type: Plain text
247
+ #: ../README.md:95
248
+ #, markdown-text
249
+ msgid "Very basic type casting can be enabled by:"
250
+ msgstr ""
251
+
252
+ #. type: Fenced code block (ruby)
253
+ #: ../README.md:95
254
+ #, no-wrap
255
+ msgid ""
256
+ " conn.type_map_for_results = PG::BasicTypeMapForResults.new conn\n"
257
+ " # ... this works for result value mapping:\n"
258
+ " conn.exec(\"select 1, now(), '{2,3}'::int[]\").values\n"
259
+ " # => [[1, 2014-09-21 20:51:56 +0200, [2, 3]]]\n"
260
+ "\n"
261
+ " conn.type_map_for_queries = PG::BasicTypeMapForQueries.new conn\n"
262
+ " # ... and this for param value mapping:\n"
263
+ " conn.exec_params(\"SELECT $1::text, $2::text, $3::text\", [1, 1.23, "
264
+ "[2,3]]).values\n"
265
+ " # => [[\"1\", \"1.2300000000000000E+00\", \"{2,3}\"]]\n"
266
+ msgstr ""
267
+
268
+ #. type: Plain text
269
+ #: ../README.md:109
270
+ #, markdown-text
271
+ msgid ""
272
+ "But Pg's type casting is highly customizable. That's why it's divided into 2 "
273
+ "layers:"
274
+ msgstr ""
275
+
276
+ #. type: Title ###
277
+ #: ../README.md:110
278
+ #, markdown-text, no-wrap
279
+ msgid "Encoders / Decoders (ext/pg_*coder.c, lib/pg/*coder.rb)"
280
+ msgstr ""
281
+
282
+ #. type: Plain text
283
+ #: ../README.md:117
284
+ #, markdown-text
285
+ msgid ""
286
+ "This is the lower layer, containing encoding classes that convert Ruby "
287
+ "objects for transmission to the DBMS and decoding classes to convert "
288
+ "received data back to Ruby objects. The classes are namespaced according to "
289
+ "their format and direction in PG::TextEncoder, PG::TextDecoder, "
290
+ "PG::BinaryEncoder and PG::BinaryDecoder."
291
+ msgstr ""
292
+
293
+ #. type: Plain text
294
+ #: ../README.md:123
295
+ #, markdown-text
296
+ msgid ""
297
+ "It is possible to assign a type OID, format code (text or binary) and "
298
+ "optionally a name to an encoder or decoder object. It's also possible to "
299
+ "build composite types by assigning an element encoder/decoder. PG::Coder "
300
+ "objects can be used to set up a PG::TypeMap or alternatively to convert "
301
+ "single values to/from their string representation."
302
+ msgstr ""
303
+
304
+ #. type: Plain text
305
+ #: ../README.md:125
306
+ #, markdown-text
307
+ msgid ""
308
+ "The following PostgreSQL column types are supported by ruby-pg (TE = Text "
309
+ "Encoder, TD = Text Decoder, BE = Binary Encoder, BD = Binary Decoder):"
310
+ msgstr ""
311
+
312
+ #. type: Bullet: '* '
313
+ #: ../README.md:143
314
+ #, markdown-text
315
+ msgid ""
316
+ "Integer: [TE](rdoc-ref:PG::TextEncoder::Integer), "
317
+ "[TD](rdoc-ref:PG::TextDecoder::Integer), "
318
+ "[BD](rdoc-ref:PG::BinaryDecoder::Integer) 💡 No links? Switch to "
319
+ "[here](https://deveiate.org/code/pg/README_md.html#label-Type+Casts) 💡"
320
+ msgstr ""
321
+
322
+ #. type: Bullet: ' * '
323
+ #: ../README.md:143
324
+ #, markdown-text
325
+ msgid ""
326
+ "BE: [Int2](rdoc-ref:PG::BinaryEncoder::Int2), "
327
+ "[Int4](rdoc-ref:PG::BinaryEncoder::Int4), "
328
+ "[Int8](rdoc-ref:PG::BinaryEncoder::Int8)"
329
+ msgstr ""
330
+
331
+ #. type: Bullet: '* '
332
+ #: ../README.md:143
333
+ #, markdown-text
334
+ msgid ""
335
+ "Float: [TE](rdoc-ref:PG::TextEncoder::Float), "
336
+ "[TD](rdoc-ref:PG::TextDecoder::Float), "
337
+ "[BD](rdoc-ref:PG::BinaryDecoder::Float)"
338
+ msgstr ""
339
+
340
+ #. type: Bullet: '* '
341
+ #: ../README.md:143
342
+ #, markdown-text
343
+ msgid ""
344
+ "Numeric: [TE](rdoc-ref:PG::TextEncoder::Numeric), "
345
+ "[TD](rdoc-ref:PG::TextDecoder::Numeric)"
346
+ msgstr ""
347
+
348
+ #. type: Bullet: '* '
349
+ #: ../README.md:143
350
+ #, markdown-text
351
+ msgid ""
352
+ "Boolean: [TE](rdoc-ref:PG::TextEncoder::Boolean), "
353
+ "[TD](rdoc-ref:PG::TextDecoder::Boolean), "
354
+ "[BE](rdoc-ref:PG::BinaryEncoder::Boolean), "
355
+ "[BD](rdoc-ref:PG::BinaryDecoder::Boolean)"
356
+ msgstr ""
357
+
358
+ #. type: Bullet: '* '
359
+ #: ../README.md:143
360
+ #, markdown-text
361
+ msgid ""
362
+ "String: [TE](rdoc-ref:PG::TextEncoder::String), "
363
+ "[TD](rdoc-ref:PG::TextDecoder::String), "
364
+ "[BE](rdoc-ref:PG::BinaryEncoder::String), "
365
+ "[BD](rdoc-ref:PG::BinaryDecoder::String)"
366
+ msgstr ""
367
+
368
+ #. type: Bullet: '* '
369
+ #: ../README.md:143
370
+ #, markdown-text
371
+ msgid ""
372
+ "Bytea: [TE](rdoc-ref:PG::TextEncoder::Bytea), "
373
+ "[TD](rdoc-ref:PG::TextDecoder::Bytea), "
374
+ "[BE](rdoc-ref:PG::BinaryEncoder::Bytea), "
375
+ "[BD](rdoc-ref:PG::BinaryDecoder::Bytea)"
376
+ msgstr ""
377
+
378
+ #. type: Bullet: '* '
379
+ #: ../README.md:143
380
+ #, markdown-text
381
+ msgid ""
382
+ "Base64: [TE](rdoc-ref:PG::TextEncoder::ToBase64), "
383
+ "[TD](rdoc-ref:PG::TextDecoder::FromBase64), "
384
+ "[BE](rdoc-ref:PG::BinaryEncoder::FromBase64), "
385
+ "[BD](rdoc-ref:PG::BinaryDecoder::ToBase64)"
386
+ msgstr ""
387
+
388
+ #. type: Bullet: '* '
389
+ #: ../README.md:143
390
+ #, markdown-text
391
+ msgid "Timestamp:"
392
+ msgstr ""
393
+
394
+ #. type: Bullet: ' * '
395
+ #: ../README.md:143
396
+ #, markdown-text
397
+ msgid ""
398
+ "TE: [local](rdoc-ref:PG::TextEncoder::TimestampWithoutTimeZone), "
399
+ "[UTC](rdoc-ref:PG::TextEncoder::TimestampUtc), "
400
+ "[with-TZ](rdoc-ref:PG::TextEncoder::TimestampWithTimeZone)"
401
+ msgstr ""
402
+
403
+ #. type: Bullet: ' * '
404
+ #: ../README.md:143
405
+ #, markdown-text
406
+ msgid ""
407
+ "TD: [local](rdoc-ref:PG::TextDecoder::TimestampLocal), "
408
+ "[UTC](rdoc-ref:PG::TextDecoder::TimestampUtc), "
409
+ "[UTC-to-local](rdoc-ref:PG::TextDecoder::TimestampUtcToLocal)"
410
+ msgstr ""
411
+
412
+ #. type: Bullet: ' * '
413
+ #: ../README.md:143
414
+ #, markdown-text
415
+ msgid ""
416
+ "BD: [local](rdoc-ref:PG::BinaryDecoder::TimestampLocal), "
417
+ "[UTC](rdoc-ref:PG::BinaryDecoder::TimestampUtc), "
418
+ "[UTC-to-local](rdoc-ref:PG::BinaryDecoder::TimestampUtcToLocal)"
419
+ msgstr ""
420
+
421
+ #. type: Bullet: '* '
422
+ #: ../README.md:143
423
+ #, markdown-text
424
+ msgid ""
425
+ "Date: [TE](rdoc-ref:PG::TextEncoder::Date), "
426
+ "[TD](rdoc-ref:PG::TextDecoder::Date)"
427
+ msgstr ""
428
+
429
+ #. type: Bullet: '* '
430
+ #: ../README.md:143
431
+ #, markdown-text
432
+ msgid ""
433
+ "JSON and JSONB: [TE](rdoc-ref:PG::TextEncoder::JSON), "
434
+ "[TD](rdoc-ref:PG::TextDecoder::JSON)"
435
+ msgstr ""
436
+
437
+ #. type: Bullet: '* '
438
+ #: ../README.md:143
439
+ #, markdown-text
440
+ msgid ""
441
+ "Inet: [TE](rdoc-ref:PG::TextEncoder::Inet), "
442
+ "[TD](rdoc-ref:PG::TextDecoder::Inet)"
443
+ msgstr ""
444
+
445
+ #. type: Bullet: '* '
446
+ #: ../README.md:143
447
+ #, markdown-text
448
+ msgid ""
449
+ "Array: [TE](rdoc-ref:PG::TextEncoder::Array), "
450
+ "[TD](rdoc-ref:PG::TextDecoder::Array)"
451
+ msgstr ""
452
+
453
+ #. type: Bullet: '* '
454
+ #: ../README.md:143
455
+ #, markdown-text
456
+ msgid ""
457
+ "Composite Type (also called \"Row\" or \"Record\"): "
458
+ "[TE](rdoc-ref:PG::TextEncoder::Record), "
459
+ "[TD](rdoc-ref:PG::TextDecoder::Record)"
460
+ msgstr ""
461
+
462
+ #. type: Plain text
463
+ #: ../README.md:145
464
+ #, markdown-text
465
+ msgid ""
466
+ "The following text formats can also be encoded although they are not used as "
467
+ "column type:"
468
+ msgstr ""
469
+
470
+ #. type: Bullet: '* '
471
+ #: ../README.md:149
472
+ #, markdown-text
473
+ msgid ""
474
+ "COPY input and output data: [TE](rdoc-ref:PG::TextEncoder::CopyRow), "
475
+ "[TD](rdoc-ref:PG::TextDecoder::CopyRow)"
476
+ msgstr ""
477
+
478
+ #. type: Bullet: '* '
479
+ #: ../README.md:149
480
+ #, markdown-text
481
+ msgid ""
482
+ "Literal for insertion into SQL string: "
483
+ "[TE](rdoc-ref:PG::TextEncoder::QuotedLiteral)"
484
+ msgstr ""
485
+
486
+ #. type: Bullet: '* '
487
+ #: ../README.md:149
488
+ #, markdown-text
489
+ msgid ""
490
+ "SQL-Identifier: [TE](rdoc-ref:PG::TextEncoder::Identifier), "
491
+ "[TD](rdoc-ref:PG::TextDecoder::Identifier)"
492
+ msgstr ""
493
+
494
+ #. type: Title ###
495
+ #: ../README.md:150
496
+ #, markdown-text, no-wrap
497
+ msgid "PG::TypeMap and derivations (ext/pg_type_map*.c, lib/pg/type_map*.rb)"
498
+ msgstr ""
499
+
500
+ #. type: Plain text
501
+ #: ../README.md:156
502
+ #, markdown-text
503
+ msgid ""
504
+ "A TypeMap defines which value will be converted by which encoder/decoder. "
505
+ "There are different type map strategies, implemented by several derivations "
506
+ "of this class. They can be chosen and configured according to the particular "
507
+ "needs for type casting. The default type map is PG::TypeMapAllStrings."
508
+ msgstr ""
509
+
510
+ #. type: Plain text
511
+ #: ../README.md:160
512
+ #, markdown-text
513
+ msgid ""
514
+ "A type map can be assigned per connection or per query respectively per "
515
+ "result set. Type maps can also be used for COPY in and out data streaming. "
516
+ "See PG::Connection#copy_data ."
517
+ msgstr ""
518
+
519
+ #. type: Plain text
520
+ #: ../README.md:162
521
+ #, markdown-text
522
+ msgid "The following base type maps are available:"
523
+ msgstr ""
524
+
525
+ #. type: Bullet: '* '
526
+ #: ../README.md:168
527
+ #, markdown-text
528
+ msgid ""
529
+ "PG::TypeMapAllStrings - encodes and decodes all values to and from strings "
530
+ "(default)"
531
+ msgstr ""
532
+
533
+ #. type: Bullet: '* '
534
+ #: ../README.md:168
535
+ #, markdown-text
536
+ msgid ""
537
+ "PG::TypeMapByClass - selects encoder based on the class of the value to be "
538
+ "sent"
539
+ msgstr ""
540
+
541
+ #. type: Bullet: '* '
542
+ #: ../README.md:168
543
+ #, markdown-text
544
+ msgid "PG::TypeMapByColumn - selects encoder and decoder by column order"
545
+ msgstr ""
546
+
547
+ #. type: Bullet: '* '
548
+ #: ../README.md:168
549
+ #, markdown-text
550
+ msgid "PG::TypeMapByOid - selects decoder by PostgreSQL type OID"
551
+ msgstr ""
552
+
553
+ #. type: Bullet: '* '
554
+ #: ../README.md:168
555
+ #, markdown-text
556
+ msgid "PG::TypeMapInRuby - define a custom type map in ruby"
557
+ msgstr ""
558
+
559
+ #. type: Plain text
560
+ #: ../README.md:170
561
+ #, markdown-text
562
+ msgid ""
563
+ "The following type maps are prefilled with type mappings from the "
564
+ "PG::BasicTypeRegistry :"
565
+ msgstr ""
566
+
567
+ #. type: Bullet: '* '
568
+ #: ../README.md:174
569
+ #, markdown-text
570
+ msgid ""
571
+ "PG::BasicTypeMapForResults - a PG::TypeMapByOid prefilled with decoders for "
572
+ "common PostgreSQL column types"
573
+ msgstr ""
574
+
575
+ #. type: Bullet: '* '
576
+ #: ../README.md:174
577
+ #, markdown-text
578
+ msgid ""
579
+ "PG::BasicTypeMapBasedOnResult - a PG::TypeMapByOid prefilled with encoders "
580
+ "for common PostgreSQL column types"
581
+ msgstr ""
582
+
583
+ #. type: Bullet: '* '
584
+ #: ../README.md:174
585
+ #, markdown-text
586
+ msgid ""
587
+ "PG::BasicTypeMapForQueries - a PG::TypeMapByClass prefilled with encoders "
588
+ "for common Ruby value classes"
589
+ msgstr ""
590
+
591
+ #. type: Title ##
592
+ #: ../README.md:176
593
+ #, markdown-text, no-wrap
594
+ msgid "Thread support"
595
+ msgstr ""
596
+
597
+ #. type: Plain text
598
+ #: ../README.md:181
599
+ #, markdown-text
600
+ msgid ""
601
+ "PG is thread safe in such a way that different threads can use different "
602
+ "PG::Connection objects concurrently. However it is not safe to access any "
603
+ "Pg objects simultaneously from more than one thread. So make sure to open a "
604
+ "new database server connection for every new thread or use a wrapper library "
605
+ "like ActiveRecord that manages connections in a thread safe way."
606
+ msgstr ""
607
+
608
+ #. type: Plain text
609
+ #: ../README.md:183
610
+ #, markdown-text
611
+ msgid ""
612
+ "If messages like the following are printed to stderr, you're probably using "
613
+ "one connection from several threads:"
614
+ msgstr ""
615
+
616
+ #. type: Plain text
617
+ #: ../README.md:189
618
+ #, markdown-text, no-wrap
619
+ msgid ""
620
+ " message type 0x31 arrived from server while idle\n"
621
+ " message type 0x32 arrived from server while idle\n"
622
+ " message type 0x54 arrived from server while idle\n"
623
+ " message type 0x43 arrived from server while idle\n"
624
+ " message type 0x5a arrived from server while idle\n"
625
+ msgstr ""
626
+
627
+ #. type: Title ##
628
+ #: ../README.md:191
629
+ #, markdown-text, no-wrap
630
+ msgid "Fiber IO scheduler support"
631
+ msgstr ""
632
+
633
+ #. type: Plain text
634
+ #: ../README.md:198
635
+ #, markdown-text
636
+ msgid ""
637
+ "Pg is fully compatible with `Fiber.scheduler` introduced in Ruby-3.0. On "
638
+ "Windows support for `Fiber.scheduler` is available on Ruby-3.1 or newer. "
639
+ "All possibly blocking IO operations are routed through the `Fiber.scheduler` "
640
+ "if one is registered for the running thread. That is why pg internally uses "
641
+ "the asynchronous libpq interface even for synchronous/blocking method "
642
+ "calls. It also uses Ruby's DNS resolution instead of libpq's builtin "
643
+ "functions."
644
+ msgstr ""
645
+
646
+ #. type: Plain text
647
+ #: ../README.md:202
648
+ #, markdown-text
649
+ msgid ""
650
+ "Internally Pg always uses the nonblocking connection mode of libpq. It then "
651
+ "behaves like running in blocking mode but ensures, that all blocking IO is "
652
+ "handled in Ruby through a possibly registered `Fiber.scheduler`. When "
653
+ "`PG::Connection.setnonblocking(true)` is called then the nonblocking state "
654
+ "stays enabled, but the additional handling of blocking states is disabled, "
655
+ "so that the calling program has to handle blocking states on its own."
656
+ msgstr ""
657
+
658
+ #. type: Plain text
659
+ #: ../README.md:206
660
+ #, markdown-text
661
+ msgid ""
662
+ "An exception to this rule are the methods for large objects like "
663
+ "`PG::Connection#lo_create` and authentication methods using external "
664
+ "libraries (like GSSAPI authentication). They are not compatible with "
665
+ "`Fiber.scheduler`, so that blocking states are not passed to the registered "
666
+ "IO scheduler. That means the operation will work properly, but IO waiting "
667
+ "states can not be used to switch to another Fiber doing IO."
668
+ msgstr ""
669
+
670
+ #. type: Title ##
671
+ #: ../README.md:208
672
+ #, markdown-text, no-wrap
673
+ msgid "Contributing"
674
+ msgstr ""
675
+
676
+ #. type: Plain text
677
+ #: ../README.md:212
678
+ #, markdown-text
679
+ msgid ""
680
+ "To report bugs, suggest features, or check out the source with Git, [check "
681
+ "out the project page](https://github.com/ged/ruby-pg)."
682
+ msgstr ""
683
+
684
+ #. type: Plain text
685
+ #: ../README.md:214
686
+ #, markdown-text
687
+ msgid "After checking out the source, install all dependencies:"
688
+ msgstr ""
689
+
690
+ #. type: Plain text
691
+ #: ../README.md:216
692
+ #, markdown-text, no-wrap
693
+ msgid " $ bundle install\n"
694
+ msgstr ""
695
+
696
+ #. type: Plain text
697
+ #: ../README.md:218
698
+ #, markdown-text
699
+ msgid "Cleanup extension files, packaging files, test databases:"
700
+ msgstr ""
701
+
702
+ #. type: Plain text
703
+ #: ../README.md:220
704
+ #, markdown-text, no-wrap
705
+ msgid " $ rake clean\n"
706
+ msgstr ""
707
+
708
+ #. type: Plain text
709
+ #: ../README.md:222
710
+ #, markdown-text
711
+ msgid "Compile extension:"
712
+ msgstr ""
713
+
714
+ #. type: Plain text
715
+ #: ../README.md:224
716
+ #, markdown-text, no-wrap
717
+ msgid " $ rake compile\n"
718
+ msgstr ""
719
+
720
+ #. type: Plain text
721
+ #: ../README.md:226
722
+ #, markdown-text
723
+ msgid "Run tests/specs with PostgreSQL tools like `initdb` in the path:"
724
+ msgstr ""
725
+
726
+ #. type: Plain text
727
+ #: ../README.md:228
728
+ #, markdown-text, no-wrap
729
+ msgid " $ PATH=$PATH:/usr/lib/postgresql/14/bin rake test\n"
730
+ msgstr ""
731
+
732
+ #. type: Plain text
733
+ #: ../README.md:230
734
+ #, markdown-text
735
+ msgid "Or run a specific test with the line number:"
736
+ msgstr ""
737
+
738
+ #. type: Plain text
739
+ #: ../README.md:232
740
+ #, markdown-text, no-wrap
741
+ msgid ""
742
+ " $ PATH=$PATH:/usr/lib/postgresql/14/bin rspec -Ilib -fd "
743
+ "spec/pg/connection_spec.rb:455\n"
744
+ msgstr ""
745
+
746
+ #. type: Plain text
747
+ #: ../README.md:234
748
+ #, markdown-text
749
+ msgid "Generate the API documentation:"
750
+ msgstr ""
751
+
752
+ #. type: Plain text
753
+ #: ../README.md:236
754
+ #, markdown-text, no-wrap
755
+ msgid " $ rake docs\n"
756
+ msgstr ""
757
+
758
+ #. type: Plain text
759
+ #: ../README.md:238
760
+ #, markdown-text
761
+ msgid "Make sure, that all bugs and new features are verified by tests."
762
+ msgstr ""
763
+
764
+ #. type: Plain text
765
+ #: ../README.md:241
766
+ #, markdown-text
767
+ msgid ""
768
+ "The current maintainers are Michael Granger <ged@FaerieMUD.org> and Lars "
769
+ "Kanis <lars@greiz-reinsdorf.de>."
770
+ msgstr ""
771
+
772
+ #. type: Title ##
773
+ #: ../README.md:243
774
+ #, markdown-text, no-wrap
775
+ msgid "Copying"
776
+ msgstr ""
777
+
778
+ #. type: Plain text
779
+ #: ../README.md:246
780
+ #, markdown-text
781
+ msgid "Copyright (c) 1997-2022 by the authors."
782
+ msgstr ""
783
+
784
+ #. type: Bullet: '* '
785
+ #: ../README.md:255
786
+ #, markdown-text
787
+ msgid "Jeff Davis <ruby-pg@j-davis.com>"
788
+ msgstr ""
789
+
790
+ #. type: Bullet: '* '
791
+ #: ../README.md:255
792
+ #, markdown-text
793
+ msgid "Guy Decoux (ts) <decoux@moulon.inra.fr>"
794
+ msgstr ""
795
+
796
+ #. type: Bullet: '* '
797
+ #: ../README.md:255
798
+ #, markdown-text
799
+ msgid "Michael Granger <ged@FaerieMUD.org>"
800
+ msgstr ""
801
+
802
+ #. type: Bullet: '* '
803
+ #: ../README.md:255
804
+ #, markdown-text
805
+ msgid "Lars Kanis <lars@greiz-reinsdorf.de>"
806
+ msgstr ""
807
+
808
+ #. type: Bullet: '* '
809
+ #: ../README.md:255
810
+ #, markdown-text
811
+ msgid "Dave Lee"
812
+ msgstr ""
813
+
814
+ #. type: Bullet: '* '
815
+ #: ../README.md:255
816
+ #, markdown-text
817
+ msgid "Eiji Matsumoto <usagi@ruby.club.or.jp>"
818
+ msgstr ""
819
+
820
+ #. type: Bullet: '* '
821
+ #: ../README.md:255
822
+ #, markdown-text
823
+ msgid "Yukihiro Matsumoto <matz@ruby-lang.org>"
824
+ msgstr ""
825
+
826
+ #. type: Bullet: '* '
827
+ #: ../README.md:255
828
+ #, markdown-text
829
+ msgid "Noboru Saitou <noborus@netlab.jp>"
830
+ msgstr ""
831
+
832
+ #. type: Plain text
833
+ #: ../README.md:259
834
+ #, markdown-text
835
+ msgid ""
836
+ "You may redistribute this software under the same terms as Ruby itself; see "
837
+ "https://www.ruby-lang.org/en/about/license.txt or the BSDL file in the "
838
+ "source for details."
839
+ msgstr ""
840
+
841
+ #. type: Plain text
842
+ #: ../README.md:262
843
+ #, markdown-text
844
+ msgid ""
845
+ "Portions of the code are from the PostgreSQL project, and are distributed "
846
+ "under the terms of the PostgreSQL license, included in the file POSTGRES."
847
+ msgstr ""
848
+
849
+ #. type: Plain text
850
+ #: ../README.md:264
851
+ #, markdown-text
852
+ msgid "Portions copyright LAIKA, Inc."
853
+ msgstr ""
854
+
855
+ #. type: Title ##
856
+ #: ../README.md:266
857
+ #, markdown-text, no-wrap
858
+ msgid "Acknowledgments"
859
+ msgstr ""
860
+
861
+ #. type: Plain text
862
+ #: ../README.md:270
863
+ #, markdown-text
864
+ msgid ""
865
+ "See Contributors.rdoc for the many additional fine people that have "
866
+ "contributed to this library over the years."
867
+ msgstr ""
868
+
869
+ #. type: Plain text
870
+ #: ../README.md:272
871
+ #, markdown-text
872
+ msgid ""
873
+ "We are thankful to the people at the ruby-list and ruby-dev mailing lists. "
874
+ "And to the people who developed PostgreSQL."
875
+ msgstr ""