pg 0.17.1 → 0.18.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/ChangeLog +2407 -2
  4. data/History.rdoc +68 -0
  5. data/Manifest.txt +29 -1
  6. data/README-Windows.rdoc +15 -26
  7. data/README.rdoc +52 -2
  8. data/Rakefile +56 -18
  9. data/Rakefile.cross +77 -49
  10. data/ext/extconf.rb +33 -26
  11. data/ext/pg.c +142 -21
  12. data/ext/pg.h +242 -6
  13. data/ext/pg_binary_decoder.c +162 -0
  14. data/ext/pg_binary_encoder.c +162 -0
  15. data/ext/pg_coder.c +479 -0
  16. data/ext/pg_connection.c +858 -553
  17. data/ext/pg_copy_coder.c +561 -0
  18. data/ext/pg_errors.c +6 -0
  19. data/ext/pg_result.c +479 -128
  20. data/ext/pg_text_decoder.c +421 -0
  21. data/ext/pg_text_encoder.c +663 -0
  22. data/ext/pg_type_map.c +159 -0
  23. data/ext/pg_type_map_all_strings.c +116 -0
  24. data/ext/pg_type_map_by_class.c +239 -0
  25. data/ext/pg_type_map_by_column.c +312 -0
  26. data/ext/pg_type_map_by_mri_type.c +284 -0
  27. data/ext/pg_type_map_by_oid.c +355 -0
  28. data/ext/pg_type_map_in_ruby.c +299 -0
  29. data/ext/util.c +149 -0
  30. data/ext/util.h +65 -0
  31. data/lib/pg/basic_type_mapping.rb +399 -0
  32. data/lib/pg/coder.rb +83 -0
  33. data/lib/pg/connection.rb +81 -29
  34. data/lib/pg/result.rb +13 -3
  35. data/lib/pg/text_decoder.rb +44 -0
  36. data/lib/pg/text_encoder.rb +27 -0
  37. data/lib/pg/type_map_by_column.rb +15 -0
  38. data/lib/pg.rb +12 -2
  39. data/spec/{lib/helpers.rb → helpers.rb} +101 -39
  40. data/spec/pg/basic_type_mapping_spec.rb +251 -0
  41. data/spec/pg/connection_spec.rb +516 -218
  42. data/spec/pg/result_spec.rb +216 -112
  43. data/spec/pg/type_map_by_class_spec.rb +138 -0
  44. data/spec/pg/type_map_by_column_spec.rb +222 -0
  45. data/spec/pg/type_map_by_mri_type_spec.rb +136 -0
  46. data/spec/pg/type_map_by_oid_spec.rb +149 -0
  47. data/spec/pg/type_map_in_ruby_spec.rb +164 -0
  48. data/spec/pg/type_map_spec.rb +22 -0
  49. data/spec/pg/type_spec.rb +697 -0
  50. data/spec/pg_spec.rb +24 -18
  51. data.tar.gz.sig +0 -0
  52. metadata +111 -45
  53. metadata.gz.sig +0 -0
data/ChangeLog CHANGED
@@ -1,8 +1,2413 @@
1
+ 2015-11-13 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * .hgignore:
4
+ Ignore some build artifacts
5
+ [f4bd9e53ccab] [tip]
6
+
7
+ * Rakefile:
8
+ Only use fivefish formatter when building from repo
9
+ [6161d8eeb3f1]
10
+
11
+ 2015-11-13 Lars Kanis <lars@greiz-reinsdorf.de>
12
+
13
+ * History.rdoc:
14
+ Update History.rdoc regarding PR#22.
15
+ [e4a8a1d41104]
16
+
17
+ * Merge ../ruby-pg.git.bare
18
+ [810c1e4dad4d]
19
+
20
+ 2015-10-08 Lars Kanis <larskanis@gmail.com>
21
+
22
+ * README.rdoc:
23
+ Fix link to appveyor CI tests in the README.
24
+ [604f4dd3d5bd]
25
+
26
+ 2015-11-04 Lars Kanis <lars@greiz-reinsdorf.de>
27
+
28
+ * ext/pg_binary_encoder.c:
29
+ Merged in t-richards/ruby-pg/jemalloc-native-ext (pull request #22)
30
+
31
+ Fix build against jemalloc 4.0.0
32
+ [72168db5fb7b]
33
+
34
+ 2015-09-10 Tom Richards <tom@tomrichards.net>
35
+
36
+ * ext/pg_binary_encoder.c:
37
+ Fix build against jemalloc 4.0.0
38
+ [fe05106909f7] <jemalloc-native-ext>
39
+
40
+ 2015-09-24 Lars Kanis <lars@greiz-reinsdorf.de>
41
+
42
+ * History.rdoc:
43
+ Add latest changes to History.rdoc.
44
+ [11b978b08d63]
45
+
46
+ * History.rdoc:
47
+ Add missing entry in History.rdoc.
48
+
49
+ This fixes bitbucket issue #225 : https://bitbucket.org/ged/ruby-
50
+ pg/issues/225
51
+ [132d674d999f]
52
+
53
+ * Merge ../ruby-pg.git.bare
54
+ [479799a98cfa]
55
+
56
+ * ext/pg_text_encoder.c, spec/pg/connection_spec.rb,
57
+ spec/pg/type_spec.rb:
58
+ Avoid segfault, when quote_ident is called with Array containing
59
+ non-strings.
60
+
61
+ This fixes bitbucket issue #226 : https://bitbucket.org/ged/ruby-
62
+ pg/issues/226
63
+ [4f0bd19e9111]
64
+
65
+ 2015-09-08 Lars Kanis <lars@greiz-reinsdorf.de>
66
+
67
+ * Merge pull request #10 from PuzzleFlow/master
68
+
69
+ Fixing compilation problems with Microsoft Visual Studio 2008.
70
+ [dfb62954f2d6]
71
+
72
+ 2015-09-08 jfali <jfali@puzzleflow.com>
73
+
74
+ * ext/extconf.rb, ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
75
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/pg_type_map.c,
76
+ ext/pg_type_map_by_column.c:
77
+ Fixing compilation problems with Microsoft Visual Studio 2008.
78
+ - inttypes.h is not available in MSVC 2008
79
+ - Structs members must be initialized implicitly
80
+ [fcf731d3dff7]
81
+
82
+ 2015-09-07 Lars Kanis <lars@greiz-reinsdorf.de>
83
+
84
+ * README.rdoc:
85
+ Merge pull request #8 from gitter-badger/gitter-badge
86
+
87
+ Add a Gitter chat badge to README.rdoc
88
+ [ab4d5656abce]
89
+
90
+ 2015-03-09 The Gitter Badger <badger@gitter.im>
91
+
92
+ * README.rdoc:
93
+ Added Gitter badge
94
+ [beb02a90f948]
95
+
96
+ 2015-09-03 Michael Granger <ged@FaerieMUD.org>
97
+
98
+ * .hgtags:
99
+ Added tag v0.18.3 for changeset 01c42c68797e
100
+ [4c8df76aff6f]
101
+
102
+ * .hgsigs:
103
+ Added signature for changeset 57291f1e96b9
104
+ [01c42c68797e] [v0.18.3]
105
+
106
+ * .hoerc:
107
+ Exclude some generated files from the Manifest
108
+ [57291f1e96b9]
109
+
110
+ * History.rdoc, lib/pg.rb:
111
+ Bump patch version, update history
112
+ [3b49541c9f12]
113
+
114
+ 2015-09-01 Lars Kanis <lars@greiz-reinsdorf.de>
115
+
116
+ * lib/pg/text_decoder.rb:
117
+ Add missing require
118
+ [d0ba6a2cb10f]
119
+
120
+ * Merge pull request #9 from ramfjord/date-decoder-return-dates
121
+
122
+ Date decoder to return real Dates
123
+ [676def89b826]
124
+
125
+ 2015-06-21 Thomas Ramfjord <thomas.ramfjord@gmail.com>
126
+
127
+ * lib/pg/text_decoder.rb, spec/pg/basic_type_mapping_spec.rb:
128
+ modified TextDecoder::Date to return an actual ruby Date instead of
129
+ a Time
130
+ [c50593d12ba2]
131
+
132
+ 2015-08-20 Lars Kanis <lars@greiz-reinsdorf.de>
133
+
134
+ * Rakefile:
135
+ Add include for Hoe::MercurialHelpers as a temporary solution for
136
+ the error:
137
+
138
+ Packaging tasks require the hoe-mercurial plugin (gem install hoe-
139
+ mercurial)
140
+ [a84f83ff5b31]
141
+
142
+ * History.rdoc:
143
+ Update History.rdoc
144
+ [cadfac537e73]
145
+
146
+ * Merge branch 'master' of github.com:larskanis/ruby-pg
147
+ [d27d6d5a6545]
148
+
149
+ * README.rdoc:
150
+ Add Appveyor status badge to the README.
151
+ [c9637c6efcfb]
152
+
153
+ * appveyor.yml:
154
+ Use 9.3 because 9.0, 9.1 and 9.2 segfault in PG.init_openssl
155
+ [158f6649b7b8]
156
+
157
+ * spec/pg/connection_spec.rb:
158
+ Skip conn#host test on Windows-x64, because it segfaults, currently.
159
+ [04110aad7fc6]
160
+
161
+ * spec/pg/connection_spec.rb:
162
+ libpq on Windows doesn't respect the PGPORT env variable, so we
163
+ accept both.
164
+ [b4b666011f3f]
165
+
166
+ * spec/helpers.rb:
167
+ Older versions of PostgreSQL don't have a pid column, so this could
168
+ raise an exception: TypeError: can't convert nil into Integer
169
+ [48f1145fa631]
170
+
171
+ * Rakefile.cross:
172
+ Update OpenSSL version for Windows cross build.
173
+ [be6b75fef0ff]
174
+
175
+ * appveyor.yml:
176
+ Add CI-tests on appveyor.
177
+ [c2dc9e491853]
178
+
179
+ 2015-06-29 Lars Kanis <kanis@comcard.de>
180
+
181
+ * History.rdoc:
182
+ Merge branch 'master' of https://github.com/larskanis/ruby-pg
183
+
184
+ Conflicts: History.rdoc
185
+ [affb47533d82]
186
+
187
+ * History.rdoc, ext/util.c, spec/pg/type_spec.rb:
188
+ Fix data type resulting in wrong base64 encoding.
189
+ [5fb9170f6a7d]
190
+
191
+ 2015-06-17 Lars Kanis <lars@greiz-reinsdorf.de>
192
+
193
+ * Gemfile, Rakefile, Rakefile.cross:
194
+ Update versions of rake-compiler-dock, OpenSSL and PostgreSQL.
195
+ [10c6b496314c]
196
+
197
+ 2015-06-12 Lars Kanis <lars@greiz-reinsdorf.de>
198
+
199
+ * Rakefile.cross:
200
+ Update OpenSSL and PostgreSQL versions for cross build.
201
+ [02094cca1cf8]
202
+
203
+ 2015-06-11 Lars Kanis <lars@greiz-reinsdorf.de>
204
+
205
+ * History.rdoc, README-Windows.rdoc:
206
+ Update README-Windows in regards to rake-compiler-dock.
207
+ [4d9fd821ec1e]
208
+
209
+ 2015-06-09 Lars Kanis <kanis@comcard.de>
210
+
211
+ * Rakefile.cross:
212
+ Cross build: Ensure ChangeLog file is built on the host side before
213
+ entering the docker container.
214
+ [d32412acff38]
215
+
216
+ * Rakefile.cross:
217
+ Cross build: Add workaround for missing symlink support on Windows.
218
+ [52bb3eef00f0]
219
+
220
+ * Rakefile.cross:
221
+ Explicitly set the gcc-toolchain, instead of deriving from the rake-
222
+ compiler config.
223
+
224
+ Now, that we use the libpq.dll (instead of static linking), we can
225
+ mix the gcc-toolchains. So we better build the dll with the newer
226
+ mingw-w64 toolchain (instead of the old mingw32) and build only the
227
+ extension for ruby-1.9 with the old mingw32-gcc.
228
+ [b3d169fa189b]
229
+
230
+ * Merge https://github.com/ged/ruby-pg
231
+ [5aeb99dda0ca]
232
+
233
+ 2015-05-25 Michael Granger <ged@FaerieMUD.org>
234
+
235
+ * lib/pg/basic_type_mapping.rb:
236
+ Whitespace fixes
237
+ [57cfbc230597]
238
+
239
+ 2015-05-14 Michael Granger <ged@FaerieMUD.org>
240
+
241
+ * .hgtags:
242
+ Added tag v0.18.2 for changeset 22a361201fd1
243
+ [00d6997551e6]
244
+
245
+ * .hgsigs:
246
+ Added signature for changeset 7d31b04e7913
247
+ [d77ab8ab870e]
248
+
249
+ * History.rdoc, lib/pg.rb:
250
+ Bump patch version, update History
251
+ [fa56690fe72d]
252
+
253
+ * Merged with git branch.
254
+ [9b2c80df821d]
255
+
256
+ 2015-06-09 Lars Kanis <kanis@comcard.de>
257
+
258
+ * Rakefile.cross:
259
+ Cross build: Copy gem signing key and certs to be accessable from
260
+ the docker container
261
+ [c5382a785f4d]
262
+
263
+ 2015-06-08 Lars Kanis <lars@greiz-reinsdorf.de>
264
+
265
+ * Merged
266
+ [3d56a65c78c5]
267
+
268
+ * Gemfile, Rakefile, Rakefile.cross:
269
+ Add rake task 'gem:windows' which makes use of the new rake-
270
+ compiler-dock.
271
+
272
+ Also update the Gemfile per 'rake bundler:gemfile' .
273
+ [fafadd62cc6d]
274
+
275
+ * Rakefile.cross:
276
+ Cross build: Work around missing dependency to libcommon in
277
+ PostgreSQL-9.4.0
278
+ [630a22437026]
279
+
280
+ 2015-05-25 Michael Granger <ged@FaerieMUD.org>
281
+
282
+ * ext/pg_connection.c:
283
+ Change instance_of checks to kind_of for subclassing [#220]
284
+ [eb4d3c003bd6] [github/kind-of-fix]
285
+
286
+ * lib/pg/basic_type_mapping.rb:
287
+ Whitespace fixes
288
+ [4a4368e30bcf] [github/master]
289
+
290
+ 2015-05-14 Michael Granger <ged@FaerieMUD.org>
291
+
292
+ * .hgtags:
293
+ Added tag v0.18.2 for changeset 22a361201fd1
294
+ [94e26b472c78]
295
+
296
+ * .hgsigs:
297
+ Added signature for changeset 7d31b04e7913
298
+ [22a361201fd1] [v0.18.2]
299
+
300
+ * History.rdoc, lib/pg.rb:
301
+ Bump patch version, update History
302
+ [7d31b04e7913]
303
+
304
+ * Merged with git branch.
305
+ [45a1753da19a]
306
+
307
+ * .rvm.gems:
308
+ Bump the rvm gemset gem versions
309
+ [8050020330d8]
310
+
311
+ 2015-03-13 Lars Kanis <lars@greiz-reinsdorf.de>
312
+
313
+ * ext/pg_text_encoder.c, ext/util.c, ext/util.h:
314
+ Avoid possible symbol name clash when linking againt static libpq.
315
+
316
+ This should fix issue #209 .
317
+ [2334a1bc38e6]
318
+
319
+ 2015-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
320
+
321
+ * ext/pg.c, spec/pg/connection_spec.rb:
322
+ Merge from git branch.
323
+ [a7261eb6796f]
324
+
325
+ * ext/pg.h, ext/pg_text_decoder.c:
326
+ Merge branch 'non-c99-compiler'
327
+ [7e8f1e4da59d]
328
+
329
+ 2015-02-06 Lars Kanis <lars@greiz-reinsdorf.de>
330
+
331
+ * ext/extconf.rb, ext/pg.h, ext/pg_result.c, ext/pg_text_decoder.c,
332
+ ext/pg_type_map_by_mri_type.c:
333
+ Use fixed size arrays in case the compiler doesn't support C99
334
+ variable length arrays.
335
+
336
+ This is notably the MSVC compiler.
337
+
338
+ Note: The MSVC build environment is currently not tested on a
339
+ regular base, so is not fully supported.
340
+ [a08290a78221]
341
+
342
+ 2015-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
343
+
344
+ * ext/pg_connection.c:
345
+ Replace quote_ident implementation with that of
346
+ PG::TextEncoder::Identifier .
347
+
348
+ This allowes quoation of array of strings in addition to plain
349
+ strings and removes duplicated code.
350
+
351
+ It also removes the 63 byte limitation and therefore obsolets pull
352
+ request #21 https://bitbucket.org/ged/ruby-pg/pull-request/21
353
+ [b8ac29b020ee]
354
+
355
+ * ext/pg.c, ext/pg.h, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
356
+ spec/pg/connection_spec.rb, spec/pg/type_spec.rb:
357
+ Derive PG::TextDecoder::Identifier from PG::SimpleDecoder instead of
358
+ CompositeDecoder
359
+
360
+ .. and equally for Encoder.
361
+
362
+ Identifiers are strings, so there is no good reason to compose it
363
+ from other element types. This change allows a faster quoting
364
+ implementation.
365
+ [55ec58cabad4]
366
+
367
+ 2015-05-14 Michael Granger <ged@FaerieMUD.org>
368
+
369
+ * .rvmrc:
370
+ Bump default rvm Ruby to 2.2
371
+ [128b075d5800]
372
+
373
+ 2015-03-13 Lars Kanis <lars@greiz-reinsdorf.de>
374
+
375
+ * ext/pg_text_encoder.c, ext/util.c, ext/util.h:
376
+ Avoid possible symbol name clash when linking againt static libpq.
377
+
378
+ This should fix issue #209 .
379
+ [b859963462b2]
380
+
381
+ 2015-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
382
+
383
+ * ext/pg.c, spec/pg/connection_spec.rb:
384
+ Merge from git branch.
385
+ [b60c89ee93c8]
386
+
387
+ * ext/pg.h, ext/pg_text_decoder.c:
388
+ Merge branch 'non-c99-compiler'
389
+ [b111c84b8445]
390
+
391
+ 2015-02-06 Lars Kanis <lars@greiz-reinsdorf.de>
392
+
393
+ * ext/extconf.rb, ext/pg.h, ext/pg_result.c, ext/pg_text_decoder.c,
394
+ ext/pg_type_map_by_mri_type.c:
395
+ Use fixed size arrays in case the compiler doesn't support C99
396
+ variable length arrays.
397
+
398
+ This is notably the MSVC compiler.
399
+
400
+ Note: The MSVC build environment is currently not tested on a
401
+ regular base, so is not fully supported.
402
+ [1269b8ad77b8]
403
+
404
+ 2015-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
405
+
406
+ * ext/pg_connection.c:
407
+ Replace quote_ident implementation with that of
408
+ PG::TextEncoder::Identifier .
409
+
410
+ This allowes quoation of array of strings in addition to plain
411
+ strings and removes duplicated code.
412
+
413
+ It also removes the 63 byte limitation and therefore obsolets pull
414
+ request #21 https://bitbucket.org/ged/ruby-pg/pull-request/21
415
+ [714601d05fba]
416
+
417
+ * ext/pg.c, ext/pg.h, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
418
+ spec/pg/connection_spec.rb, spec/pg/type_spec.rb:
419
+ Derive PG::TextDecoder::Identifier from PG::SimpleDecoder instead of
420
+ CompositeDecoder
421
+
422
+ .. and equally for Encoder.
423
+
424
+ Identifiers are strings, so there is no good reason to compose it
425
+ from other element types. This change allows a faster quoting
426
+ implementation.
427
+ [df67241d1a4f]
428
+
429
+ 2015-02-03 Michael Granger <ged@FaerieMUD.org>
430
+
431
+ * README.rdoc, ext/pg.c:
432
+ Update copyright notices
433
+ [447962e0dcba]
434
+
435
+ * spec/pg/connection_spec.rb:
436
+ Whitespace fixes
437
+ [f4a85f78807d]
438
+
439
+ 2014-08-22 Chris Bandy <bandy.chris@gmail.com>
440
+
441
+ * lib/pg/connection.rb, spec/pg/connection_spec.rb:
442
+ Allow URI connection string
443
+
444
+ (Imported from https://github.com/ged/ruby-pg/pull/3)
445
+ [d4579ef9eae4]
446
+
447
+ 2015-01-27 Lars Kanis <lars@greiz-reinsdorf.de>
448
+
449
+ * lib/pg/text_decoder.rb, spec/pg/type_spec.rb:
450
+ Fix decoding of fractional timezones like "-00:25:21".
451
+ [766aa353b392]
452
+
453
+ 2015-01-27 Lars Kanis <kanis@comcard.de>
454
+
455
+ * History.rdoc, lib/pg/text_decoder.rb, spec/pg/type_spec.rb:
456
+ Fix decoding of fractional timezones like "04:30".
457
+
458
+ This fixes https://bitbucket.org/ged/ruby-pg/issue/203 .
459
+ [33225805259c]
460
+
461
+ 2015-01-16 Lars Kanis <kanis@comcard.de>
462
+
463
+ * History.rdoc, ext/extconf.rb, ext/pg_connection.c,
464
+ spec/pg/connection_spec.rb:
465
+ Revert "Add PG::Connection#hostaddr. This is new in PostgreSQL-9.4."
466
+
467
+ PQhostaddr was removed from final PostgreSQL-9.4.0.
468
+
469
+ This fixes issue #202 :https://bitbucket.org/ged/ruby-pg/issue/202
470
+
471
+ This reverts commit 03deab7aa63f9a00984014ce59617d552b4eac34.
472
+ [b51d736bca77]
473
+
474
+ * History.rdoc:
475
+ Add a missing enhancement for pg-0.18.0
476
+ [a7635c3425f3]
477
+
478
+ * .travis.yml:
479
+ Update ruby and postgresql versions for travic-ci
480
+ [b67b92f7db97]
481
+
482
+ 2015-01-06 Lars Kanis <kanis@comcard.de>
483
+
484
+ * Merge from git.
485
+ [625e9359ac47]
486
+
487
+ 2015-01-05 Lars Kanis <kanis@comcard.de>
488
+
489
+ * ext/pg_type_map_in_ruby.c:
490
+ Use a simpler fix for https://bitbucket.org/ged/ruby-
491
+ pg/commits/a38cf53a96f
492
+ [3d89d3aae4fd]
493
+
494
+ 2015-01-05 Michael Granger <ged@FaerieMUD.org>
495
+
496
+ * .hgtags:
497
+ Added tag v0.18.1 for changeset f97dd6cb4f34
498
+ [f8122014065a]
499
+
500
+ * .hgsigs:
501
+ Added signature for changeset ba5aff64b5cb
502
+ [f97dd6cb4f34] [v0.18.1]
503
+
504
+ * History.rdoc, lib/pg.rb:
505
+ Bump the patch version, update history
506
+ [ba5aff64b5cb]
507
+
508
+ * Rakefile:
509
+ Fix the minimum Ruby version (closes #199)
510
+ [69422cc8dc45]
511
+
512
+ 2015-01-03 Michael Granger <ged@FaerieMUD.org>
513
+
514
+ * .hgtags:
515
+ Added tag v0.18.0 for changeset cfb2bfc0f661
516
+ [8aff3973f2d2]
517
+
518
+ * .hgsigs:
519
+ Added signature for changeset c519766e3ec9
520
+ [cfb2bfc0f661] [v0.18.0]
521
+
522
+ * History.rdoc:
523
+ Update the History
524
+ [c519766e3ec9]
525
+
526
+ * Manifest.txt:
527
+ Keep the manifest sorted so it can be diffed.
528
+ [d7cdbfd1b516]
529
+
530
+ * Rakefile:
531
+ Add a Rake task for generating the gemspec
532
+ [ec6d6ce61a15]
533
+
534
+ 2014-12-26 Lars Kanis <lars@greiz-reinsdorf.de>
535
+
536
+ * lib/pg/basic_type_mapping.rb:
537
+ Add a warning about Type OIDs without decoder in
538
+ PG::BasicTypeMapForResults.
539
+ [592e29cdf2e9]
540
+
541
+ 2014-12-13 Lars Kanis <lars@greiz-reinsdorf.de>
542
+
543
+ * ext/pg_type_map_in_ruby.c:
544
+ Fix TypeMapInRuby for Rubinius.
545
+ [a38cf53a96f1]
546
+
547
+ 2014-12-12 Lars Kanis <lars@greiz-reinsdorf.de>
548
+
549
+ * ext/pg_type_map_all_strings.c:
550
+ Fix documentation to TypeMapAllStrings.
551
+ [c53f993a4254]
552
+
553
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_type_map_in_ruby.c,
554
+ spec/pg/type_map_in_ruby_spec.rb:
555
+ Add TypeMapInRuby as a way to combine fast but static C-based type
556
+ maps with flexible ruby based type maps.
557
+ [a9724aef9116]
558
+
559
+ * ext/pg_type_map.c, ext/pg_type_map_by_oid.c,
560
+ lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb,
561
+ spec/pg/type_map_by_oid_spec.rb, spec/pg/type_map_spec.rb:
562
+ Remove TypeMap#fit_to_result and #fit_to_query.
563
+
564
+ The only use case so far is building a TypeMapByColumn out of a
565
+ TypeMapByOid, which is now named more explicitly as
566
+ #build_column_map .
567
+ [c99d26015e3c]
568
+
569
+ * ext/pg_text_encoder.c:
570
+ Remove unused variable.
571
+ [1a13e7eafeb7]
572
+
573
+ * ext/pg_connection.c, ext/pg_copy_coder.c, lib/pg/connection.rb:
574
+ Several documentation fixes to COPY coders.
575
+ [a7befacdef4e]
576
+
577
+ 2014-11-26 Lars Kanis <lars@greiz-reinsdorf.de>
578
+
579
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
580
+ PG::TextDecoder::Boolean: encode only true, false, 0 and 1 and pass
581
+ all other values as strings to the server.
582
+ [6b86a5543567]
583
+
584
+ 2014-11-24 Lars Kanis <kanis@comcard.de>
585
+
586
+ * spec/pg/type_map_by_class_spec.rb:
587
+ Fix test case for rbx. The error message is somewhat different than
588
+ in MRI.
589
+ [99638547f8b4]
590
+
591
+ 2014-11-21 Lars Kanis <lars@greiz-reinsdorf.de>
592
+
593
+ * ext/pg_text_decoder.c:
594
+ Stack memory can be used for Identifier decoding, since they are
595
+ limited in size.
596
+ [b7f9daeeba29]
597
+
598
+ 2014-11-17 Lars Kanis <kanis@comcard.de>
599
+
600
+ * .travis.yml:
601
+ Revert "Remove Rubinius from the allowed failure list - failing
602
+ specs are now marked as pending."
603
+
604
+ This reverts commit 524c84ccd17f3caeed13a16084206f14225bbdd6 because
605
+ of ongoing issues with gem installation on rbx.
606
+ [b8debfea4331]
607
+
608
+ * ext/pg.h, ext/pg_errors.c, ext/pg_result.c, spec/pg/result_spec.rb:
609
+ Use dedicated error classes for stream exceptions.
610
+ [f23dd01bcb52]
611
+
612
+ * History.rdoc, ext/pg.c, spec/pg_spec.rb:
613
+ Add PG.init_openssl and PG.init_ssl methods.
614
+
615
+ This will hopefully help to solve issue #190:
616
+ https://bitbucket.org/ged/ruby-pg/issue/190
617
+ [45610159a246]
618
+
619
+ 2014-11-10 Lars Kanis <lars@greiz-reinsdorf.de>
620
+
621
+ * ext/pg_type_map_by_class.c:
622
+ Fix typo.
623
+ [eeb8a82c5328]
624
+
625
+ * spec/pg/type_map_by_class_spec.rb:
626
+ TypeMapByClass: Add test for invlid coder object.
627
+ [64ae7cff7f40]
628
+
629
+ * ext/pg_type_map_by_class.c:
630
+ Better check than believe the value type returned by #ancestors .
631
+ [961a1fce08fd]
632
+
633
+ 2014-11-08 Lars Kanis <lars@greiz-reinsdorf.de>
634
+
635
+ * ext/pg_binary_decoder.c, ext/pg_type_map_all_strings.c:
636
+ Tweak the type cast documentation a bit more. [skip ci]
637
+ [185638b52684]
638
+
639
+ * ext/pg_type_map_by_class.c, spec/pg/type_map_by_class_spec.rb:
640
+ TypeMapByClass: Forgot to expire the cache on changes.
641
+ [1ce48a854d11]
642
+
643
+ 2014-11-07 Lars Kanis <lars@greiz-reinsdorf.de>
644
+
645
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_type_map_by_class.c,
646
+ ext/pg_type_map_by_mri_type.c, lib/pg/basic_type_mapping.rb,
647
+ spec/pg/connection_spec.rb, spec/pg/type_map_by_class_spec.rb,
648
+ spec/pg/type_map_by_column_spec.rb, spec/pg/type_spec.rb:
649
+ Add PG::TypeMapByClass. This replaces PG::TypeMapByMriType with a
650
+ more portable and flexible way to encode values.
651
+ [27987dbd0b32]
652
+
653
+ 2014-11-06 Lars Kanis <lars@greiz-reinsdorf.de>
654
+
655
+ * ext/pg_connection.c, ext/pg_result.c:
656
+ Add note about function usage by the sequel_pg gem.
657
+ [989a6bd6bf0d]
658
+
659
+ 2014-11-03 Lars Kanis <lars@greiz-reinsdorf.de>
660
+
661
+ * ext/pg_result.c:
662
+ Fix possible segfault, when the GC runs within the loop of
663
+ pgresult_init_fnames().
664
+ [017bc722655b]
665
+
666
+ 2014-11-01 Lars Kanis <lars@greiz-reinsdorf.de>
667
+
668
+ * ext/pg.h, ext/pg_coder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
669
+ Set default format code for binary coders to 1.
670
+ [336f694f6362]
671
+
672
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
673
+ Add PG::TextEncoder::Bytea .
674
+ [b10cbaaead6b]
675
+
676
+ 2014-10-31 Lars Kanis <lars@greiz-reinsdorf.de>
677
+
678
+ * lib/pg.rb:
679
+ Windows: Set the PATH so that the bundled libpq.dll of the binary
680
+ gem is loaded preferably to other dlls in the system.
681
+
682
+ This avoids loading issues, if there is some other libpq.dll in the
683
+ path, that fails to load for some reason.
684
+
685
+ [skip ci]
686
+ [b2bf034e3b9f]
687
+
688
+ 2014-10-30 Lars Kanis <lars@greiz-reinsdorf.de>
689
+
690
+ * History.rdoc:
691
+ Update History.rdoc for PG::Connection#hostaddr .
692
+ [2d1a83316472]
693
+
694
+ * .travis.yml:
695
+ Remove Rubinius from the allowed failure list - failing specs are
696
+ now marked as pending.
697
+ [9e707fcf2070]
698
+
699
+ * ext/extconf.rb, ext/pg_connection.c, spec/pg/connection_spec.rb:
700
+ Add PG::Connection#hostaddr. This is new in PostgreSQL-9.4.
701
+ [3a7b6a1d1cfe]
702
+
703
+ * .travis.yml, spec/helpers.rb:
704
+ Update tavis-ci and specs for PostgreSQL-9.4.
705
+ [4daf11be6d3d]
706
+
707
+ 2014-10-28 Lars Kanis <lars@greiz-reinsdorf.de>
708
+
709
+ * spec/pg/type_spec.rb:
710
+ Fix typo in specs. Thanks Chris Bandy.
711
+ [9015809803aa]
712
+
713
+ 2014-10-27 Lars Kanis <lars@greiz-reinsdorf.de>
714
+
715
+ * spec/pg/result_spec.rb:
716
+ Mark failing tests on Rubinius as pending.
717
+ [12f053154a99]
718
+
719
+ * History.rdoc:
720
+ Update History.rdoc
721
+ [b7faf8c1c677]
722
+
723
+ * Merge branch 'master' of github.com:larskanis/ruby-pg
724
+ [0f49f9bc93c6]
725
+
726
+ 2014-10-27 Lars Kanis <kanis@comcard.de>
727
+
728
+ * ext/extconf.rb, ext/pg.h:
729
+ Fix compat with Rubinius.
730
+ [3a4e19c56686]
731
+
732
+ 2014-10-27 Lars Kanis <lars@greiz-reinsdorf.de>
733
+
734
+ * ext/pg_result.c, spec/pg/result_spec.rb:
735
+ Add PG::Result#stream_each and #stream_each_row methods and specs.
736
+ [9387b7aeaad3]
737
+
738
+ * ext/pg_result.c:
739
+ Fix typo.
740
+ [d2bfa9acf36b]
741
+
742
+ 2014-10-25 Lars Kanis <lars@greiz-reinsdorf.de>
743
+
744
+ * ext/pg.h, ext/pg_result.c:
745
+ Use rb_hash_dup() with a prepared tuple hash instead of
746
+ rb_hash_new().
747
+
748
+ This gives a little speedup of 5-10% for Result#each .
749
+ [dfe51787f74d]
750
+
751
+ 2014-10-24 Lars Kanis <lars@greiz-reinsdorf.de>
752
+
753
+ * ext/pg.h:
754
+ Add workaround for missing RETURN_SIZED_ENUMERATOR macro in Ruby <
755
+ 2.0.
756
+ [995d0d85d88d]
757
+
758
+ * ext/pg_text_encoder.c:
759
+ Add include <math.h>. It defines isnan() and isinf().
760
+ [cadf29e3f863]
761
+
762
+ * ext/pg_result.c:
763
+ Use rb_ary_new4() instead of rb_ary_new_from_values() for compat
764
+ with Ruby < 2.1.
765
+ [7c465876616d]
766
+
767
+ * ext/pg_result.c:
768
+ Populate the row-Array in Result#each_row and Result.values per
769
+ rb_ary_new_from_values() from VALUE array on the stack. The number
770
+ of fields is limited on the server side to ~1700, so that stack
771
+ space is not critical. This gives a small speed up by 5%.
772
+ [adc7a83326e3]
773
+
774
+ * ext/pg.h, ext/pg_result.c:
775
+ Use frozen String objects as field names and reuse them where
776
+ possible.
777
+
778
+ This speeds Result#each up by 30%.
779
+ [f50c049adc3b]
780
+
781
+ * ext/pg_result.c, spec/pg/result_spec.rb:
782
+ Add Enumerator versions to Result#each and #each_row.
783
+ [1b324be632e4]
784
+
785
+ 2014-10-22 Lars Kanis <lars@greiz-reinsdorf.de>
786
+
787
+ * ext/pg_connection.c:
788
+ Merge alloc_query_params() and alloc_query_params1(). The separation
789
+ is no longer needed.
790
+
791
+ Allocate gc_array on demand, as it's not needed for most queries.
792
+ [aae1c7dd2360]
793
+
794
+ * README.rdoc, ext/pg.h, ext/pg_connection.c, ext/pg_copy_coder.c,
795
+ ext/pg_result.c, ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
796
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
797
+ ext/pg_type_map_by_oid.c, spec/pg/basic_type_mapping_spec.rb,
798
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
799
+ spec/pg/type_map_by_column_spec.rb,
800
+ spec/pg/type_map_by_mri_type_spec.rb,
801
+ spec/pg/type_map_by_oid_spec.rb:
802
+ Allow cascading of type maps.
803
+
804
+ If a value can not be handled by a type map this value isn't handled
805
+ implicit by TypeMapAllStrings, but instead by the assigned
806
+ default_type_map, now.
807
+ [d369d31e8fe3]
808
+
809
+ 2014-10-17 Lars Kanis <lars@greiz-reinsdorf.de>
810
+
811
+ * ext/pg.h, ext/pg_type_map.c, ext/pg_type_map_by_column.c,
812
+ spec/pg/type_map_by_column_spec.rb:
813
+ Gracefully handle not initialized state for PG::TypeMapByColumn
814
+ derivations.
815
+ [485d02650e09]
816
+
817
+ 2014-10-15 Lars Kanis <lars@greiz-reinsdorf.de>
818
+
819
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
820
+ Allow non Array values as input for TextEncoder::Array.
821
+ [a4725dfca9e4]
822
+
823
+ * ext/pg_coder.c, spec/pg/type_spec.rb:
824
+ Clarify handling of nil/NULL values by PG::Coders.
825
+ [99d6acb8b66d]
826
+
827
+ * ext/pg_text_encoder.c, ext/util.c, ext/util.h:
828
+ Move pg_strncasecmp() to util.c - it better fits there.
829
+ [117fb5c5eed7]
830
+
831
+ 2014-10-14 Lars Kanis <lars@greiz-reinsdorf.de>
832
+
833
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
834
+ Implement a more serious TestEncoder::Boolean.
835
+ [9063a84a2ff9]
836
+
837
+ * ext/pg.h, ext/pg_binary_encoder.c, ext/pg_coder.c,
838
+ ext/pg_text_encoder.c:
839
+ Fix naming and description of pg_coder_enc_to_s(). It actually uses
840
+ #to_s not #to_str.
841
+ [ac23631c96d9]
842
+
843
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
844
+ Use same rules for array quoting in text encoder as PostgreSQL.
845
+
846
+ This makes mutate-detection easier (in Rails).
847
+ [9be31c0663e3]
848
+
849
+ 2014-10-12 Lars Kanis <lars@greiz-reinsdorf.de>
850
+
851
+ * ext/pg_binary_decoder.c:
852
+ Remove needless memcpy() call.
853
+ [f786006b25ff]
854
+
855
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c, ext/util.c,
856
+ ext/util.h:
857
+ Change the endianess conversion for binary data from a library issue
858
+ to a compiler issue.
859
+
860
+ This removes dependency to beXXtoh() functions and ensures aligned
861
+ memory access.
862
+ [c8d7c26dd595]
863
+
864
+ 2014-10-11 Michael Granger <ged@FaerieMUD.org>
865
+
866
+ * ext/extconf.rb, spec/helpers.rb, spec/pg/connection_spec.rb:
867
+ Merge pull request #6 from larskanis/column_type_mapping
868
+
869
+ Add type mapping and performance improvements
870
+ [0da90c2b2812]
871
+
872
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
873
+
874
+ * Rakefile, Rakefile.cross, ext/extconf.rb:
875
+ gcc option -static-libgcc is required for i386-mingw32 build.
876
+
877
+ Don't use native pg_config for cross build. The paths were
878
+ overwritten anyways until now.
879
+
880
+ Remove code that was only needed for static build to libpq.
881
+ [9a2f9771d0b6]
882
+
883
+ 2014-10-10 Lars Kanis <lars@greiz-reinsdorf.de>
884
+
885
+ * ext/pg_type_map_by_column.c:
886
+ Use C99 struct initializer syntax.
887
+ [ec9ef7fb39eb]
888
+
889
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
890
+
891
+ * spec/pg/connection_spec.rb, spec/pg/type_spec.rb:
892
+ Fix specs for Windows.
893
+ [3659cfd75b96]
894
+
895
+ * .travis.yml, ext/pg_connection.c, lib/pg.rb,
896
+ spec/pg/connection_spec.rb:
897
+ Merge branch 'master' into column_type_mapping
898
+
899
+ Conflicts: ext/pg_connection.c spec/pg/connection_spec.rb
900
+ [57d770944b5d]
901
+
902
+ * ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c:
903
+ Fix gcc warnings in mingw build.
904
+ [26541f7e6bbb]
905
+
906
+ 2014-10-07 Lars Kanis <lars@greiz-reinsdorf.de>
907
+
908
+ * ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
909
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
910
+ ext/pg_type_map_by_oid.c, lib/pg/type_map_by_column.rb:
911
+ Add documentation to TypeMap classes.
912
+ [4227fdc5f0ac]
913
+
914
+ 2014-10-06 Lars Kanis <kanis@comcard.de>
915
+
916
+ * ext/pg_connection.c, ext/pg_result.c, ext/pg_type_map_by_mri_type.c:
917
+ Ensure zero terminated strings per StringValueCStr(), where C-str
918
+ pointers are expected.
919
+
920
+ This fixes issues with ruby-2.2.0-dev described in github pull
921
+ request #5: https://github.com/ged/ruby-pg/pull/5
922
+ [f0b7f99b1dd5]
923
+
924
+ 2014-10-05 Lars Kanis <lars@greiz-reinsdorf.de>
925
+
926
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c, ext/pg_coder.c,
927
+ ext/pg_copy_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
928
+ lib/pg/coder.rb, lib/pg/text_encoder.rb:
929
+ Add class and method documentation related to type casting.
930
+
931
+ Move previous documentaion from .rb files to .c.
932
+ [e64618a44912]
933
+
934
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
935
+ Format infinity and nan values equally to Float#to_s. This fixes a
936
+ test case in activerecord.
937
+ [02285c675326]
938
+
939
+ * lib/pg/text_decoder.rb, lib/pg/text_encoder.rb,
940
+ spec/pg/basic_type_mapping_spec.rb:
941
+ Support infinity time and date values. String values which can not
942
+ be parsed/formatted are now passed through instead of raising an
943
+ exception.
944
+ [85ce8d239d23]
945
+
946
+ 2014-10-04 Lars Kanis <lars@greiz-reinsdorf.de>
947
+
948
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c:
949
+ Add some more documentaion to the encoding/decoding function
950
+ interface.
951
+ [47ccb70c45d6]
952
+
953
+ * ext/pg.h, ext/pg_coder.c, ext/pg_connection.c, ext/pg_copy_coder.c,
954
+ ext/pg_text_encoder.c, ext/pg_type_map.c,
955
+ ext/pg_type_map_all_strings.c, ext/pg_type_map_by_column.c,
956
+ ext/pg_type_map_by_mri_type.c, spec/pg/type_map_by_column_spec.rb:
957
+ Fix handling of query parameters in hash form in conjunction with
958
+ type maps.
959
+
960
+ This moves the oid/format determining back into
961
+ alloc_query_params1() and avoids code duplication within type maps.
962
+ [2afa6cc41d55]
963
+
964
+ * spec/pg/connection_spec.rb:
965
+ Add missing spec for hash form parameters to #exec_params .
966
+ [23ad5d676b53]
967
+
968
+ 2014-10-03 Lars Kanis <lars@greiz-reinsdorf.de>
969
+
970
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
971
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, spec/pg/type_spec.rb:
972
+ FromBase64 encoder better fits into PG::BinaryEncoder and ToBase64
973
+ decoder better into PG::BinaryDecoder.
974
+ [5db80210a077]
975
+
976
+ 2014-10-02 Lars Kanis <kanis@comcard.de>
977
+
978
+ * ext/pg_coder.c, ext/pg_connection.c, ext/pg_text_decoder.c,
979
+ ext/pg_text_encoder.c:
980
+ rb_str_new() with NULL ptr can be used to allocate/set the Sting
981
+ size.
982
+ [2c4faf369dce]
983
+
984
+ * ext/util.c:
985
+ Speed up the base 64 decoder by 80%.
986
+ [adb1728e29d9]
987
+
988
+ 2014-10-01 Lars Kanis <lars@greiz-reinsdorf.de>
989
+
990
+ * ext/pg_text_decoder.c:
991
+ Use strings in base64 decoders, so that we can avoid copy'ing data
992
+ at string creation in dec_func.
993
+ [1e2cd139e6fe]
994
+
995
+ * spec/pg/type_spec.rb:
996
+ Fix base64 specs for Ruby < 2.1.
997
+ [3a9e0cea7387]
998
+
999
+ 2014-10-01 Lars Kanis <kanis@comcard.de>
1000
+
1001
+ * Merge branch 'column_type_mapping' of https://github.com/larskanis
1002
+ /ruby-pg into column_type_mapping
1003
+ [712224085b59]
1004
+
1005
+ 2014-09-30 Lars Kanis <lars@greiz-reinsdorf.de>
1006
+
1007
+ * ext/pg.h, ext/pg_result.c, ext/pg_type_map.c,
1008
+ ext/pg_type_map_all_strings.c, ext/pg_type_map_by_column.c,
1009
+ ext/pg_type_map_by_oid.c:
1010
+ Store a pointer to the current typemap into result data and use it
1011
+ through the this pointer at all places.
1012
+
1013
+ This gives PG::Result#getvalue a speedup around 10%.
1014
+ [a8b3ef723c22]
1015
+
1016
+ * spec/pg/basic_type_mapping_spec.rb:
1017
+ Change timestamp specs to a value before 1970, so that we see, there
1018
+ is no epoch limitation.
1019
+ [441da0a4129a]
1020
+
1021
+ 2014-09-30 Lars Kanis <kanis@comcard.de>
1022
+
1023
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/util.c,
1024
+ ext/util.h, spec/pg/type_spec.rb:
1025
+ Add ToBase64 and FromBase64 classes as encoders and decoders.
1026
+ [9ff6f35497ad]
1027
+
1028
+ 2014-09-29 Lars Kanis <kanis@comcard.de>
1029
+
1030
+ * ext/pg_connection.c:
1031
+ Add encoder and decoder for copy_data to gc mark list.
1032
+ [a445b16a259e]
1033
+
1034
+ * Manifest.txt:
1035
+ Update Manifest.txt
1036
+ [e13ff4f6433e]
1037
+
1038
+ * ext/pg_connection.c:
1039
+ Add new function pg_get_connection_safe() and use it instead of two
1040
+ calls to pg_get_connection() and pg_get_pgconn(). It is faster and
1041
+ less confusing.
1042
+ [6ad4490a691b]
1043
+
1044
+ * ext/pg_coder.c, ext/pg_copy_coder.c:
1045
+ Fix tainted mark for PG::Coder#encoder and #decode and
1046
+ PG::TextDecoder::CopyRow output.
1047
+ [7aec08b7677c]
1048
+
1049
+ 2014-09-27 Lars Kanis <lars@greiz-reinsdorf.de>
1050
+
1051
+ * lib/pg/basic_type_mapping.rb:
1052
+ Fix PG::BasicTypeRegistry, so that it works with and without
1053
+ previously applied type mapping.
1054
+ [db5c2973f143]
1055
+
1056
+ * lib/pg/basic_type_mapping.rb:
1057
+ Underscore unused variables for now, to avoid warnings about them.
1058
+ [8d016bc21b9a]
1059
+
1060
+ * README.rdoc:
1061
+ Mention type maps for COPY in the README.
1062
+ [ac361f811253]
1063
+
1064
+ * ext/pg.h:
1065
+ It's better to check for availability of the INLINED macro than for
1066
+ RUBINIUS define.
1067
+ [9ba559feacac]
1068
+
1069
+ * lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb:
1070
+ Add PG::BasicTypeMapBasedOnResult and add specs for deriving
1071
+ TypeMapByColumn from a result and use it with COPY.
1072
+ [6c69768961c1]
1073
+
1074
+ * ext/pg_connection.c, ext/pg_result.c:
1075
+ Add somewhat more documentaion to type casting.
1076
+
1077
+ Harmonize coder setters for COPY to accept any PG::Coder (even if
1078
+ any other than PG::CopyCoder hardly makes sense).
1079
+ [e0a8ec6d2a04]
1080
+
1081
+ * spec/pg/connection_spec.rb:
1082
+ Mark failing test on Rubinius as pending.
1083
+ [6eb0fcab4d8c]
1084
+
1085
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
1086
+ Add typecasting to Connection#get_copy_data.
1087
+ [21451bfb3659]
1088
+
1089
+ * ext/pg.c, ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c:
1090
+ Allow inline checks for string capacity. This removes the bottleneck
1091
+ in the COPY decoder, when doing the check for each character.
1092
+ [c2e817ef9b8c]
1093
+
1094
+ * ext/pg.c, ext/pg.h, ext/pg_coder.c, ext/pg_connection.c,
1095
+ ext/pg_copy_coder.c, ext/pg_result.c, ext/pg_text_encoder.c,
1096
+ ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
1097
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
1098
+ spec/pg/type_spec.rb:
1099
+ Add PG::TypeMapAllStrings and use it as default typemap, when no
1100
+ explicit typemap was set. This allowes PG::CopyCoder to work without
1101
+ typemap, too.
1102
+ [b183ef46969c]
1103
+
1104
+ * ext/pg_copy_coder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
1105
+ Add CopyCoder#null_string to gc_mark and #to_h .
1106
+ [893009c81aec]
1107
+
1108
+ * ext/pg.h, ext/pg_copy_coder.c, ext/pg_type_map.c,
1109
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
1110
+ ext/pg_type_map_by_oid.c, spec/pg/type_spec.rb:
1111
+ Add decoder for data received from get_copy_data.
1112
+
1113
+ Remove duplicated not-suitable-raise-functions.
1114
+ [0c7c819d2f46]
1115
+
1116
+ * ext/pg_copy_coder.c:
1117
+ Add PG::CopyCoder#null_string .
1118
+ [3f52c343f9c8]
1119
+
1120
+ * ext/pg.c:
1121
+ Fix description.
1122
+ [38c8b9d03bd1]
1123
+
1124
+ 2014-09-26 Lars Kanis <kanis@comcard.de>
1125
+
1126
+ * ext/pg.h, ext/pg_coder.c, ext/pg_text_decoder.c,
1127
+ ext/pg_text_encoder.c, ext/pg_type_map_by_column.c,
1128
+ ext/pg_type_map_by_oid.c:
1129
+ Refactured code to find the right decoder function.
1130
+ [5822d67d8c3b]
1131
+
1132
+ * spec/pg/type_spec.rb:
1133
+ Add decoder specs for Bytea.
1134
+ [b815372dd5d2]
1135
+
1136
+ * lib/pg/coder.rb, spec/pg/type_spec.rb:
1137
+ Add missing PG::CopyCoder#to_h .
1138
+ [e0bf32c9eb31]
1139
+
1140
+ * ext/pg_copy_coder.c:
1141
+ Add missing GC-mark function to copycoder.
1142
+ [70ae4e58761c]
1143
+
1144
+ 2014-09-25 Lars Kanis <lars@greiz-reinsdorf.de>
1145
+
1146
+ * ext/pg_connection.c, lib/pg/connection.rb,
1147
+ spec/pg/connection_spec.rb:
1148
+ Implement Connection#put_copy_data and #copy_data with encoder.
1149
+ [7bfcfe35344c]
1150
+
1151
+ * spec/pg/type_spec.rb:
1152
+ Add more specs for PG::TextEncoder::CopyRow.
1153
+ [94d6505a6a49]
1154
+
1155
+ * ext/pg_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c:
1156
+ Rename different namings of the instance pointer to "this".
1157
+ [c07d02ae1cb4]
1158
+
1159
+ 2014-09-25 Lars Kanis <kanis@comcard.de>
1160
+
1161
+ * ext/pg_connection.c:
1162
+ Save a call to rb_protect by wrapping possibly allocated heap memory
1163
+ into T_DATA objects that are free'd by the GC.
1164
+ [3c1d86fedf1b]
1165
+
1166
+ * spec/pg/connection_spec.rb:
1167
+ Mark the failing COPY tests as pending.
1168
+ [722d4e35b570]
1169
+
1170
+ * ext/pg.h, ext/pg_coder.c, ext/pg_copy_coder.c,
1171
+ ext/pg_text_encoder.c:
1172
+ Remove duplicated code.
1173
+ [bf96b3d34538]
1174
+
1175
+ * ext/pg_coder.c:
1176
+ Remove another usage of rb_str_modify_expand.
1177
+ [36493e777910]
1178
+
1179
+ * ext/extconf.rb, ext/pg.c:
1180
+ Add a more portable version of pg_ensure_str_capa, that should work
1181
+ on Rubinius.
1182
+ [bfdd98d3553a]
1183
+
1184
+ * ext/pg.c, ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c,
1185
+ spec/pg/type_spec.rb:
1186
+ Add specs for PG::TextEncoder::CopyRow. Refacture
1187
+ pg_ensure_str_capa() to avoid duplicated code.
1188
+ [58db6bcc673e]
1189
+
1190
+ 2014-09-24 Lars Kanis <lars@greiz-reinsdorf.de>
1191
+
1192
+ * ext/pg_text_encoder.c:
1193
+ Finish second option for encoders to return a string.
1194
+ [d523e7482832]
1195
+
1196
+ 2014-09-24 Lars Kanis <kanis@comcard.de>
1197
+
1198
+ * ext/pg_coder.c, ext/pg_connection.c, ext/pg_copy_coder.c,
1199
+ ext/pg_text_encoder.c:
1200
+ Add a second option for encoders to return a string. Not yet
1201
+ finished.
1202
+ [6a408664b53d]
1203
+
1204
+ * ext/pg_connection.c:
1205
+ Fix typo.
1206
+ [394b095b06e7]
1207
+
1208
+ 2014-09-23 Lars Kanis <lars@greiz-reinsdorf.de>
1209
+
1210
+ * Merge branch 'column_type_mapping' of github.com:larskanis/ruby-pg
1211
+ into column_type_mapping
1212
+ [0a904a023886]
1213
+
1214
+ 2014-09-23 Lars Kanis <kanis@comcard.de>
1215
+
1216
+ * ext/pg.h:
1217
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
1218
+ /ruby-pg into column_type_mapping
1219
+ [5f7ae7085714]
1220
+
1221
+ * ext/pg_connection.c:
1222
+ Fix comment.
1223
+ [bc848e8d054b]
1224
+
1225
+ * ext/pg.h, ext/pg_connection.c:
1226
+ Add setter and getter for Connection#encoder_for_put_copy_data and
1227
+ decoder_for_get_copy_data.
1228
+ [b21c2b78af51]
1229
+
1230
+ * ext/pg.c, ext/pg.h, ext/pg_binary_encoder.c, ext/pg_copy_coder.c,
1231
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c,
1232
+ spec/pg/connection_spec.rb:
1233
+ Add TextEncoder::CopyRow. Not finished yet.
1234
+ [f631bec1aea1]
1235
+
1236
+ * ext/pg_coder.c:
1237
+ Refactured duplicated init code for coders.
1238
+ [89c888335657]
1239
+
1240
+ 2014-09-23 Lars Kanis <lars@greiz-reinsdorf.de>
1241
+
1242
+ * ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c:
1243
+ Fix possible invalid memory access in pg_tmbc_mark().
1244
+ [89a8049d3de8]
1245
+
1246
+ 2014-09-22 Lars Kanis <lars@greiz-reinsdorf.de>
1247
+
1248
+ * ext/pg.h:
1249
+ Add compat for Rubinius.
1250
+ [1836d0c5c623]
1251
+
1252
+ 2014-09-22 Lars Kanis <kanis@comcard.de>
1253
+
1254
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c, ext/pg_type_map.c,
1255
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
1256
+ ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb,
1257
+ spec/pg/type_map_spec.rb:
1258
+ Add PG::TypeMap#fit_to_result and fit_to_query as Ruby methods and
1259
+ remove opposite Ruby callback wrapper.
1260
+
1261
+ The callback wrapper were not used and explicit calling
1262
+ fit_to_result makes more sense (for caching etc.).
1263
+
1264
+ Swap parameter order of fit_to_result and fit_to_query so that self
1265
+ is the first one.
1266
+ [531ece2a12f8]
1267
+
1268
+ * ext/pg_type_map_by_mri_type.c:
1269
+ Add comment to TypeMapByMriType class. [skip-ci]
1270
+ [19e5622fd318]
1271
+
1272
+ * ext/pg_connection.c:
1273
+ Put only converted ruby strings into the gc_array.
1274
+ [f705548a5b5f]
1275
+
1276
+ 2014-09-21 Lars Kanis <lars@greiz-reinsdorf.de>
1277
+
1278
+ * README.rdoc, lib/pg/type_map_by_column.rb:
1279
+ Update the introduction for type casting in Pg. Luckily it became
1280
+ easier.
1281
+ [b1876686a1e2]
1282
+
1283
+ * lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb,
1284
+ spec/pg/connection_spec.rb:
1285
+ Use text format for integers and don't set type OID for text types.
1286
+ [34b9dacb04d3]
1287
+
1288
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
1289
+ Implement a faster Fixnum to text encoder.
1290
+ [a7b9ea6dffd7]
1291
+
1292
+ * spec/pg/connection_spec.rb:
1293
+ Add spec for a lot of result columns in conjunction with type
1294
+ casting.
1295
+ [13629c7af842]
1296
+
1297
+ * ext/pg_connection.c:
1298
+ Use query stack memory pool somewhat more space efficient.
1299
+ [13c7d27cf253]
1300
+
1301
+ 2014-09-20 Lars Kanis <lars@greiz-reinsdorf.de>
1302
+
1303
+ * ext/pg_connection.c:
1304
+ Do two passes of query param encoding one after another. This should
1305
+ give somewhat more cache locality.
1306
+ [c2634b894cb7]
1307
+
1308
+ * ext/pg.h, ext/pg_binary_decoder.c, ext/pg_connection.c,
1309
+ ext/pg_result.c, ext/pg_text_decoder.c:
1310
+ Use a faster version of ENCODING_SET.
1311
+
1312
+ Remove several ifdefs.
1313
+ [90051cb74b20]
1314
+
1315
+ * ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c, ext/pg_connection.c,
1316
+ ext/pg_result.c:
1317
+ Cleanup and harmonize encoding assignment.
1318
+ [2549c08e631e]
1319
+
1320
+ * ext/pg_result.c, spec/pg/result_spec.rb:
1321
+ Add type casting to Result#column_values and #field_values.
1322
+ [34b9016757c4]
1323
+
1324
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
1325
+ ext/pg_text_decoder.c, ext/pg_type_map.c,
1326
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
1327
+ ext/pg_type_map_by_oid.c:
1328
+ Use RBasic encoding store as cache for connection's
1329
+ internal_encoding.
1330
+
1331
+ Remove encoding_index from typemap struct.
1332
+
1333
+ Rename typemap-struct member 'typecast' to 'typecast_result_value'.
1334
+ [58dff8991613]
1335
+
1336
+ 2014-09-19 Lars Kanis <lars@greiz-reinsdorf.de>
1337
+
1338
+ * ext/pg_connection.c:
1339
+ Avoid duplicated type check for typemaps on query params.
1340
+ [e7ae19b8fe19]
1341
+
1342
+ * ext/pg_type_map_by_mri_type.c:
1343
+ Sort MRI-types according to their probability.
1344
+ [383da4885164]
1345
+
1346
+ * ext/pg_connection.c, ext/pg_result.c, lib/pg/result.rb:
1347
+ Implement PG::Result#values in C. This avoids the overhead of
1348
+ Enumerator-fibers and dynamic array size changes.
1349
+ [7bf8d41cbcb6]
1350
+
1351
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
1352
+ Use stack memory for queries unless there are a lot of params.
1353
+ [b9f9f33f5c21]
1354
+
1355
+ 2014-09-19 Lars Kanis <kanis@comcard.de>
1356
+
1357
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
1358
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c,
1359
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb:
1360
+ Use a wrapped C-struct as data of PG::Result and store instance
1361
+ variables there.
1362
+
1363
+ This avoids all hash lookups for accessing instance variables.
1364
+
1365
+ This also fixes bitbucket bug #185 by marking the result as
1366
+ autocleared: https://bitbucket.org/ged/ruby-pg/issue/185
1367
+
1368
+ And this adds two new methods to PG::Result : autoclear? and
1369
+ cleared?
1370
+ [93d51e75cb0b]
1371
+
1372
+ * ext/pg_connection.c:
1373
+ Rename p_conn to this.
1374
+ [7ae20e3f9db2]
1375
+
1376
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c:
1377
+ Move all ivars of the Connection object to C-struct.
1378
+ [79ed6d2ba9a1]
1379
+
1380
+ * ext/pg.h, ext/pg_connection.c:
1381
+ Merge branch 'column_type_mapping' into use_structs_as_data_ptr
1382
+ [183eff440b6e]
1383
+
1384
+ * ext/pg_connection.c:
1385
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
1386
+ /ruby-pg into column_type_mapping
1387
+ [75ef0371c4ed]
1388
+
1389
+ 2014-09-18 Lars Kanis <lars@greiz-reinsdorf.de>
1390
+
1391
+ * ext/pg_type_map_by_oid.c:
1392
+ Merge branch 'column_type_mapping' of github.com:larskanis/ruby-pg
1393
+ into column_type_mapping
1394
+
1395
+ Conflicts: ext/pg_type_map_by_oid.c
1396
+ [39b58e42efd6]
1397
+
1398
+ * ext/pg.h, ext/pg_connection.c, ext/pg_type_map.c,
1399
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
1400
+ ext/pg_type_map_by_oid.c:
1401
+ Refacture type casting of query params, to avoid doublicated code.
1402
+
1403
+ This also bundles memory allocation for query functions.
1404
+ [4d0a26946895]
1405
+
1406
+ 2014-09-18 Lars Kanis <kanis@comcard.de>
1407
+
1408
+ * ext/pg.h, ext/pg_connection.c:
1409
+ Use structs as data ptr.
1410
+ [bb3ce59c6acd]
1411
+
1412
+ * ext/pg_connection.c:
1413
+ Remove rb_obj_is_kind_of(connection) for every Connection method
1414
+ call.
1415
+
1416
+ There should'nt be any possibility to change the base type from Ruby
1417
+ space.
1418
+ [5dd2fec1a494]
1419
+
1420
+ * ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
1421
+ Add a OID lookup cache to PG::TypeMapByOid to the cost of 8KByte
1422
+ heap memory per instance.
1423
+
1424
+ max_rows_for_online_lookup is also increased but that's only
1425
+ guessed. So no tests were done to find any break-even point.
1426
+ [bf44b0aaf366]
1427
+
1428
+ 2014-09-16 Lars Kanis <lars@greiz-reinsdorf.de>
1429
+
1430
+ * ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
1431
+ TypeMapByOid: Add threshold for per-row hash lookups.
1432
+ [892253614bdb]
1433
+
1434
+ 2014-09-16 Lars Kanis <kanis@comcard.de>
1435
+
1436
+ * ext/pg_connection.c, ext/pg_result.c, ext/pg_text_decoder.c,
1437
+ lib/pg/basic_type_mapping.rb, lib/pg/result.rb,
1438
+ spec/pg/basic_type_mapping_spec.rb, spec/pg/connection_spec.rb:
1439
+ Restructured BasicTypeMapping to make use of TypeMapByOid and
1440
+ TypeMapByMriType.
1441
+
1442
+ Renamed type_map_for_result and type_map_for_query to plural form -
1443
+ that sounds better.
1444
+ [8bda62d443c9]
1445
+
1446
+ * ext/pg_type_map_by_oid.c:
1447
+ TypeMapByOid: Move init code for C-Struct to alloc function, so that
1448
+ derived classes, which don't call super in initialize don't
1449
+ segfault.
1450
+ [592fa6e19beb]
1451
+
1452
+ * ext/pg.h, ext/pg_connection.c, ext/pg_type_map_by_mri_type.c,
1453
+ spec/pg/type_map_by_mri_type_spec.rb:
1454
+ TypeMapByMriType: Allow dynamic definition of a coder for each per
1455
+ query param.
1456
+
1457
+ Remove T_NIL since it's not useful. Qnil is always mapped to SQL
1458
+ NULL.
1459
+ [8e5d18881a5d]
1460
+
1461
+ * ext/pg.h:
1462
+ Add missing function declaration.
1463
+ [30eb8599d4b2]
1464
+
1465
+ * ext/pg_result.c, ext/pg_type_map_by_column.c,
1466
+ ext/pg_type_map_by_oid.c:
1467
+ Replace some Check_Type/DATA_PTR combinations by Data_Get_Struct.
1468
+ [5f4cb85d4025]
1469
+
1470
+ * ext/pg_type_map_by_column.c:
1471
+ Remove unnecessary variable.
1472
+ [2e109387fa5b]
1473
+
1474
+ * Manifest.txt, ext/pg.c, ext/pg_type_map_by_mri_type.c,
1475
+ spec/pg/type_map_by_mri_type_spec.rb:
1476
+ Add PG::TypeMapByMriType for encoding of Ruby values.
1477
+ [00e11c3f4ced]
1478
+
1479
+ 2014-09-15 Lars Kanis <lars@greiz-reinsdorf.de>
1480
+
1481
+ * ext/pg_type_map_by_column.c:
1482
+ Fix NULL pointer deref in mark function.
1483
+
1484
+ Move init of tmbc struct, so that it's done before a raise/GC run
1485
+ can happen.
1486
+ [ece47453109b]
1487
+
1488
+ 2014-09-15 Lars Kanis <kanis@comcard.de>
1489
+
1490
+ * ext/pg_type_map_by_column.c:
1491
+ Avoid read of uninitialized values - detected with valgrind:
1492
+
1493
+ ==30681== Conditional jump or move depends on uninitialised value(s)
1494
+ ==30681== at 0xD1732EB: pg_tmbc_alloc_query_params
1495
+ (pg_type_map_by_column.c:157) ==30681== by 0x4EA93B6: rb_protect
1496
+ (eval.c:819) ==30681== by 0xD1770DE: alloc_query_params
1497
+ (pg_connection.c:1030) ==30681== by 0xD17A357: pgconn_exec_params
1498
+ (pg_connection.c:1102) ==30681== by 0x4FCE439:
1499
+ vm_call_cfunc_with_frame (vm_insnhelper.c:1470) ==30681== by
1500
+ 0x4FDA48E: vm_call_method (vm_insnhelper.c:1560) ==30681== by
1501
+ 0x4FD2568: vm_exec_core (insns.def:1028) ==30681== by 0x4FD7126:
1502
+ vm_exec (vm.c:1304) ==30681== by 0x4FD8EFA:
1503
+ invoke_block_from_c.part.49 (vm.c:732) ==30681== by 0x4FDCB13:
1504
+ yield_under (vm.c:704) ==30681== by 0x4FCE439:
1505
+ vm_call_cfunc_with_frame (vm_insnhelper.c:1470) ==30681== by
1506
+ 0x4FDA48E: vm_call_method (vm_insnhelper.c:1560)
1507
+ [4a125325e819]
1508
+
1509
+ * ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c:
1510
+ Fix NULL pointer dereference when a TypeMapByColumn is marked before
1511
+ #initialize
1512
+
1513
+ Remove unnecessary type cast.
1514
+ [4fe07c3ea525]
1515
+
1516
+ 2014-09-14 Lars Kanis <lars@greiz-reinsdorf.de>
1517
+
1518
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_type_map_by_column.c,
1519
+ ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
1520
+ Add PG::TypeMapByOid which can be used for easy and fast result
1521
+ value type casts.
1522
+
1523
+ Change TypeMapByColumn to use a GC mark function. This way we don't
1524
+ need to store the coder objects twice.
1525
+ [c967d74f8412]
1526
+
1527
+ * ext/pg_connection.c:
1528
+ Remove unnecessary memory allocation.
1529
+ [72957cc8bb04]
1530
+
1531
+ 2014-09-13 Lars Kanis <lars@greiz-reinsdorf.de>
1532
+
1533
+ * spec/pg/type_map_spec.rb:
1534
+ Remove obsolete comment
1535
+ [c875975e4596]
1536
+
1537
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_coder.c,
1538
+ ext/pg_column_mapping.c, ext/pg_connection.c, ext/pg_result.c,
1539
+ ext/pg_type_map.c, ext/pg_type_map_by_column.c, lib/pg.rb,
1540
+ lib/pg/basic_type_mapping.rb, lib/pg/column_mapping.rb,
1541
+ lib/pg/result.rb, lib/pg/type_map_by_column.rb,
1542
+ spec/pg/basic_type_mapping_spec.rb, spec/pg/column_mapping_spec.rb,
1543
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
1544
+ spec/pg/type_map_by_column_spec.rb, spec/pg/type_map_spec.rb:
1545
+ Allow different type mapping strategies beside ColumnMapping. This
1546
+ gives us the freedom to implement TypeMapByOid, TypeMapByClass or
1547
+ some fixed function mappings.
1548
+
1549
+ Rename ColumnMapping to TypeMapByColumn.
1550
+
1551
+ Seperate type_map_for_result from type_map_for_query, so thats it's
1552
+ easy to do type casts for one direction only.
1553
+ [2548e7a85049]
1554
+
1555
+ 2014-09-02 Lars Kanis <lars@greiz-reinsdorf.de>
1556
+
1557
+ * ext/pg_coder.c, ext/pg_text_encoder.c, lib/pg/text_encoder.rb:
1558
+ Add documentation to some TextEncoder classes.
1559
+ [6c3fad43d3a2]
1560
+
1561
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
1562
+ Fix PG::TextEncoder::Identifier for more than 2 elements.
1563
+ [fcb8138f3f6f]
1564
+
1565
+ 2014-08-31 Lars Kanis <lars@greiz-reinsdorf.de>
1566
+
1567
+ * ext/pg.h, ext/pg_coder.c, ext/pg_text_decoder.c,
1568
+ ext/pg_text_encoder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
1569
+ Add delimiter attribute to composite types.
1570
+ [5604eba62d48]
1571
+
1572
+ * README.rdoc:
1573
+ Update the README to reflect the API change of the type cast
1574
+ classes.
1575
+ [2afd944eadb2]
1576
+
1577
+ * lib/pg/basic_type_mapping.rb:
1578
+ Update PG::BasicTypeMapping to make use of new PG::Coder classes.
1579
+ Add some documentation to BasicTypeMapping.
1580
+ [ad24be2307d1]
1581
+
1582
+ * spec/pg/type_spec.rb:
1583
+ type_spec doesn't make use of the helpers.
1584
+ [7a3a4197a61f]
1585
+
1586
+ 2014-08-26 Lars Kanis <lars@greiz-reinsdorf.de>
1587
+
1588
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
1589
+ ext/pg_binary_encoder.c, ext/pg_coder.c, ext/pg_column_mapping.c,
1590
+ ext/pg_connection.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
1591
+ ext/pg_type.c, lib/pg.rb, lib/pg/basic_type_mapping.rb,
1592
+ lib/pg/coder.rb, lib/pg/column_mapping.rb, lib/pg/text_decoder.rb,
1593
+ lib/pg/text_encoder.rb, lib/pg/type.rb,
1594
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb,
1595
+ spec/pg/type_spec.rb:
1596
+ Simplify the type cast API by merging PG::Type and PG::Coder
1597
+ classes.
1598
+
1599
+ En/decoders can now be built directly as
1600
+ PG::TextDecoder::Integer.new instead of previous
1601
+ PG::Type.new(decoder: PG::TextDecoder::Integer) .
1602
+ [2b428d490e08]
1603
+
1604
+ 2014-08-24 Lars Kanis <lars@greiz-reinsdorf.de>
1605
+
1606
+ * ext/pg_connection.c, ext/pg_type.c:
1607
+ Change all remaining Oid <-> VALUE conversions to UINT.
1608
+ [66047d8245d1]
1609
+
1610
+ * ext/pg_coder.c:
1611
+ Remove unused accessors.
1612
+ [b6b84993c6ff]
1613
+
1614
+ * spec/pg/type_spec.rb:
1615
+ Convert remaining two should's to expect syntax.
1616
+ [1888e8425d07]
1617
+
1618
+ * .travis.yml:
1619
+ 'gem install rake-compiler' is still needed for cross build.
1620
+ [f8a0ac84f72f]
1621
+
1622
+ * .travis.yml, spec/pg/connection_spec.rb:
1623
+ Merge branch 'master' into column_type_mapping
1624
+
1625
+ Conflicts: .travis.yml
1626
+ [36684ebbc21d]
1627
+
1628
+ 2014-08-22 Lars Kanis <lars@greiz-reinsdorf.de>
1629
+
1630
+ * Merge /home/lars/comcard/tmp5/ruby-pg.git.bare into
1631
+ column_type_mapping
1632
+ [2485600065c4]
1633
+
1634
+ * spec/helpers.rb, spec/pg/column_mapping_spec.rb,
1635
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
1636
+ spec/pg/type_spec.rb:
1637
+ Convert type cast specs to expect syntax of RSpec 3
1638
+ [3497aade8d9a]
1639
+
1640
+ * Manifest.txt, ext/pg_connection.c, ext/pg_result.c, spec/helpers.rb,
1641
+ spec/lib/helpers.rb, spec/pg/connection_spec.rb,
1642
+ spec/pg/result_spec.rb:
1643
+ Merge branch 'master' into column_type_mapping
1644
+
1645
+ Conflicts: Manifest.txt spec/helpers.rb spec/pg/connection_spec.rb
1646
+ spec/pg/result_spec.rb
1647
+ [8eb15150e2f7]
1648
+
1649
+ 2014-05-08 Lars Kanis <kanis@comcard.de>
1650
+
1651
+ * lib/pg/basic_type_mapping.rb:
1652
+ Make column_mapping_for_* methods public.
1653
+ [5b2c4584de20]
1654
+
1655
+ 2014-04-27 Lars Kanis <lars@greiz-reinsdorf.de>
1656
+
1657
+ * lib/pg/coder.rb, lib/pg/type.rb:
1658
+ Add nicer inspect methods to Type and Coder.
1659
+ [bea1b87d449f]
1660
+
1661
+ 2014-04-23 Lars Kanis <lars@greiz-reinsdorf.de>
1662
+
1663
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
1664
+ Add PG::TextEncoder::QUOTED_LITERAL.
1665
+
1666
+ This can be used to encode values directly for sql insertion.
1667
+ [899ae14a4177]
1668
+
1669
+ * ext/pg.h, ext/pg_binary_encoder.c, ext/pg_text_encoder.c,
1670
+ spec/pg/type_spec.rb:
1671
+ Use #to_i for encoding of non Numeric types. That allows use of
1672
+ strings like "123-garbage" as integer input.
1673
+ [3771cd7756af]
1674
+
1675
+ * ext/pg_text_encoder.c, lib/pg/basic_type_mapping.rb,
1676
+ spec/pg/column_mapping_spec.rb:
1677
+ Remove PG::TextEncoder::BYTEA, as it was not correct.
1678
+ [f246df175b01]
1679
+
1680
+ 2014-04-22 Lars Kanis <lars@greiz-reinsdorf.de>
1681
+
1682
+ * ext/pg_connection.c, spec/pg/column_mapping_spec.rb:
1683
+ Fix encoding of NULL values to typed fields.
1684
+ [8820a9c4271e]
1685
+
1686
+ * ext/pg_binary_encoder.c, ext/pg_text_encoder.c,
1687
+ spec/pg/type_spec.rb:
1688
+ Allow to encode Strings to int types
1689
+ [b8c6be80a931]
1690
+
1691
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
1692
+ Fix encoding of empty arrays.
1693
+ [eff38fc911d0]
1694
+
1695
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
1696
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c,
1697
+ lib/pg/basic_type_mapping.rb, lib/pg/text_decoder.rb,
1698
+ lib/pg/text_encoder.rb, spec/pg/column_mapping_spec.rb,
1699
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
1700
+ Change all coder objects to UPPERCASE, because they aren't class
1701
+ constants.
1702
+ [8384fe858ebf]
1703
+
1704
+ 2014-04-21 Lars Kanis <lars@greiz-reinsdorf.de>
1705
+
1706
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c, spec/pg/type_spec.rb:
1707
+ Add encoder and decoder for identifiers.
1708
+
1709
+ Improve quotation code of Array encoder.
1710
+
1711
+ Refactor Array encoder and decoder functions to allow reuse for
1712
+ identifiers.
1713
+ [b13e27b316d4]
1714
+
1715
+ 2014-04-19 Lars Kanis <lars@greiz-reinsdorf.de>
1716
+
1717
+ * ext/pg_type.c, spec/pg/type_spec.rb:
1718
+ Allow PG::CompositeType#elements_type=nil and fix error text for
1719
+ invalid types.
1720
+ [91f8becf18aa]
1721
+
1722
+ * spec/pg/column_mapping_spec.rb:
1723
+ Add decoder tests for float values NAN and INFINITY.
1724
+ [c45b87b317c3]
1725
+
1726
+ * ext/pg_type.c:
1727
+ pg_type_get_and_check() is no longer in use.
1728
+ [f387ba78ccbf]
1729
+
1730
+ * lib/pg/basic_type_mapping.rb:
1731
+ Array.new is somewhat faster than using an Enumerator.
1732
+ [458cdea12837]
1733
+
1734
+ * ext/pg_column_mapping.c, ext/pg_result.c:
1735
+ Don't call ENCODING_GET() for each result value, but only once, when
1736
+ the ColumnMapping is assigned to a PG::Result.
1737
+
1738
+ The speedup is only minimal (~1%).
1739
+ [29fc4769e95a]
1740
+
1741
+ 2014-04-18 Lars Kanis <lars@greiz-reinsdorf.de>
1742
+
1743
+ * ext/pg_type.c:
1744
+ Add check for output lengths of first/second pass of C based
1745
+ encoders.
1746
+ [445a04470387]
1747
+
1748
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
1749
+ Fix size computation of negative numbers for text integer encoding.
1750
+ [3984ee009617]
1751
+
1752
+ * README.rdoc:
1753
+ Tune type cast documentation a bit more.
1754
+ [65f0f57deb57]
1755
+
1756
+ * README.rdoc:
1757
+ Add the most simple use case for type casting to the README.
1758
+ [6524afce6fbc]
1759
+
1760
+ * ext/pg_text_decoder.c:
1761
+ rb_cstr2inum() seems to be slow, so we do the integer conversion by
1762
+ hand in simple cases. This proved to be 40% faster.
1763
+ [976fcccb023f]
1764
+
1765
+ 2014-04-16 Lars Kanis <lars@greiz-reinsdorf.de>
1766
+
1767
+ * spec/pg/type_spec.rb:
1768
+ Add spec for PG::Type default values.
1769
+ [ac8037456424]
1770
+
1771
+ * lib/pg/type.rb:
1772
+ Remove old code.
1773
+ [d9abf3b53985]
1774
+
1775
+ * spec/pg/type_spec.rb:
1776
+ Add specs for Type#to_h.
1777
+ [170f9f5a344b]
1778
+
1779
+ * ext/pg_type.c:
1780
+ needs_quotation? should return true or false.
1781
+ [f00c1948e602]
1782
+
1783
+ 2014-04-16 Lars Kanis <kanis@comcard.de>
1784
+
1785
+ * History.rdoc, lib/pg.rb:
1786
+ Bump VERSION to 0.18.0
1787
+ [91ea8734d053]
1788
+
1789
+ 2014-04-15 Lars Kanis <lars@greiz-reinsdorf.de>
1790
+
1791
+ * ext/pg.h, ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
1792
+ ext/pg_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
1793
+ lib/pg/coder.rb:
1794
+ Use full qualified name for Coder#name.
1795
+
1796
+ Remove duplicated code in coder definitions.
1797
+ [7ca87a46a91c]
1798
+
1799
+ 2014-04-15 Lars Kanis <kanis@comcard.de>
1800
+
1801
+ * Manifest.txt:
1802
+ Update Manifest.txt
1803
+ [02c6ce33a90c]
1804
+
1805
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
1806
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c:
1807
+ Remove duplicated @name accessors.
1808
+ [13cc22a2b729]
1809
+
1810
+ 2014-04-15 Lars Kanis <lars@greiz-reinsdorf.de>
1811
+
1812
+ * ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
1813
+ ext/pg_binary_encoder.c, ext/pg_coder.c, ext/pg_text_decoder.c,
1814
+ ext/pg_text_encoder.c, lib/pg.rb, lib/pg/coder.rb, lib/pg/type.rb,
1815
+ spec/pg/type_spec.rb:
1816
+ Add ability to Marshal.dump/load PG::Type objects.
1817
+
1818
+ This should help to use PG::Type in ActiveRecord.
1819
+
1820
+ This also fixes base classes for Composite coders.
1821
+ [ef0ef4b51e0d]
1822
+
1823
+ 2014-04-14 Lars Kanis <kanis@comcard.de>
1824
+
1825
+ * README.rdoc:
1826
+ Update README according to changes in type mapping.
1827
+ [fe3b1cd9850b]
1828
+
1829
+ 2014-04-13 Lars Kanis <lars@greiz-reinsdorf.de>
1830
+
1831
+ * Manifest.txt, ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c,
1832
+ lib/pg.rb, lib/pg/simple_type.rb, lib/pg/type.rb,
1833
+ spec/pg/type_spec.rb:
1834
+ Add a common base class PG::Type for PG::SimpleType and
1835
+ PG::CompositeType.
1836
+
1837
+ "some kind of PG::Type" sounds a little bit better than SimpleType.
1838
+ [2a385bd22f7c]
1839
+
1840
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
1841
+ ext/pg_binary_encoder.c, ext/pg_column_mapping.c,
1842
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/pg_type.c,
1843
+ ext/pg_type_binary_decoder.c, ext/pg_type_binary_encoder.c,
1844
+ ext/pg_type_text_decoder.c, ext/pg_type_text_encoder.c, lib/pg.rb,
1845
+ lib/pg/basic_type_mapping.rb, lib/pg/simple_type.rb,
1846
+ lib/pg/text_decoder.rb, lib/pg/text_encoder.rb,
1847
+ lib/pg/type/simple_type.rb, lib/pg/type/text_decoder.rb,
1848
+ lib/pg/type/text_encoder.rb, lib/pg/type/type.rb,
1849
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb,
1850
+ spec/pg/type_spec.rb:
1851
+ Remove namespace PG::Type and move all contained classes in PG
1852
+ namespace.
1853
+
1854
+ Rename function names accordingly.
1855
+ [c5886a74623c]
1856
+
1857
+ 2014-04-12 Lars Kanis <lars@greiz-reinsdorf.de>
1858
+
1859
+ * spec/pg/result_spec.rb:
1860
+ Remove needless == in spec.
1861
+ [03d3a7c68f8f]
1862
+
1863
+ * Manifest.txt, lib/pg.rb, lib/pg/basic_type_mapping.rb,
1864
+ lib/pg/column_mapping.rb, lib/pg/result.rb, lib/pg/type.rb,
1865
+ spec/pg/column_mapping_spec.rb, spec/pg/connection_spec.rb,
1866
+ spec/pg/result_spec.rb:
1867
+ Change BasicTypeMapping so that it uses type information from the
1868
+ DB.
1869
+
1870
+ Align specs to the latest type code refactoring.
1871
+ [ad90adcc1ae3]
1872
+
1873
+ * ext/pg_column_mapping.c, lib/pg/type/simple_type.rb,
1874
+ lib/pg/type/text_decoder.rb, lib/pg/type/text_encoder.rb,
1875
+ lib/pg/type/type.rb:
1876
+ Fix colmap_init. It was the wrong variable name.
1877
+ [eb13e786adec]
1878
+
1879
+ 2014-04-11 Lars Kanis <lars@greiz-reinsdorf.de>
1880
+
1881
+ * spec/pg/type_spec.rb:
1882
+ Convert and add several new test cases to SimpleType and
1883
+ CompositType.
1884
+ [d07abe17054c]
1885
+
1886
+ * ext/pg_type_text_encoder.c:
1887
+ Avoid calling enc_func twice for array encoding.
1888
+
1889
+ This did lead to wrong behaviour on array of ruby defined types when
1890
+ using quotation.
1891
+ [767e1049ea08]
1892
+
1893
+ * ext/pg_type_binary_decoder.c, ext/pg_type_binary_encoder.c,
1894
+ ext/pg_type_text_decoder.c, ext/pg_type_text_encoder.c:
1895
+ Add String en/decoder.
1896
+ [d420f9b92bf3]
1897
+
1898
+ * ext/pg_type.c:
1899
+ Ensure encoder output is a string and decoder input is a string.
1900
+ [fd943340acac]
1901
+
1902
+ 2014-04-09 Lars Kanis <lars@greiz-reinsdorf.de>
1903
+
1904
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1905
+ ext/pg_type.c, ext/pg_type_binary_decoder.c,
1906
+ ext/pg_type_binary_encoder.c, ext/pg_type_text_decoder.c,
1907
+ ext/pg_type_text_encoder.c:
1908
+ WIP: Major refactoring of the type mapping code and API.
1909
+
1910
+ Now we distinguish between Encoders/Decoders and Types on Ruby
1911
+ level.
1912
+ [48e40627d66b]
1913
+
1914
+ 2014-04-04 Lars Kanis <lars@greiz-reinsdorf.de>
1915
+
1916
+ * spec/pg/connection_spec.rb:
1917
+ Cleanup test tables, so that these two test cases can be executed
1918
+ multiple times.
1919
+ [3c450594f574]
1920
+
1921
+ 2014-03-31 Lars Kanis <kanis@comcard.de>
1922
+
1923
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/type.rb,
1924
+ spec/pg/type_spec.rb:
1925
+ Allow composition of types in Ruby space, so that we can combine
1926
+ Ruby and C converters.
1927
+ [e25ee59f5bff]
1928
+
1929
+ 2014-03-31 Lars Kanis <lars@greiz-reinsdorf.de>
1930
+
1931
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1932
+ ext/pg_type.c:
1933
+ Add composit types that allow mixed C/Ruby implementation of
1934
+ base/elem converters.
1935
+ [c5a3c68fe2bb]
1936
+
1937
+ 2014-03-24 Lars Kanis <kanis@comcard.de>
1938
+
1939
+ * .travis.yml:
1940
+ Fix windows build on travis-ci.
1941
+ [0fc7eee486c8]
1942
+
1943
+ * lib/pg/type_mapping.rb:
1944
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
1945
+ /ruby-pg into column_type_mapping
1946
+ [8e785f697ba7]
1947
+
1948
+ 2014-03-23 Lars Kanis <lars@greiz-reinsdorf.de>
1949
+
1950
+ * Manifest.txt, spec/pg/array_parser_spec.rb, spec/pg/type_spec.rb:
1951
+ Merge array_parser_spec.rb into type_spec.rb. Update Manifest.txt.
1952
+ [23907cc8d0f2]
1953
+
1954
+ * spec/lib/helpers.rb, spec/pg/column_mapping_spec.rb:
1955
+ Type encoding: Verify that the type OIDs match our expectation when
1956
+ encoding values.
1957
+ [4a4f58d3a058]
1958
+
1959
+ 2014-03-22 Lars Kanis <lars@greiz-reinsdorf.de>
1960
+
1961
+ * ext/pg_type.c, spec/pg/type_spec.rb:
1962
+ Fix conversion of Bignums to integer for text format.
1963
+ [987713eeca05]
1964
+
1965
+ * lib/pg/basic_type_mapping.rb, spec/pg/array_parser_spec.rb,
1966
+ spec/pg/column_mapping_spec.rb:
1967
+ Add basic type mapping for array types.
1968
+ [112cc249775b]
1969
+
1970
+ * ext/pg_type.c:
1971
+ Add float type conversions for text format.
1972
+ [d45c09db59c9]
1973
+
1974
+ * ext/pg_type.c:
1975
+ Text array encoding: Store all intermediate values into a single
1976
+ array even of converting multi dimensional arrays.
1977
+
1978
+ Add integer encoding for text format.
1979
+ [d95cc34a5119]
1980
+
1981
+ * ext/pg_type.c:
1982
+ Add inttypes.h since we're using int_t types.
1983
+ [c3a4655c70c5]
1984
+
1985
+ * ext/pg_type.c:
1986
+ Array type encoding: Avoid unnecessary copying of data.
1987
+ [78a8caa47042]
1988
+
1989
+ 2014-03-21 Lars Kanis <lars@greiz-reinsdorf.de>
1990
+
1991
+ * ext/pg_type.c, spec/pg/array_parser_spec.rb:
1992
+ Add array encoding for text format.
1993
+ [54682c69398f]
1994
+
1995
+ * spec/pg/column_mapping_spec.rb:
1996
+ Fix typo in column_mapping_spec.rb
1997
+ [007d45ed9ab5]
1998
+
1999
+ * ext/pg_column_mapping.c:
2000
+ Fix wrong type check due to 274d3e533.
2001
+ [51a9632e9a33]
2002
+
2003
+ 2014-02-25 Lars Kanis <lars@greiz-reinsdorf.de>
2004
+
2005
+ * ext/pg_type.c:
2006
+ Add encode/decode methods to CConverters only if corresponding C
2007
+ functions are defined.
2008
+
2009
+ This allowes simple detection of the capablities per respond_to? .
2010
+ [16209f4f9b70]
2011
+
2012
+ * ext/pg_connection.c:
2013
+ Use variable length arrays on the stack for intermediates while
2014
+ param value convertion.
2015
+
2016
+ This avoids malloc/free overhead, frees the memory before the
2017
+ function call and ensures proper GC protection.
2018
+ [44a016bc84fa]
2019
+
2020
+ 2014-02-19 Lars Kanis <lars@greiz-reinsdorf.de>
2021
+
2022
+ * ext/pg_type.c:
2023
+ Fix value.inspect in raised exception.
2024
+ [2af869fcf933]
2025
+
2026
+ * README.rdoc:
2027
+ Add paths to implementation files in README.
2028
+ [d6ca799ef38c]
2029
+
2030
+ 2014-02-18 Lars Kanis <lars@greiz-reinsdorf.de>
2031
+
2032
+ * ext/pg_result.c:
2033
+ Avoid 'result has been cleared' error in case of UnableToSend.
2034
+
2035
+ Avoid double checking per pgresult_get().
2036
+ [4a478da0839a]
2037
+
2038
+ * README.rdoc, ext/pg_connection.c, ext/pg_result.c,
2039
+ spec/pg/connection_spec.rb:
2040
+ Allow connection wide assignment of type_mapping.
2041
+ [ecd58ff267b1]
2042
+
2043
+ * ext/pg_type.c:
2044
+ Add missing string termination to array conversion.
2045
+ [f2dcc3692737]
2046
+
2047
+ * ext/pg_type.c, spec/pg/array_parser_spec.rb,
2048
+ spec/pg/column_mapping_spec.rb:
2049
+ Add array type conversions.
2050
+ [e667a761e93b]
2051
+
2052
+ * ext/pg_type.c, spec/pg/type_spec.rb:
2053
+ Allow Type.decode to be called without tuple and field args.
2054
+ [e6089af0d283]
2055
+
2056
+ * lib/pg.rb, lib/pg/basic_type_mapping.rb, lib/pg/type_mapping.rb:
2057
+ Rename file so that it matches the class name.
2058
+ [95a4b6841516]
2059
+
2060
+ 2014-02-13 Lars Kanis <lars@greiz-reinsdorf.de>
2061
+
2062
+ * .travis.yml:
2063
+ Update travis config.
2064
+ [8082f9d17c76]
2065
+
2066
+ * README.rdoc, lib/pg/result.rb:
2067
+ Tweak documentation.
2068
+ [c5e439d9ee9d]
2069
+
2070
+ * spec/pg/column_mapping_spec.rb:
2071
+ Fix test for time input type cast.
2072
+ [a217e1a4d4ac]
2073
+
2074
+ * spec/pg/connection_spec.rb:
2075
+ Do raise test per plpgsql on PostgreSQL-9.2+ only.
2076
+ [99301f365b41]
2077
+
2078
+ 2014-02-13 Lars Kanis <kanis@comcard.de>
2079
+
2080
+ * spec/pg/connection_spec.rb:
2081
+ Restrict raise test with plpgsql to PostgreSQL-9.0+
2082
+ [62ad91254117]
2083
+
2084
+ 2014-02-12 Lars Kanis <lars@greiz-reinsdorf.de>
2085
+
2086
+ * lib/pg/type_mapping.rb:
2087
+ Add missing type_mapping.rb
2088
+ [33238fce4d0b]
2089
+
2090
+ * README.rdoc, ext/pg_connection.c, ext/pg_result.c, lib/pg.rb,
2091
+ lib/pg/column_mapping.rb, lib/pg/result.rb, lib/pg/type.rb,
2092
+ spec/pg/column_mapping_spec.rb, spec/pg/connection_spec.rb,
2093
+ spec/pg/result_spec.rb:
2094
+ Implement BasicTypeMapping as a replacement to the Hash based
2095
+ DEFAULT_OID/DEFAULT_TYPE mechanism.
2096
+ [08fe2daeda55]
2097
+
2098
+ 2014-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
2099
+
2100
+ * README.rdoc:
2101
+ Add description of the type cast architecture.
2102
+ [e57f8662f564]
2103
+
2104
+ 2014-01-06 Lars Kanis <lars@greiz-reinsdorf.de>
2105
+
2106
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
2107
+ Ensure all memory is free'd in case of exceptions in
2108
+ alloc_query_params()
2109
+ [efb0fdf2af3d]
2110
+
2111
+ 2014-01-01 Lars Kanis <lars@greiz-reinsdorf.de>
2112
+
2113
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
2114
+ ext/pg_type.c, lib/pg.rb, lib/pg/column_mapping.rb,
2115
+ lib/pg/result.rb, lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
2116
+ spec/pg/result_spec.rb:
2117
+ Add optional type casting to input parameters
2118
+
2119
+ Refactor decoding code
2120
+ [19491546392d]
2121
+
2122
+ 2013-12-28 Lars Kanis <lars@greiz-reinsdorf.de>
2123
+
2124
+ * ext/pg_connection.c:
2125
+ Refactor processing of query params, which was almost equal for
2126
+ exec_params, exec_prepared, send_query and send_query_prepared.
2127
+ [a3b5e9405825]
2128
+
2129
+ 2013-12-23 Lars Kanis <lars@greiz-reinsdorf.de>
2130
+
2131
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/type.rb,
2132
+ spec/pg/column_mapping_spec.rb, spec/pg/type_spec.rb:
2133
+ Detach type decoders from Result, so that they could be used with
2134
+ COPY.
2135
+
2136
+ Change type encoders to a two pass mechanism, which could also be
2137
+ used with COPY.
2138
+ [40e8c382c3ad]
2139
+
2140
+ 2013-12-21 Lars Kanis <lars@greiz-reinsdorf.de>
2141
+
2142
+ * ext/pg_column_mapping.c, ext/pg_type.c:
2143
+ Always map NULL values to Qnil.
2144
+
2145
+ This removes duplicated code from type converters and will speedup
2146
+ converters implemented in ruby.
2147
+ [af270f5e3ddf]
2148
+
2149
+ 2013-12-13 Lars Kanis <lars@greiz-reinsdorf.de>
2150
+
2151
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/result.rb,
2152
+ lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
2153
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
2154
+ more WIP: Add bidirectional type mapping
2155
+ [1ea69ac572c0]
2156
+
2157
+ 2013-12-09 Lars Kanis <lars@greiz-reinsdorf.de>
2158
+
2159
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_column_mapping.c,
2160
+ ext/pg_result.c, ext/pg_type.c, lib/pg.rb, lib/pg/result.rb,
2161
+ lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
2162
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
2163
+ WIP: Add bidiractional type mapping
2164
+ [a89d4991f444]
2165
+
2166
+ 2013-12-07 Lars Kanis <lars@greiz-reinsdorf.de>
2167
+
2168
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
2169
+ Add a (quite incomplete) default mapping of OIDs to PG::Result and
2170
+ allow distinct mappings for text and binary formats to
2171
+ Result#map_types! .
2172
+
2173
+ Add documentation to Result#map_types! .
2174
+ [d137dfe12905]
2175
+
2176
+ 2013-07-19 Lars Kanis <kanis@comcard.de>
2177
+
2178
+ * spec/pg/column_mapping_spec.rb:
2179
+ Too less quoting. Should fix compat with PostgreSQL 8.4.
2180
+ [f502d245ea55]
2181
+
2182
+ 2013-07-18 Lars Kanis <kanis@comcard.de>
2183
+
2184
+ * Manifest.txt:
2185
+ Add missing files to Manifest.txt.
2186
+ [b5c94ff41d4e]
2187
+
2188
+ * Manifest.txt, ext/pg_column_mapping.c, ext/util.c, ext/util.h:
2189
+ Add compat with Windows platform.
2190
+ [5780ddc9c111]
2191
+
2192
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
2193
+ Add compat with Ruby-1.8.7.
2194
+ [ab892e597042]
2195
+
2196
+ * spec/pg/column_mapping_spec.rb:
2197
+ Use old BYTEA escaping for compat with PostgreSQL 8.4
2198
+ [aa7b76abda66]
2199
+
2200
+ 2013-07-04 Lars Kanis <lars@greiz-reinsdorf.de>
2201
+
2202
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
2203
+ Add BinaryBolean converter.
2204
+
2205
+ Refactor converter tests.
2206
+ [7f70efce09f0]
2207
+
2208
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
2209
+ Add BinaryFloat converter.
2210
+ [57942116c746]
2211
+
2212
+ 2013-07-03 Lars Kanis <lars@greiz-reinsdorf.de>
2213
+
2214
+ * ext/pg_column_mapping.c, lib/pg/result.rb,
2215
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb:
2216
+ Change ColumnMapping#initialize to take one Array arg rather than a
2217
+ parameter list.
2218
+
2219
+ Suggested by Aaron: https://groups.google.com/d/msg/ruby-
2220
+ pg/PE5K6q9RzBs/M5prOno39DEJ
2221
+ [2606fc4f350e]
2222
+
2223
+ * spec/pg/result_spec.rb:
2224
+ Add test case for all value retrieving methods of PG::Result .
2225
+ [970d02cee164]
2226
+
2227
+ * spec/pg/column_mapping_spec.rb:
2228
+ Add test case for default_mapping in Result#map_types!
2229
+ [dbcf59dcc118]
2230
+
2231
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
2232
+ Add convenience method PG::Result#map_types!
2233
+ [3e900bc457e8]
2234
+
2235
+ * spec/pg/column_mapping_spec.rb:
2236
+ Add Boolean ColumnMapping spec and do Integer a bit more compact.
2237
+ [34f6e4b23fae]
2238
+
2239
+ 2013-07-01 Lars Kanis <kanis@comcard.de>
2240
+
2241
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
2242
+ Add converter BinaryInteger.
2243
+ [6ccf466e1537]
2244
+
2245
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb,
2246
+ spec/pg/result_spec.rb:
2247
+ Use instances of PG::ColumnMapping::CConverter as representation of
2248
+ the buildin converters instead of plain symbols. Symbol arguments
2249
+ are converted to these instances, for convenience.
2250
+
2251
+ This allows to store and retrieve additional informations to the
2252
+ conversion and also which conversions are supported.
2253
+ [ccf7ec4cd083]
2254
+
2255
+ * ext/pg_column_mapping.c:
2256
+ Don't depend on TYPE(obj)==T_DATA of a proc object for compat with
2257
+ rubinius.
2258
+ [f4f6f25434dd]
2259
+
2260
+ 2013-06-29 Lars Kanis <lars@greiz-reinsdorf.de>
2261
+
2262
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_result.c,
2263
+ spec/pg/result_spec.rb:
2264
+ Add column based type mapping.
2265
+
2266
+ This allowes to speed up result retrieval by directly converting
2267
+ integer and float values to proper ruby types.
2268
+ [71ddc0446d26]
2269
+
2270
+ 2014-10-11 Michael Granger <ged@FaerieMUD.org>
2271
+
2272
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
2273
+ Merged with 4cc778c5ead7
2274
+ [67bb0f34ca05]
2275
+
2276
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
2277
+
2278
+ * Rakefile, Rakefile.cross, ext/extconf.rb:
2279
+ gcc option -static-libgcc is required for i386-mingw32 build.
2280
+
2281
+ Don't use native pg_config for cross build. The paths were
2282
+ overwritten anyways until now.
2283
+
2284
+ Remove code that was only needed for static build to libpq.
2285
+ [4cc778c5ead7]
2286
+
2287
+ 2014-10-09 Lars Kanis <kanis@comcard.de>
2288
+
2289
+ * Rakefile, Rakefile.cross, lib/pg.rb:
2290
+ Bundle libpq.dll into gem, because PostgreSQL-9.3 does no longer
2291
+ support static linking.
2292
+ [a37e27d356e5]
2293
+
2294
+ 2014-10-04 Lars Kanis <lars@greiz-reinsdorf.de>
2295
+
2296
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
2297
+ Add missing spec for hash form parameters to #exec_params .
2298
+ [04a6a0136a12]
2299
+
2300
+ 2014-08-24 Lars Kanis <lars@greiz-reinsdorf.de>
2301
+
2302
+ * ext/pg_connection.c:
2303
+ Change all remaining Oid <-> VALUE conversions to UINT.
2304
+ [bae3928a7b09]
2305
+
2306
+ * .travis.yml:
2307
+ 'gem install rake-compiler' is still needed for cross build.
2308
+ [591c4b0f2d69]
2309
+
2310
+ * lib/pg/connection.rb, spec/pg/connection_spec.rb:
2311
+ Add Connection.conndefaults_hash and add specs for conndefault
2312
+ variants.
2313
+ [2221655210da]
2314
+
2315
+ * .travis.yml:
2316
+ Travis uses the Gemfile, so 'gem install' is obsolete.
2317
+ [4feb9bc05f2f]
2318
+
2319
+ 2014-08-23 Lars Kanis <lars@greiz-reinsdorf.de>
2320
+
2321
+ * .travis.yml, Rakefile.cross:
2322
+ Fix cross build for mingw32.
2323
+ [f97f4b2cf0c9]
2324
+
2325
+ * Rakefile.cross:
2326
+ Update postgresql and openssl versions for windows cross build.
2327
+ [f34546022095]
2328
+
2329
+ * .travis.yml:
2330
+ Fix travis build
2331
+ [daf56926b7d6]
2332
+
2333
+ * .travis.yml:
2334
+ Update travis test environment
2335
+ [cdb7c193ba29]
2336
+
2337
+ 2014-08-22 Lars Kanis <lars@greiz-reinsdorf.de>
2338
+
2339
+ * Gemfile:
2340
+ Update Gemfile
2341
+ [a044c5419ff7]
2342
+
2343
+ * ext/extconf.rb, ext/pg_connection.c, lib/pg/connection.rb,
2344
+ spec/pg/connection_spec.rb:
2345
+ Test for PQconninfo availability and exclude conninfo and
2346
+ conninfo_hash otherwise.
2347
+ [f2692d108f46]
2348
+
2349
+ 2014-08-20 Michael Granger <ged@FaerieMUD.org>
2350
+
2351
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
2352
+ Check connection status with a matcher in specs
2353
+ [b32840b98e4b]
2354
+
2355
+ * ext/pg_connection.c, lib/pg/connection.rb,
2356
+ spec/pg/connection_spec.rb:
2357
+ Implement PG::Connection#conninfo and use it to test #188
2358
+ [affbd590e74e]
2359
+
2360
+ 2014-07-23 Mina Naguib <mina.github@naguib.ca>
2361
+
2362
+ * ext/pg_result.c:
2363
+ Fix some type mismatches for Oid return values.
2364
+
2365
+ Thanks to Mina Naguib for the fix.
2366
+ [738d4c4125a1]
2367
+
2368
+ 2014-07-23 Michael Granger <ged@FaerieMUD.org>
2369
+
2370
+ * Manifest.txt:
2371
+ Fix the path to spec helpers in the manifest
2372
+ [b3f9e94a258c]
2373
+
2374
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
2375
+
2376
+ * Merge with 6c2444dc63e1
2377
+ [d7160a9fb5dc]
2378
+
2379
+ 2013-12-30 Lars Kanis <lars@greiz-reinsdorf.de>
2380
+
2381
+ * ext/pg_connection.c:
2382
+ Fix typo in documentation.
2383
+ [6c2444dc63e1]
2384
+
2385
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
2386
+
2387
+ * .rvm.gems, Rakefile, spec/helpers.rb, spec/lib/helpers.rb,
2388
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb, spec/pg_spec.rb:
2389
+ Convert specs to expect syntax for RSpec 3
2390
+ [c9108c846ab2]
2391
+
2392
+ 2013-12-18 Michael Granger <ged@FaerieMUD.org>
2393
+
2394
+ * .hgtags:
2395
+ Added tag v0.17.1 for changeset 78846e47d87b
2396
+ [a5ab7f06aa1d]
2397
+
2398
+ * .hgsigs:
2399
+ Added signature for changeset 22d57e3a2b37
2400
+ [78846e47d87b] [v0.17.1]
2401
+
2402
+ * History.rdoc, lib/pg.rb:
2403
+ Bump the patch version, set the date in History.
2404
+ [22d57e3a2b37]
2405
+
1
2406
  2013-12-17 Lars Kanis <kanis@comcard.de>
2
2407
 
3
2408
  * History.rdoc:
4
2409
  Update History file
5
- [ebd0e140f78d] [tip]
2410
+ [ebd0e140f78d]
6
2411
 
7
2412
  2013-12-16 larskanis <lars@greiz-reinsdorf.de>
8
2413
 
@@ -49,7 +2454,7 @@
49
2454
 
50
2455
  * ext/pg_connection.c, lib/pg/connection.rb:
51
2456
  Fix documentation for PG::Connection::conndefaults.
52
- [9812218e0654] [github/master]
2457
+ [9812218e0654]
53
2458
 
54
2459
  2013-09-20 Lars Kanis <lars@greiz-reinsdorf.de>
55
2460