pg 0.17.1-x86-mingw32 → 0.18.0.pre20141017160319-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/ChangeLog +1885 -169
  5. data/History.rdoc +6 -0
  6. data/Manifest.txt +25 -1
  7. data/README.rdoc +47 -0
  8. data/Rakefile +21 -12
  9. data/Rakefile.cross +39 -33
  10. data/ext/extconf.rb +27 -26
  11. data/ext/pg.c +73 -19
  12. data/ext/pg.h +194 -6
  13. data/ext/pg_binary_decoder.c +160 -0
  14. data/ext/pg_binary_encoder.c +160 -0
  15. data/ext/pg_coder.c +473 -0
  16. data/ext/pg_connection.c +872 -534
  17. data/ext/pg_copy_coder.c +557 -0
  18. data/ext/pg_result.c +266 -111
  19. data/ext/pg_text_decoder.c +424 -0
  20. data/ext/pg_text_encoder.c +631 -0
  21. data/ext/pg_type_map.c +113 -0
  22. data/ext/pg_type_map_all_strings.c +113 -0
  23. data/ext/pg_type_map_by_column.c +254 -0
  24. data/ext/pg_type_map_by_mri_type.c +266 -0
  25. data/ext/pg_type_map_by_oid.c +341 -0
  26. data/ext/util.c +149 -0
  27. data/ext/util.h +65 -0
  28. data/lib/1.9/pg_ext.so +0 -0
  29. data/lib/2.0/pg_ext.so +0 -0
  30. data/lib/2.1/pg_ext.so +0 -0
  31. data/lib/i386-mingw32/libpq.dll +0 -0
  32. data/lib/pg.rb +11 -1
  33. data/lib/pg/basic_type_mapping.rb +377 -0
  34. data/lib/pg/coder.rb +74 -0
  35. data/lib/pg/connection.rb +43 -1
  36. data/lib/pg/result.rb +13 -3
  37. data/lib/pg/text_decoder.rb +42 -0
  38. data/lib/pg/text_encoder.rb +27 -0
  39. data/lib/pg/type_map_by_column.rb +15 -0
  40. data/spec/{lib/helpers.rb → helpers.rb} +95 -35
  41. data/spec/pg/basic_type_mapping_spec.rb +251 -0
  42. data/spec/pg/connection_spec.rb +416 -214
  43. data/spec/pg/result_spec.rb +146 -116
  44. data/spec/pg/type_map_by_column_spec.rb +135 -0
  45. data/spec/pg/type_map_by_mri_type_spec.rb +122 -0
  46. data/spec/pg/type_map_by_oid_spec.rb +133 -0
  47. data/spec/pg/type_map_spec.rb +39 -0
  48. data/spec/pg/type_spec.rb +649 -0
  49. data/spec/pg_spec.rb +10 -18
  50. metadata +130 -52
  51. metadata.gz.sig +0 -0
  52. data/lib/1.8/pg_ext.so +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c7c29f40f9a51dc5ee533c2941b10ef46b94c82
4
- data.tar.gz: e8e9df256383c926e8ed75c8f723a97e646cff41
3
+ metadata.gz: e092ab41516826cd409abb444b1fc706372a63dd
4
+ data.tar.gz: 5e4c71c30b29037a737bb2274640c76de8a06205
5
5
  SHA512:
6
- metadata.gz: 0b583b54222a42592c2d5cc23160b513b127b896098d5a89f68205274416622821c3a47b3ac60c9a37e9da36fca94cd08398a5462328e48729c6f2edd5ea1d36
7
- data.tar.gz: 3ba6db810aad50bede098a71433e23b1ff4a49fd673589718d52170b7eaec878466a2dedb43a6c0d3476b772311e9a1ecfe06e8b72c2f34bc55f04dd6744aa8e
6
+ metadata.gz: 36fa45717d46a101ed915b541d5517ad3d7cdf1f1785ff9752c98ac9755a05260b6a0647aece31a6122eccc3d68dba2c926c9ba868162a4e6fb2f1a93f4bb499
7
+ data.tar.gz: e69e99ee05eeee46e984cb3945f5f97d9ba37275213d2c27c6789b6e11cdc0bdbf3da83341371a403c5561c52c9932a0edcd604ddd4e1ee96d166418a5ceff35
Binary file
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,5 +1,1619 @@
1
+ 2014-10-15 Lars Kanis <lars@greiz-reinsdorf.de>
2
+
3
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
4
+ Allow non Array values as input for TextEncoder::Array.
5
+ [a4725dfca9e4] [tip]
6
+
7
+ * ext/pg_coder.c, spec/pg/type_spec.rb:
8
+ Clarify handling of nil/NULL values by PG::Coders.
9
+ [99d6acb8b66d]
10
+
11
+ * ext/pg_text_encoder.c, ext/util.c, ext/util.h:
12
+ Move pg_strncasecmp() to util.c - it better fits there.
13
+ [117fb5c5eed7]
14
+
15
+ 2014-10-14 Lars Kanis <lars@greiz-reinsdorf.de>
16
+
17
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
18
+ Implement a more serious TestEncoder::Boolean.
19
+ [9063a84a2ff9]
20
+
21
+ * ext/pg.h, ext/pg_binary_encoder.c, ext/pg_coder.c,
22
+ ext/pg_text_encoder.c:
23
+ Fix naming and description of pg_coder_enc_to_s(). It actually uses
24
+ #to_s not #to_str.
25
+ [ac23631c96d9]
26
+
27
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
28
+ Use same rules for array quoting in text encoder as PostgreSQL.
29
+
30
+ This makes mutate-detection easier (in Rails).
31
+ [9be31c0663e3]
32
+
33
+ 2014-10-12 Lars Kanis <lars@greiz-reinsdorf.de>
34
+
35
+ * ext/pg_binary_decoder.c:
36
+ Remove needless memcpy() call.
37
+ [f786006b25ff]
38
+
39
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c, ext/util.c,
40
+ ext/util.h:
41
+ Change the endianess conversion for binary data from a library issue
42
+ to a compiler issue.
43
+
44
+ This removes dependency to beXXtoh() functions and ensures aligned
45
+ memory access.
46
+ [c8d7c26dd595]
47
+
48
+ 2014-10-11 Michael Granger <ged@FaerieMUD.org>
49
+
50
+ * ext/extconf.rb, spec/helpers.rb, spec/pg/connection_spec.rb:
51
+ Merge pull request #6 from larskanis/column_type_mapping
52
+
53
+ Add type mapping and performance improvements
54
+ [0da90c2b2812]
55
+
56
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
57
+ Merged with 4cc778c5ead7
58
+ [67bb0f34ca05]
59
+
60
+ 2014-08-20 Michael Granger <ged@FaerieMUD.org>
61
+
62
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
63
+ Check connection status with a matcher in specs
64
+ [b32840b98e4b]
65
+
66
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
67
+
68
+ * Rakefile, Rakefile.cross, ext/extconf.rb:
69
+ gcc option -static-libgcc is required for i386-mingw32 build.
70
+
71
+ Don't use native pg_config for cross build. The paths were
72
+ overwritten anyways until now.
73
+
74
+ Remove code that was only needed for static build to libpq.
75
+ [9a2f9771d0b6]
76
+
77
+ 2014-10-10 Lars Kanis <lars@greiz-reinsdorf.de>
78
+
79
+ * ext/pg_type_map_by_column.c:
80
+ Use C99 struct initializer syntax.
81
+ [ec9ef7fb39eb]
82
+
83
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
84
+
85
+ * spec/pg/connection_spec.rb, spec/pg/type_spec.rb:
86
+ Fix specs for Windows.
87
+ [3659cfd75b96]
88
+
89
+ * .travis.yml, ext/pg_connection.c, lib/pg.rb,
90
+ spec/pg/connection_spec.rb:
91
+ Merge branch 'master' into column_type_mapping
92
+
93
+ Conflicts: ext/pg_connection.c spec/pg/connection_spec.rb
94
+ [57d770944b5d]
95
+
96
+ * ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c:
97
+ Fix gcc warnings in mingw build.
98
+ [26541f7e6bbb]
99
+
100
+ 2014-10-07 Lars Kanis <lars@greiz-reinsdorf.de>
101
+
102
+ * ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
103
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
104
+ ext/pg_type_map_by_oid.c, lib/pg/type_map_by_column.rb:
105
+ Add documentation to TypeMap classes.
106
+ [4227fdc5f0ac]
107
+
108
+ 2014-10-06 Lars Kanis <kanis@comcard.de>
109
+
110
+ * ext/pg_connection.c, ext/pg_result.c, ext/pg_type_map_by_mri_type.c:
111
+ Ensure zero terminated strings per StringValueCStr(), where C-str
112
+ pointers are expected.
113
+
114
+ This fixes issues with ruby-2.2.0-dev described in github pull
115
+ request #5: https://github.com/ged/ruby-pg/pull/5
116
+ [f0b7f99b1dd5]
117
+
118
+ 2014-10-05 Lars Kanis <lars@greiz-reinsdorf.de>
119
+
120
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c, ext/pg_coder.c,
121
+ ext/pg_copy_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
122
+ lib/pg/coder.rb, lib/pg/text_encoder.rb:
123
+ Add class and method documentation related to type casting.
124
+
125
+ Move previous documentaion from .rb files to .c.
126
+ [e64618a44912]
127
+
128
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
129
+ Format infinity and nan values equally to Float#to_s. This fixes a
130
+ test case in activerecord.
131
+ [02285c675326]
132
+
133
+ * lib/pg/text_decoder.rb, lib/pg/text_encoder.rb,
134
+ spec/pg/basic_type_mapping_spec.rb:
135
+ Support infinity time and date values. String values which can not
136
+ be parsed/formatted are now passed through instead of raising an
137
+ exception.
138
+ [85ce8d239d23]
139
+
140
+ 2014-10-04 Lars Kanis <lars@greiz-reinsdorf.de>
141
+
142
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c:
143
+ Add some more documentaion to the encoding/decoding function
144
+ interface.
145
+ [47ccb70c45d6]
146
+
147
+ * ext/pg.h, ext/pg_coder.c, ext/pg_connection.c, ext/pg_copy_coder.c,
148
+ ext/pg_text_encoder.c, ext/pg_type_map.c,
149
+ ext/pg_type_map_all_strings.c, ext/pg_type_map_by_column.c,
150
+ ext/pg_type_map_by_mri_type.c, spec/pg/type_map_by_column_spec.rb:
151
+ Fix handling of query parameters in hash form in conjunction with
152
+ type maps.
153
+
154
+ This moves the oid/format determining back into
155
+ alloc_query_params1() and avoids code duplication within type maps.
156
+ [2afa6cc41d55]
157
+
158
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
159
+
160
+ * Rakefile, Rakefile.cross, ext/extconf.rb:
161
+ gcc option -static-libgcc is required for i386-mingw32 build.
162
+
163
+ Don't use native pg_config for cross build. The paths were
164
+ overwritten anyways until now.
165
+
166
+ Remove code that was only needed for static build to libpq.
167
+ [4cc778c5ead7]
168
+
169
+ 2014-10-09 Lars Kanis <kanis@comcard.de>
170
+
171
+ * Rakefile, Rakefile.cross, lib/pg.rb:
172
+ Bundle libpq.dll into gem, because PostgreSQL-9.3 does no longer
173
+ support static linking.
174
+ [a37e27d356e5]
175
+
176
+ 2014-10-04 Lars Kanis <lars@greiz-reinsdorf.de>
177
+
178
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
179
+ Add missing spec for hash form parameters to #exec_params .
180
+ [04a6a0136a12]
181
+
182
+ * spec/pg/type_map_by_column_spec.rb:
183
+ Fix handling of query parameters in hash form in conjunction with
184
+ type map.
185
+ [a5f028117537]
186
+
187
+ * spec/pg/connection_spec.rb:
188
+ Add missing spec for hash form parameters to #exec_params .
189
+ [23ad5d676b53]
190
+
191
+ 2014-10-03 Lars Kanis <lars@greiz-reinsdorf.de>
192
+
193
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
194
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, spec/pg/type_spec.rb:
195
+ FromBase64 encoder better fits into PG::BinaryEncoder and ToBase64
196
+ decoder better into PG::BinaryDecoder.
197
+ [5db80210a077]
198
+
199
+ 2014-10-02 Lars Kanis <kanis@comcard.de>
200
+
201
+ * ext/pg_coder.c, ext/pg_connection.c, ext/pg_text_decoder.c,
202
+ ext/pg_text_encoder.c:
203
+ rb_str_new() with NULL ptr can be used to allocate/set the Sting
204
+ size.
205
+ [2c4faf369dce]
206
+
207
+ * ext/util.c:
208
+ Speed up the base 64 decoder by 80%.
209
+ [adb1728e29d9]
210
+
211
+ 2014-10-01 Lars Kanis <lars@greiz-reinsdorf.de>
212
+
213
+ * ext/pg_text_decoder.c:
214
+ Use strings in base64 decoders, so that we can avoid copy'ing data
215
+ at string creation in dec_func.
216
+ [1e2cd139e6fe]
217
+
218
+ * spec/pg/type_spec.rb:
219
+ Fix base64 specs for Ruby < 2.1.
220
+ [3a9e0cea7387]
221
+
222
+ 2014-10-01 Lars Kanis <kanis@comcard.de>
223
+
224
+ * Merge branch 'column_type_mapping' of https://github.com/larskanis
225
+ /ruby-pg into column_type_mapping
226
+ [712224085b59]
227
+
228
+ 2014-09-30 Lars Kanis <lars@greiz-reinsdorf.de>
229
+
230
+ * ext/pg.h, ext/pg_result.c, ext/pg_type_map.c,
231
+ ext/pg_type_map_all_strings.c, ext/pg_type_map_by_column.c,
232
+ ext/pg_type_map_by_oid.c:
233
+ Store a pointer to the current typemap into result data and use it
234
+ through the this pointer at all places.
235
+
236
+ This gives PG::Result#getvalue a speedup around 10%.
237
+ [a8b3ef723c22]
238
+
239
+ * spec/pg/basic_type_mapping_spec.rb:
240
+ Change timestamp specs to a value before 1970, so that we see, there
241
+ is no epoch limitation.
242
+ [441da0a4129a]
243
+
244
+ 2014-09-30 Lars Kanis <kanis@comcard.de>
245
+
246
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/util.c,
247
+ ext/util.h, spec/pg/type_spec.rb:
248
+ Add ToBase64 and FromBase64 classes as encoders and decoders.
249
+ [9ff6f35497ad]
250
+
251
+ 2014-09-29 Lars Kanis <kanis@comcard.de>
252
+
253
+ * ext/pg_connection.c:
254
+ Add encoder and decoder for copy_data to gc mark list.
255
+ [a445b16a259e]
256
+
257
+ * Manifest.txt:
258
+ Update Manifest.txt
259
+ [e13ff4f6433e]
260
+
261
+ * ext/pg_connection.c:
262
+ Add new function pg_get_connection_safe() and use it instead of two
263
+ calls to pg_get_connection() and pg_get_pgconn(). It is faster and
264
+ less confusing.
265
+ [6ad4490a691b]
266
+
267
+ * ext/pg_coder.c, ext/pg_copy_coder.c:
268
+ Fix tainted mark for PG::Coder#encoder and #decode and
269
+ PG::TextDecoder::CopyRow output.
270
+ [7aec08b7677c]
271
+
272
+ 2014-09-27 Lars Kanis <lars@greiz-reinsdorf.de>
273
+
274
+ * lib/pg/basic_type_mapping.rb:
275
+ Fix PG::BasicTypeRegistry, so that it works with and without
276
+ previously applied type mapping.
277
+ [db5c2973f143]
278
+
279
+ * lib/pg/basic_type_mapping.rb:
280
+ Underscore unused variables for now, to avoid warnings about them.
281
+ [8d016bc21b9a]
282
+
283
+ * README.rdoc:
284
+ Mention type maps for COPY in the README.
285
+ [ac361f811253]
286
+
287
+ * ext/pg.h:
288
+ It's better to check for availability of the INLINED macro than for
289
+ RUBINIUS define.
290
+ [9ba559feacac]
291
+
292
+ * lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb:
293
+ Add PG::BasicTypeMapBasedOnResult and add specs for deriving
294
+ TypeMapByColumn from a result and use it with COPY.
295
+ [6c69768961c1]
296
+
297
+ * ext/pg_connection.c, ext/pg_result.c:
298
+ Add somewhat more documentaion to type casting.
299
+
300
+ Harmonize coder setters for COPY to accept any PG::Coder (even if
301
+ any other than PG::CopyCoder hardly makes sense).
302
+ [e0a8ec6d2a04]
303
+
304
+ * spec/pg/connection_spec.rb:
305
+ Mark failing test on Rubinius as pending.
306
+ [6eb0fcab4d8c]
307
+
308
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
309
+ Add typecasting to Connection#get_copy_data.
310
+ [21451bfb3659]
311
+
312
+ * ext/pg.c, ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c:
313
+ Allow inline checks for string capacity. This removes the bottleneck
314
+ in the COPY decoder, when doing the check for each character.
315
+ [c2e817ef9b8c]
316
+
317
+ * ext/pg.c, ext/pg.h, ext/pg_coder.c, ext/pg_connection.c,
318
+ ext/pg_copy_coder.c, ext/pg_result.c, ext/pg_text_encoder.c,
319
+ ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
320
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
321
+ spec/pg/type_spec.rb:
322
+ Add PG::TypeMapAllStrings and use it as default typemap, when no
323
+ explicit typemap was set. This allowes PG::CopyCoder to work without
324
+ typemap, too.
325
+ [b183ef46969c]
326
+
327
+ * ext/pg_copy_coder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
328
+ Add CopyCoder#null_string to gc_mark and #to_h .
329
+ [893009c81aec]
330
+
331
+ * ext/pg.h, ext/pg_copy_coder.c, ext/pg_type_map.c,
332
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
333
+ ext/pg_type_map_by_oid.c, spec/pg/type_spec.rb:
334
+ Add decoder for data received from get_copy_data.
335
+
336
+ Remove duplicated not-suitable-raise-functions.
337
+ [0c7c819d2f46]
338
+
339
+ * ext/pg_copy_coder.c:
340
+ Add PG::CopyCoder#null_string .
341
+ [3f52c343f9c8]
342
+
343
+ * ext/pg.c:
344
+ Fix description.
345
+ [38c8b9d03bd1]
346
+
347
+ 2014-09-26 Lars Kanis <kanis@comcard.de>
348
+
349
+ * ext/pg.h, ext/pg_coder.c, ext/pg_text_decoder.c,
350
+ ext/pg_text_encoder.c, ext/pg_type_map_by_column.c,
351
+ ext/pg_type_map_by_oid.c:
352
+ Refactured code to find the right decoder function.
353
+ [5822d67d8c3b]
354
+
355
+ * spec/pg/type_spec.rb:
356
+ Add decoder specs for Bytea.
357
+ [b815372dd5d2]
358
+
359
+ * lib/pg/coder.rb, spec/pg/type_spec.rb:
360
+ Add missing PG::CopyCoder#to_h .
361
+ [e0bf32c9eb31]
362
+
363
+ * ext/pg_copy_coder.c:
364
+ Add missing GC-mark function to copycoder.
365
+ [70ae4e58761c]
366
+
367
+ 2014-09-25 Lars Kanis <lars@greiz-reinsdorf.de>
368
+
369
+ * ext/pg_connection.c, lib/pg/connection.rb,
370
+ spec/pg/connection_spec.rb:
371
+ Implement Connection#put_copy_data and #copy_data with encoder.
372
+ [7bfcfe35344c]
373
+
374
+ * spec/pg/type_spec.rb:
375
+ Add more specs for PG::TextEncoder::CopyRow.
376
+ [94d6505a6a49]
377
+
378
+ * ext/pg_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c:
379
+ Rename different namings of the instance pointer to "this".
380
+ [c07d02ae1cb4]
381
+
382
+ 2014-09-25 Lars Kanis <kanis@comcard.de>
383
+
384
+ * ext/pg_connection.c:
385
+ Save a call to rb_protect by wrapping possibly allocated heap memory
386
+ into T_DATA objects that are free'd by the GC.
387
+ [3c1d86fedf1b]
388
+
389
+ * spec/pg/connection_spec.rb:
390
+ Mark the failing COPY tests as pending.
391
+ [722d4e35b570]
392
+
393
+ * ext/pg.h, ext/pg_coder.c, ext/pg_copy_coder.c,
394
+ ext/pg_text_encoder.c:
395
+ Remove duplicated code.
396
+ [bf96b3d34538]
397
+
398
+ * ext/pg_coder.c:
399
+ Remove another usage of rb_str_modify_expand.
400
+ [36493e777910]
401
+
402
+ * ext/extconf.rb, ext/pg.c:
403
+ Add a more portable version of pg_ensure_str_capa, that should work
404
+ on Rubinius.
405
+ [bfdd98d3553a]
406
+
407
+ * ext/pg.c, ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c,
408
+ spec/pg/type_spec.rb:
409
+ Add specs for PG::TextEncoder::CopyRow. Refacture
410
+ pg_ensure_str_capa() to avoid duplicated code.
411
+ [58db6bcc673e]
412
+
413
+ 2014-09-24 Lars Kanis <lars@greiz-reinsdorf.de>
414
+
415
+ * ext/pg_text_encoder.c:
416
+ Finish second option for encoders to return a string.
417
+ [d523e7482832]
418
+
419
+ 2014-09-24 Lars Kanis <kanis@comcard.de>
420
+
421
+ * ext/pg_coder.c, ext/pg_connection.c, ext/pg_copy_coder.c,
422
+ ext/pg_text_encoder.c:
423
+ Add a second option for encoders to return a string. Not yet
424
+ finished.
425
+ [6a408664b53d]
426
+
427
+ * ext/pg_connection.c:
428
+ Fix typo.
429
+ [394b095b06e7]
430
+
431
+ 2014-09-23 Lars Kanis <lars@greiz-reinsdorf.de>
432
+
433
+ * Merge branch 'column_type_mapping' of github.com:larskanis/ruby-pg
434
+ into column_type_mapping
435
+ [0a904a023886]
436
+
437
+ 2014-09-23 Lars Kanis <kanis@comcard.de>
438
+
439
+ * ext/pg.h:
440
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
441
+ /ruby-pg into column_type_mapping
442
+ [5f7ae7085714]
443
+
444
+ * ext/pg_connection.c:
445
+ Fix comment.
446
+ [bc848e8d054b]
447
+
448
+ * ext/pg.h, ext/pg_connection.c:
449
+ Add setter and getter for Connection#encoder_for_put_copy_data and
450
+ decoder_for_get_copy_data.
451
+ [b21c2b78af51]
452
+
453
+ * ext/pg.c, ext/pg.h, ext/pg_binary_encoder.c, ext/pg_copy_coder.c,
454
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c,
455
+ spec/pg/connection_spec.rb:
456
+ Add TextEncoder::CopyRow. Not finished yet.
457
+ [f631bec1aea1]
458
+
459
+ * ext/pg_coder.c:
460
+ Refactured duplicated init code for coders.
461
+ [89c888335657]
462
+
463
+ 2014-09-23 Lars Kanis <lars@greiz-reinsdorf.de>
464
+
465
+ * ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c:
466
+ Fix possible invalid memory access in pg_tmbc_mark().
467
+ [89a8049d3de8]
468
+
469
+ 2014-09-22 Lars Kanis <lars@greiz-reinsdorf.de>
470
+
471
+ * ext/pg.h:
472
+ Add compat for Rubinius.
473
+ [1836d0c5c623]
474
+
475
+ 2014-09-22 Lars Kanis <kanis@comcard.de>
476
+
477
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c, ext/pg_type_map.c,
478
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
479
+ ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb,
480
+ spec/pg/type_map_spec.rb:
481
+ Add PG::TypeMap#fit_to_result and fit_to_query as Ruby methods and
482
+ remove opposite Ruby callback wrapper.
483
+
484
+ The callback wrapper were not used and explicit calling
485
+ fit_to_result makes more sense (for caching etc.).
486
+
487
+ Swap parameter order of fit_to_result and fit_to_query so that self
488
+ is the first one.
489
+ [531ece2a12f8]
490
+
491
+ * ext/pg_type_map_by_mri_type.c:
492
+ Add comment to TypeMapByMriType class. [skip-ci]
493
+ [19e5622fd318]
494
+
495
+ * ext/pg_connection.c:
496
+ Put only converted ruby strings into the gc_array.
497
+ [f705548a5b5f]
498
+
499
+ 2014-09-21 Lars Kanis <lars@greiz-reinsdorf.de>
500
+
501
+ * README.rdoc, lib/pg/type_map_by_column.rb:
502
+ Update the introduction for type casting in Pg. Luckily it became
503
+ easier.
504
+ [b1876686a1e2]
505
+
506
+ * lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb,
507
+ spec/pg/connection_spec.rb:
508
+ Use text format for integers and don't set type OID for text types.
509
+ [34b9dacb04d3]
510
+
511
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
512
+ Implement a faster Fixnum to text encoder.
513
+ [a7b9ea6dffd7]
514
+
515
+ * spec/pg/connection_spec.rb:
516
+ Add spec for a lot of result columns in conjunction with type
517
+ casting.
518
+ [13629c7af842]
519
+
520
+ * ext/pg_connection.c:
521
+ Use query stack memory pool somewhat more space efficient.
522
+ [13c7d27cf253]
523
+
524
+ 2014-09-20 Lars Kanis <lars@greiz-reinsdorf.de>
525
+
526
+ * ext/pg_connection.c:
527
+ Do two passes of query param encoding one after another. This should
528
+ give somewhat more cache locality.
529
+ [c2634b894cb7]
530
+
531
+ * ext/pg.h, ext/pg_binary_decoder.c, ext/pg_connection.c,
532
+ ext/pg_result.c, ext/pg_text_decoder.c:
533
+ Use a faster version of ENCODING_SET.
534
+
535
+ Remove several ifdefs.
536
+ [90051cb74b20]
537
+
538
+ * ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c, ext/pg_connection.c,
539
+ ext/pg_result.c:
540
+ Cleanup and harmonize encoding assignment.
541
+ [2549c08e631e]
542
+
543
+ * ext/pg_result.c, spec/pg/result_spec.rb:
544
+ Add type casting to Result#column_values and #field_values.
545
+ [34b9016757c4]
546
+
547
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
548
+ ext/pg_text_decoder.c, ext/pg_type_map.c,
549
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
550
+ ext/pg_type_map_by_oid.c:
551
+ Use RBasic encoding store as cache for connection's
552
+ internal_encoding.
553
+
554
+ Remove encoding_index from typemap struct.
555
+
556
+ Rename typemap-struct member 'typecast' to 'typecast_result_value'.
557
+ [58dff8991613]
558
+
559
+ 2014-09-19 Lars Kanis <lars@greiz-reinsdorf.de>
560
+
561
+ * ext/pg_connection.c:
562
+ Avoid duplicated type check for typemaps on query params.
563
+ [e7ae19b8fe19]
564
+
565
+ * ext/pg_type_map_by_mri_type.c:
566
+ Sort MRI-types according to their probability.
567
+ [383da4885164]
568
+
569
+ * ext/pg_connection.c, ext/pg_result.c, lib/pg/result.rb:
570
+ Implement PG::Result#values in C. This avoids the overhead of
571
+ Enumerator-fibers and dynamic array size changes.
572
+ [7bf8d41cbcb6]
573
+
574
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
575
+ Use stack memory for queries unless there are a lot of params.
576
+ [b9f9f33f5c21]
577
+
578
+ 2014-09-19 Lars Kanis <kanis@comcard.de>
579
+
580
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
581
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c,
582
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb:
583
+ Use a wrapped C-struct as data of PG::Result and store instance
584
+ variables there.
585
+
586
+ This avoids all hash lookups for accessing instance variables.
587
+
588
+ This also fixes bitbucket bug #185 by marking the result as
589
+ autocleared: https://bitbucket.org/ged/ruby-pg/issue/185
590
+
591
+ And this adds two new methods to PG::Result : autoclear? and
592
+ cleared?
593
+ [93d51e75cb0b]
594
+
595
+ * ext/pg_connection.c:
596
+ Rename p_conn to this.
597
+ [7ae20e3f9db2]
598
+
599
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c:
600
+ Move all ivars of the Connection object to C-struct.
601
+ [79ed6d2ba9a1]
602
+
603
+ * ext/pg.h, ext/pg_connection.c:
604
+ Merge branch 'column_type_mapping' into use_structs_as_data_ptr
605
+ [183eff440b6e]
606
+
607
+ * ext/pg_connection.c:
608
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
609
+ /ruby-pg into column_type_mapping
610
+ [75ef0371c4ed]
611
+
612
+ 2014-09-18 Lars Kanis <lars@greiz-reinsdorf.de>
613
+
614
+ * ext/pg_type_map_by_oid.c:
615
+ Merge branch 'column_type_mapping' of github.com:larskanis/ruby-pg
616
+ into column_type_mapping
617
+
618
+ Conflicts: ext/pg_type_map_by_oid.c
619
+ [39b58e42efd6]
620
+
621
+ * ext/pg.h, ext/pg_connection.c, ext/pg_type_map.c,
622
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
623
+ ext/pg_type_map_by_oid.c:
624
+ Refacture type casting of query params, to avoid doublicated code.
625
+
626
+ This also bundles memory allocation for query functions.
627
+ [4d0a26946895]
628
+
629
+ 2014-09-18 Lars Kanis <kanis@comcard.de>
630
+
631
+ * ext/pg.h, ext/pg_connection.c:
632
+ Use structs as data ptr.
633
+ [bb3ce59c6acd]
634
+
635
+ * ext/pg_connection.c:
636
+ Remove rb_obj_is_kind_of(connection) for every Connection method
637
+ call.
638
+
639
+ There should'nt be any possibility to change the base type from Ruby
640
+ space.
641
+ [5dd2fec1a494]
642
+
643
+ * ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
644
+ Add a OID lookup cache to PG::TypeMapByOid to the cost of 8KByte
645
+ heap memory per instance.
646
+
647
+ max_rows_for_online_lookup is also increased but that's only
648
+ guessed. So no tests were done to find any break-even point.
649
+ [bf44b0aaf366]
650
+
651
+ 2014-09-16 Lars Kanis <lars@greiz-reinsdorf.de>
652
+
653
+ * ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
654
+ TypeMapByOid: Add threshold for per-row hash lookups.
655
+ [892253614bdb]
656
+
657
+ 2014-09-16 Lars Kanis <kanis@comcard.de>
658
+
659
+ * ext/pg_connection.c, ext/pg_result.c, ext/pg_text_decoder.c,
660
+ lib/pg/basic_type_mapping.rb, lib/pg/result.rb,
661
+ spec/pg/basic_type_mapping_spec.rb, spec/pg/connection_spec.rb:
662
+ Restructured BasicTypeMapping to make use of TypeMapByOid and
663
+ TypeMapByMriType.
664
+
665
+ Renamed type_map_for_result and type_map_for_query to plural form -
666
+ that sounds better.
667
+ [8bda62d443c9]
668
+
669
+ * ext/pg_type_map_by_oid.c:
670
+ TypeMapByOid: Move init code for C-Struct to alloc function, so that
671
+ derived classes, which don't call super in initialize don't
672
+ segfault.
673
+ [592fa6e19beb]
674
+
675
+ * ext/pg.h, ext/pg_connection.c, ext/pg_type_map_by_mri_type.c,
676
+ spec/pg/type_map_by_mri_type_spec.rb:
677
+ TypeMapByMriType: Allow dynamic definition of a coder for each per
678
+ query param.
679
+
680
+ Remove T_NIL since it's not useful. Qnil is always mapped to SQL
681
+ NULL.
682
+ [8e5d18881a5d]
683
+
684
+ * ext/pg.h:
685
+ Add missing function declaration.
686
+ [30eb8599d4b2]
687
+
688
+ * ext/pg_result.c, ext/pg_type_map_by_column.c,
689
+ ext/pg_type_map_by_oid.c:
690
+ Replace some Check_Type/DATA_PTR combinations by Data_Get_Struct.
691
+ [5f4cb85d4025]
692
+
693
+ * ext/pg_type_map_by_column.c:
694
+ Remove unnecessary variable.
695
+ [2e109387fa5b]
696
+
697
+ * Manifest.txt, ext/pg.c, ext/pg_type_map_by_mri_type.c,
698
+ spec/pg/type_map_by_mri_type_spec.rb:
699
+ Add PG::TypeMapByMriType for encoding of Ruby values.
700
+ [00e11c3f4ced]
701
+
702
+ 2014-09-15 Lars Kanis <lars@greiz-reinsdorf.de>
703
+
704
+ * ext/pg_type_map_by_column.c:
705
+ Fix NULL pointer deref in mark function.
706
+
707
+ Move init of tmbc struct, so that it's done before a raise/GC run
708
+ can happen.
709
+ [ece47453109b]
710
+
711
+ 2014-09-15 Lars Kanis <kanis@comcard.de>
712
+
713
+ * ext/pg_type_map_by_column.c:
714
+ Avoid read of uninitialized values - detected with valgrind:
715
+
716
+ ==30681== Conditional jump or move depends on uninitialised value(s)
717
+ ==30681== at 0xD1732EB: pg_tmbc_alloc_query_params
718
+ (pg_type_map_by_column.c:157) ==30681== by 0x4EA93B6: rb_protect
719
+ (eval.c:819) ==30681== by 0xD1770DE: alloc_query_params
720
+ (pg_connection.c:1030) ==30681== by 0xD17A357: pgconn_exec_params
721
+ (pg_connection.c:1102) ==30681== by 0x4FCE439:
722
+ vm_call_cfunc_with_frame (vm_insnhelper.c:1470) ==30681== by
723
+ 0x4FDA48E: vm_call_method (vm_insnhelper.c:1560) ==30681== by
724
+ 0x4FD2568: vm_exec_core (insns.def:1028) ==30681== by 0x4FD7126:
725
+ vm_exec (vm.c:1304) ==30681== by 0x4FD8EFA:
726
+ invoke_block_from_c.part.49 (vm.c:732) ==30681== by 0x4FDCB13:
727
+ yield_under (vm.c:704) ==30681== by 0x4FCE439:
728
+ vm_call_cfunc_with_frame (vm_insnhelper.c:1470) ==30681== by
729
+ 0x4FDA48E: vm_call_method (vm_insnhelper.c:1560)
730
+ [4a125325e819]
731
+
732
+ * ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c:
733
+ Fix NULL pointer dereference when a TypeMapByColumn is marked before
734
+ #initialize
735
+
736
+ Remove unnecessary type cast.
737
+ [4fe07c3ea525]
738
+
739
+ 2014-09-14 Lars Kanis <lars@greiz-reinsdorf.de>
740
+
741
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_type_map_by_column.c,
742
+ ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
743
+ Add PG::TypeMapByOid which can be used for easy and fast result
744
+ value type casts.
745
+
746
+ Change TypeMapByColumn to use a GC mark function. This way we don't
747
+ need to store the coder objects twice.
748
+ [c967d74f8412]
749
+
750
+ * ext/pg_connection.c:
751
+ Remove unnecessary memory allocation.
752
+ [72957cc8bb04]
753
+
754
+ 2014-09-13 Lars Kanis <lars@greiz-reinsdorf.de>
755
+
756
+ * spec/pg/type_map_spec.rb:
757
+ Remove obsolete comment
758
+ [c875975e4596]
759
+
760
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_coder.c,
761
+ ext/pg_column_mapping.c, ext/pg_connection.c, ext/pg_result.c,
762
+ ext/pg_type_map.c, ext/pg_type_map_by_column.c, lib/pg.rb,
763
+ lib/pg/basic_type_mapping.rb, lib/pg/column_mapping.rb,
764
+ lib/pg/result.rb, lib/pg/type_map_by_column.rb,
765
+ spec/pg/basic_type_mapping_spec.rb, spec/pg/column_mapping_spec.rb,
766
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
767
+ spec/pg/type_map_by_column_spec.rb, spec/pg/type_map_spec.rb:
768
+ Allow different type mapping strategies beside ColumnMapping. This
769
+ gives us the freedom to implement TypeMapByOid, TypeMapByClass or
770
+ some fixed function mappings.
771
+
772
+ Rename ColumnMapping to TypeMapByColumn.
773
+
774
+ Seperate type_map_for_result from type_map_for_query, so thats it's
775
+ easy to do type casts for one direction only.
776
+ [2548e7a85049]
777
+
778
+ 2014-09-02 Lars Kanis <lars@greiz-reinsdorf.de>
779
+
780
+ * ext/pg_coder.c, ext/pg_text_encoder.c, lib/pg/text_encoder.rb:
781
+ Add documentation to some TextEncoder classes.
782
+ [6c3fad43d3a2]
783
+
784
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
785
+ Fix PG::TextEncoder::Identifier for more than 2 elements.
786
+ [fcb8138f3f6f]
787
+
788
+ 2014-08-31 Lars Kanis <lars@greiz-reinsdorf.de>
789
+
790
+ * ext/pg.h, ext/pg_coder.c, ext/pg_text_decoder.c,
791
+ ext/pg_text_encoder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
792
+ Add delimiter attribute to composite types.
793
+ [5604eba62d48]
794
+
795
+ * README.rdoc:
796
+ Update the README to reflect the API change of the type cast
797
+ classes.
798
+ [2afd944eadb2]
799
+
800
+ * lib/pg/basic_type_mapping.rb:
801
+ Update PG::BasicTypeMapping to make use of new PG::Coder classes.
802
+ Add some documentation to BasicTypeMapping.
803
+ [ad24be2307d1]
804
+
805
+ * spec/pg/type_spec.rb:
806
+ type_spec doesn't make use of the helpers.
807
+ [7a3a4197a61f]
808
+
809
+ 2014-08-26 Lars Kanis <lars@greiz-reinsdorf.de>
810
+
811
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
812
+ ext/pg_binary_encoder.c, ext/pg_coder.c, ext/pg_column_mapping.c,
813
+ ext/pg_connection.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
814
+ ext/pg_type.c, lib/pg.rb, lib/pg/basic_type_mapping.rb,
815
+ lib/pg/coder.rb, lib/pg/column_mapping.rb, lib/pg/text_decoder.rb,
816
+ lib/pg/text_encoder.rb, lib/pg/type.rb,
817
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb,
818
+ spec/pg/type_spec.rb:
819
+ Simplify the type cast API by merging PG::Type and PG::Coder
820
+ classes.
821
+
822
+ En/decoders can now be built directly as
823
+ PG::TextDecoder::Integer.new instead of previous
824
+ PG::Type.new(decoder: PG::TextDecoder::Integer) .
825
+ [2b428d490e08]
826
+
827
+ 2014-08-24 Lars Kanis <lars@greiz-reinsdorf.de>
828
+
829
+ * ext/pg_connection.c, ext/pg_type.c:
830
+ Change all remaining Oid <-> VALUE conversions to UINT.
831
+ [66047d8245d1]
832
+
833
+ * ext/pg_coder.c:
834
+ Remove unused accessors.
835
+ [b6b84993c6ff]
836
+
837
+ * spec/pg/type_spec.rb:
838
+ Convert remaining two should's to expect syntax.
839
+ [1888e8425d07]
840
+
841
+ * .travis.yml:
842
+ 'gem install rake-compiler' is still needed for cross build.
843
+ [f8a0ac84f72f]
844
+
845
+ * .travis.yml, spec/pg/connection_spec.rb:
846
+ Merge branch 'master' into column_type_mapping
847
+
848
+ Conflicts: .travis.yml
849
+ [36684ebbc21d]
850
+
851
+ 2014-08-22 Lars Kanis <lars@greiz-reinsdorf.de>
852
+
853
+ * Merge /home/lars/comcard/tmp5/ruby-pg.git.bare into
854
+ column_type_mapping
855
+ [2485600065c4]
856
+
857
+ * spec/helpers.rb, spec/pg/column_mapping_spec.rb,
858
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
859
+ spec/pg/type_spec.rb:
860
+ Convert type cast specs to expect syntax of RSpec 3
861
+ [3497aade8d9a]
862
+
863
+ * Manifest.txt, ext/pg_connection.c, ext/pg_result.c, spec/helpers.rb,
864
+ spec/lib/helpers.rb, spec/pg/connection_spec.rb,
865
+ spec/pg/result_spec.rb:
866
+ Merge branch 'master' into column_type_mapping
867
+
868
+ Conflicts: Manifest.txt spec/helpers.rb spec/pg/connection_spec.rb
869
+ spec/pg/result_spec.rb
870
+ [8eb15150e2f7]
871
+
872
+ 2014-05-08 Lars Kanis <kanis@comcard.de>
873
+
874
+ * lib/pg/basic_type_mapping.rb:
875
+ Make column_mapping_for_* methods public.
876
+ [5b2c4584de20]
877
+
878
+ 2014-04-27 Lars Kanis <lars@greiz-reinsdorf.de>
879
+
880
+ * lib/pg/coder.rb, lib/pg/type.rb:
881
+ Add nicer inspect methods to Type and Coder.
882
+ [bea1b87d449f]
883
+
884
+ 2014-04-23 Lars Kanis <lars@greiz-reinsdorf.de>
885
+
886
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
887
+ Add PG::TextEncoder::QUOTED_LITERAL.
888
+
889
+ This can be used to encode values directly for sql insertion.
890
+ [899ae14a4177]
891
+
892
+ * ext/pg.h, ext/pg_binary_encoder.c, ext/pg_text_encoder.c,
893
+ spec/pg/type_spec.rb:
894
+ Use #to_i for encoding of non Numeric types. That allows use of
895
+ strings like "123-garbage" as integer input.
896
+ [3771cd7756af]
897
+
898
+ * ext/pg_text_encoder.c, lib/pg/basic_type_mapping.rb,
899
+ spec/pg/column_mapping_spec.rb:
900
+ Remove PG::TextEncoder::BYTEA, as it was not correct.
901
+ [f246df175b01]
902
+
903
+ 2014-04-22 Lars Kanis <lars@greiz-reinsdorf.de>
904
+
905
+ * ext/pg_connection.c, spec/pg/column_mapping_spec.rb:
906
+ Fix encoding of NULL values to typed fields.
907
+ [8820a9c4271e]
908
+
909
+ * ext/pg_binary_encoder.c, ext/pg_text_encoder.c,
910
+ spec/pg/type_spec.rb:
911
+ Allow to encode Strings to int types
912
+ [b8c6be80a931]
913
+
914
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
915
+ Fix encoding of empty arrays.
916
+ [eff38fc911d0]
917
+
918
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
919
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c,
920
+ lib/pg/basic_type_mapping.rb, lib/pg/text_decoder.rb,
921
+ lib/pg/text_encoder.rb, spec/pg/column_mapping_spec.rb,
922
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
923
+ Change all coder objects to UPPERCASE, because they aren't class
924
+ constants.
925
+ [8384fe858ebf]
926
+
927
+ 2014-04-21 Lars Kanis <lars@greiz-reinsdorf.de>
928
+
929
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c, spec/pg/type_spec.rb:
930
+ Add encoder and decoder for identifiers.
931
+
932
+ Improve quotation code of Array encoder.
933
+
934
+ Refactor Array encoder and decoder functions to allow reuse for
935
+ identifiers.
936
+ [b13e27b316d4]
937
+
938
+ 2014-04-19 Lars Kanis <lars@greiz-reinsdorf.de>
939
+
940
+ * ext/pg_type.c, spec/pg/type_spec.rb:
941
+ Allow PG::CompositeType#elements_type=nil and fix error text for
942
+ invalid types.
943
+ [91f8becf18aa]
944
+
945
+ * spec/pg/column_mapping_spec.rb:
946
+ Add decoder tests for float values NAN and INFINITY.
947
+ [c45b87b317c3]
948
+
949
+ * ext/pg_type.c:
950
+ pg_type_get_and_check() is no longer in use.
951
+ [f387ba78ccbf]
952
+
953
+ * lib/pg/basic_type_mapping.rb:
954
+ Array.new is somewhat faster than using an Enumerator.
955
+ [458cdea12837]
956
+
957
+ * ext/pg_column_mapping.c, ext/pg_result.c:
958
+ Don't call ENCODING_GET() for each result value, but only once, when
959
+ the ColumnMapping is assigned to a PG::Result.
960
+
961
+ The speedup is only minimal (~1%).
962
+ [29fc4769e95a]
963
+
964
+ 2014-04-18 Lars Kanis <lars@greiz-reinsdorf.de>
965
+
966
+ * ext/pg_type.c:
967
+ Add check for output lengths of first/second pass of C based
968
+ encoders.
969
+ [445a04470387]
970
+
971
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
972
+ Fix size computation of negative numbers for text integer encoding.
973
+ [3984ee009617]
974
+
975
+ * README.rdoc:
976
+ Tune type cast documentation a bit more.
977
+ [65f0f57deb57]
978
+
979
+ * README.rdoc:
980
+ Add the most simple use case for type casting to the README.
981
+ [6524afce6fbc]
982
+
983
+ * ext/pg_text_decoder.c:
984
+ rb_cstr2inum() seems to be slow, so we do the integer conversion by
985
+ hand in simple cases. This proved to be 40% faster.
986
+ [976fcccb023f]
987
+
988
+ 2014-04-16 Lars Kanis <lars@greiz-reinsdorf.de>
989
+
990
+ * spec/pg/type_spec.rb:
991
+ Add spec for PG::Type default values.
992
+ [ac8037456424]
993
+
994
+ * lib/pg/type.rb:
995
+ Remove old code.
996
+ [d9abf3b53985]
997
+
998
+ * spec/pg/type_spec.rb:
999
+ Add specs for Type#to_h.
1000
+ [170f9f5a344b]
1001
+
1002
+ * ext/pg_type.c:
1003
+ needs_quotation? should return true or false.
1004
+ [f00c1948e602]
1005
+
1006
+ 2014-04-16 Lars Kanis <kanis@comcard.de>
1007
+
1008
+ * History.rdoc, lib/pg.rb:
1009
+ Bump VERSION to 0.18.0
1010
+ [91ea8734d053]
1011
+
1012
+ 2014-04-15 Lars Kanis <lars@greiz-reinsdorf.de>
1013
+
1014
+ * ext/pg.h, ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
1015
+ ext/pg_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
1016
+ lib/pg/coder.rb:
1017
+ Use full qualified name for Coder#name.
1018
+
1019
+ Remove duplicated code in coder definitions.
1020
+ [7ca87a46a91c]
1021
+
1022
+ 2014-04-15 Lars Kanis <kanis@comcard.de>
1023
+
1024
+ * Manifest.txt:
1025
+ Update Manifest.txt
1026
+ [02c6ce33a90c]
1027
+
1028
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
1029
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c:
1030
+ Remove duplicated @name accessors.
1031
+ [13cc22a2b729]
1032
+
1033
+ 2014-04-15 Lars Kanis <lars@greiz-reinsdorf.de>
1034
+
1035
+ * ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
1036
+ ext/pg_binary_encoder.c, ext/pg_coder.c, ext/pg_text_decoder.c,
1037
+ ext/pg_text_encoder.c, lib/pg.rb, lib/pg/coder.rb, lib/pg/type.rb,
1038
+ spec/pg/type_spec.rb:
1039
+ Add ability to Marshal.dump/load PG::Type objects.
1040
+
1041
+ This should help to use PG::Type in ActiveRecord.
1042
+
1043
+ This also fixes base classes for Composite coders.
1044
+ [ef0ef4b51e0d]
1045
+
1046
+ 2014-04-14 Lars Kanis <kanis@comcard.de>
1047
+
1048
+ * README.rdoc:
1049
+ Update README according to changes in type mapping.
1050
+ [fe3b1cd9850b]
1051
+
1052
+ 2014-04-13 Lars Kanis <lars@greiz-reinsdorf.de>
1053
+
1054
+ * Manifest.txt, ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c,
1055
+ lib/pg.rb, lib/pg/simple_type.rb, lib/pg/type.rb,
1056
+ spec/pg/type_spec.rb:
1057
+ Add a common base class PG::Type for PG::SimpleType and
1058
+ PG::CompositeType.
1059
+
1060
+ "some kind of PG::Type" sounds a little bit better than SimpleType.
1061
+ [2a385bd22f7c]
1062
+
1063
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
1064
+ ext/pg_binary_encoder.c, ext/pg_column_mapping.c,
1065
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/pg_type.c,
1066
+ ext/pg_type_binary_decoder.c, ext/pg_type_binary_encoder.c,
1067
+ ext/pg_type_text_decoder.c, ext/pg_type_text_encoder.c, lib/pg.rb,
1068
+ lib/pg/basic_type_mapping.rb, lib/pg/simple_type.rb,
1069
+ lib/pg/text_decoder.rb, lib/pg/text_encoder.rb,
1070
+ lib/pg/type/simple_type.rb, lib/pg/type/text_decoder.rb,
1071
+ lib/pg/type/text_encoder.rb, lib/pg/type/type.rb,
1072
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb,
1073
+ spec/pg/type_spec.rb:
1074
+ Remove namespace PG::Type and move all contained classes in PG
1075
+ namespace.
1076
+
1077
+ Rename function names accordingly.
1078
+ [c5886a74623c]
1079
+
1080
+ 2014-04-12 Lars Kanis <lars@greiz-reinsdorf.de>
1081
+
1082
+ * spec/pg/result_spec.rb:
1083
+ Remove needless == in spec.
1084
+ [03d3a7c68f8f]
1085
+
1086
+ * Manifest.txt, lib/pg.rb, lib/pg/basic_type_mapping.rb,
1087
+ lib/pg/column_mapping.rb, lib/pg/result.rb, lib/pg/type.rb,
1088
+ spec/pg/column_mapping_spec.rb, spec/pg/connection_spec.rb,
1089
+ spec/pg/result_spec.rb:
1090
+ Change BasicTypeMapping so that it uses type information from the
1091
+ DB.
1092
+
1093
+ Align specs to the latest type code refactoring.
1094
+ [ad90adcc1ae3]
1095
+
1096
+ * ext/pg_column_mapping.c, lib/pg/type/simple_type.rb,
1097
+ lib/pg/type/text_decoder.rb, lib/pg/type/text_encoder.rb,
1098
+ lib/pg/type/type.rb:
1099
+ Fix colmap_init. It was the wrong variable name.
1100
+ [eb13e786adec]
1101
+
1102
+ 2014-04-11 Lars Kanis <lars@greiz-reinsdorf.de>
1103
+
1104
+ * spec/pg/type_spec.rb:
1105
+ Convert and add several new test cases to SimpleType and
1106
+ CompositType.
1107
+ [d07abe17054c]
1108
+
1109
+ * ext/pg_type_text_encoder.c:
1110
+ Avoid calling enc_func twice for array encoding.
1111
+
1112
+ This did lead to wrong behaviour on array of ruby defined types when
1113
+ using quotation.
1114
+ [767e1049ea08]
1115
+
1116
+ * ext/pg_type_binary_decoder.c, ext/pg_type_binary_encoder.c,
1117
+ ext/pg_type_text_decoder.c, ext/pg_type_text_encoder.c:
1118
+ Add String en/decoder.
1119
+ [d420f9b92bf3]
1120
+
1121
+ * ext/pg_type.c:
1122
+ Ensure encoder output is a string and decoder input is a string.
1123
+ [fd943340acac]
1124
+
1125
+ 2014-04-09 Lars Kanis <lars@greiz-reinsdorf.de>
1126
+
1127
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1128
+ ext/pg_type.c, ext/pg_type_binary_decoder.c,
1129
+ ext/pg_type_binary_encoder.c, ext/pg_type_text_decoder.c,
1130
+ ext/pg_type_text_encoder.c:
1131
+ WIP: Major refactoring of the type mapping code and API.
1132
+
1133
+ Now we distinguish between Encoders/Decoders and Types on Ruby
1134
+ level.
1135
+ [48e40627d66b]
1136
+
1137
+ 2014-04-04 Lars Kanis <lars@greiz-reinsdorf.de>
1138
+
1139
+ * spec/pg/connection_spec.rb:
1140
+ Cleanup test tables, so that these two test cases can be executed
1141
+ multiple times.
1142
+ [3c450594f574]
1143
+
1144
+ 2014-03-31 Lars Kanis <kanis@comcard.de>
1145
+
1146
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/type.rb,
1147
+ spec/pg/type_spec.rb:
1148
+ Allow composition of types in Ruby space, so that we can combine
1149
+ Ruby and C converters.
1150
+ [e25ee59f5bff]
1151
+
1152
+ 2014-03-31 Lars Kanis <lars@greiz-reinsdorf.de>
1153
+
1154
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1155
+ ext/pg_type.c:
1156
+ Add composit types that allow mixed C/Ruby implementation of
1157
+ base/elem converters.
1158
+ [c5a3c68fe2bb]
1159
+
1160
+ 2014-03-24 Lars Kanis <kanis@comcard.de>
1161
+
1162
+ * .travis.yml:
1163
+ Fix windows build on travis-ci.
1164
+ [0fc7eee486c8]
1165
+
1166
+ * lib/pg/type_mapping.rb:
1167
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
1168
+ /ruby-pg into column_type_mapping
1169
+ [8e785f697ba7]
1170
+
1171
+ 2014-03-23 Lars Kanis <lars@greiz-reinsdorf.de>
1172
+
1173
+ * Manifest.txt, spec/pg/array_parser_spec.rb, spec/pg/type_spec.rb:
1174
+ Merge array_parser_spec.rb into type_spec.rb. Update Manifest.txt.
1175
+ [23907cc8d0f2]
1176
+
1177
+ * spec/lib/helpers.rb, spec/pg/column_mapping_spec.rb:
1178
+ Type encoding: Verify that the type OIDs match our expectation when
1179
+ encoding values.
1180
+ [4a4f58d3a058]
1181
+
1182
+ 2014-03-22 Lars Kanis <lars@greiz-reinsdorf.de>
1183
+
1184
+ * ext/pg_type.c, spec/pg/type_spec.rb:
1185
+ Fix conversion of Bignums to integer for text format.
1186
+ [987713eeca05]
1187
+
1188
+ * lib/pg/basic_type_mapping.rb, spec/pg/array_parser_spec.rb,
1189
+ spec/pg/column_mapping_spec.rb:
1190
+ Add basic type mapping for array types.
1191
+ [112cc249775b]
1192
+
1193
+ * ext/pg_type.c:
1194
+ Add float type conversions for text format.
1195
+ [d45c09db59c9]
1196
+
1197
+ * ext/pg_type.c:
1198
+ Text array encoding: Store all intermediate values into a single
1199
+ array even of converting multi dimensional arrays.
1200
+
1201
+ Add integer encoding for text format.
1202
+ [d95cc34a5119]
1203
+
1204
+ * ext/pg_type.c:
1205
+ Add inttypes.h since we're using int_t types.
1206
+ [c3a4655c70c5]
1207
+
1208
+ * ext/pg_type.c:
1209
+ Array type encoding: Avoid unnecessary copying of data.
1210
+ [78a8caa47042]
1211
+
1212
+ 2014-03-21 Lars Kanis <lars@greiz-reinsdorf.de>
1213
+
1214
+ * ext/pg_type.c, spec/pg/array_parser_spec.rb:
1215
+ Add array encoding for text format.
1216
+ [54682c69398f]
1217
+
1218
+ * spec/pg/column_mapping_spec.rb:
1219
+ Fix typo in column_mapping_spec.rb
1220
+ [007d45ed9ab5]
1221
+
1222
+ * ext/pg_column_mapping.c:
1223
+ Fix wrong type check due to 274d3e533.
1224
+ [51a9632e9a33]
1225
+
1226
+ 2014-02-25 Lars Kanis <lars@greiz-reinsdorf.de>
1227
+
1228
+ * ext/pg_type.c:
1229
+ Add encode/decode methods to CConverters only if corresponding C
1230
+ functions are defined.
1231
+
1232
+ This allowes simple detection of the capablities per respond_to? .
1233
+ [16209f4f9b70]
1234
+
1235
+ * ext/pg_connection.c:
1236
+ Use variable length arrays on the stack for intermediates while
1237
+ param value convertion.
1238
+
1239
+ This avoids malloc/free overhead, frees the memory before the
1240
+ function call and ensures proper GC protection.
1241
+ [44a016bc84fa]
1242
+
1243
+ 2014-02-19 Lars Kanis <lars@greiz-reinsdorf.de>
1244
+
1245
+ * ext/pg_type.c:
1246
+ Fix value.inspect in raised exception.
1247
+ [2af869fcf933]
1248
+
1249
+ * README.rdoc:
1250
+ Add paths to implementation files in README.
1251
+ [d6ca799ef38c]
1252
+
1253
+ 2014-02-18 Lars Kanis <lars@greiz-reinsdorf.de>
1254
+
1255
+ * ext/pg_result.c:
1256
+ Avoid 'result has been cleared' error in case of UnableToSend.
1257
+
1258
+ Avoid double checking per pgresult_get().
1259
+ [4a478da0839a]
1260
+
1261
+ * README.rdoc, ext/pg_connection.c, ext/pg_result.c,
1262
+ spec/pg/connection_spec.rb:
1263
+ Allow connection wide assignment of type_mapping.
1264
+ [ecd58ff267b1]
1265
+
1266
+ * ext/pg_type.c:
1267
+ Add missing string termination to array conversion.
1268
+ [f2dcc3692737]
1269
+
1270
+ * ext/pg_type.c, spec/pg/array_parser_spec.rb,
1271
+ spec/pg/column_mapping_spec.rb:
1272
+ Add array type conversions.
1273
+ [e667a761e93b]
1274
+
1275
+ * ext/pg_type.c, spec/pg/type_spec.rb:
1276
+ Allow Type.decode to be called without tuple and field args.
1277
+ [e6089af0d283]
1278
+
1279
+ * lib/pg.rb, lib/pg/basic_type_mapping.rb, lib/pg/type_mapping.rb:
1280
+ Rename file so that it matches the class name.
1281
+ [95a4b6841516]
1282
+
1283
+ 2014-02-13 Lars Kanis <lars@greiz-reinsdorf.de>
1284
+
1285
+ * .travis.yml:
1286
+ Update travis config.
1287
+ [8082f9d17c76]
1288
+
1289
+ * README.rdoc, lib/pg/result.rb:
1290
+ Tweak documentation.
1291
+ [c5e439d9ee9d]
1292
+
1293
+ * spec/pg/column_mapping_spec.rb:
1294
+ Fix test for time input type cast.
1295
+ [a217e1a4d4ac]
1296
+
1297
+ * spec/pg/connection_spec.rb:
1298
+ Do raise test per plpgsql on PostgreSQL-9.2+ only.
1299
+ [99301f365b41]
1300
+
1301
+ 2014-02-13 Lars Kanis <kanis@comcard.de>
1302
+
1303
+ * spec/pg/connection_spec.rb:
1304
+ Restrict raise test with plpgsql to PostgreSQL-9.0+
1305
+ [62ad91254117]
1306
+
1307
+ 2014-02-12 Lars Kanis <lars@greiz-reinsdorf.de>
1308
+
1309
+ * lib/pg/type_mapping.rb:
1310
+ Add missing type_mapping.rb
1311
+ [33238fce4d0b]
1312
+
1313
+ * README.rdoc, ext/pg_connection.c, ext/pg_result.c, lib/pg.rb,
1314
+ lib/pg/column_mapping.rb, lib/pg/result.rb, lib/pg/type.rb,
1315
+ spec/pg/column_mapping_spec.rb, spec/pg/connection_spec.rb,
1316
+ spec/pg/result_spec.rb:
1317
+ Implement BasicTypeMapping as a replacement to the Hash based
1318
+ DEFAULT_OID/DEFAULT_TYPE mechanism.
1319
+ [08fe2daeda55]
1320
+
1321
+ 2014-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
1322
+
1323
+ * README.rdoc:
1324
+ Add description of the type cast architecture.
1325
+ [e57f8662f564]
1326
+
1327
+ 2014-01-06 Lars Kanis <lars@greiz-reinsdorf.de>
1328
+
1329
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
1330
+ Ensure all memory is free'd in case of exceptions in
1331
+ alloc_query_params()
1332
+ [efb0fdf2af3d]
1333
+
1334
+ 2014-01-01 Lars Kanis <lars@greiz-reinsdorf.de>
1335
+
1336
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1337
+ ext/pg_type.c, lib/pg.rb, lib/pg/column_mapping.rb,
1338
+ lib/pg/result.rb, lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
1339
+ spec/pg/result_spec.rb:
1340
+ Add optional type casting to input parameters
1341
+
1342
+ Refactor decoding code
1343
+ [19491546392d]
1344
+
1345
+ 2013-12-28 Lars Kanis <lars@greiz-reinsdorf.de>
1346
+
1347
+ * ext/pg_connection.c:
1348
+ Refactor processing of query params, which was almost equal for
1349
+ exec_params, exec_prepared, send_query and send_query_prepared.
1350
+ [a3b5e9405825]
1351
+
1352
+ 2013-12-23 Lars Kanis <lars@greiz-reinsdorf.de>
1353
+
1354
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/type.rb,
1355
+ spec/pg/column_mapping_spec.rb, spec/pg/type_spec.rb:
1356
+ Detach type decoders from Result, so that they could be used with
1357
+ COPY.
1358
+
1359
+ Change type encoders to a two pass mechanism, which could also be
1360
+ used with COPY.
1361
+ [40e8c382c3ad]
1362
+
1363
+ 2013-12-21 Lars Kanis <lars@greiz-reinsdorf.de>
1364
+
1365
+ * ext/pg_column_mapping.c, ext/pg_type.c:
1366
+ Always map NULL values to Qnil.
1367
+
1368
+ This removes duplicated code from type converters and will speedup
1369
+ converters implemented in ruby.
1370
+ [af270f5e3ddf]
1371
+
1372
+ 2013-12-13 Lars Kanis <lars@greiz-reinsdorf.de>
1373
+
1374
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/result.rb,
1375
+ lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
1376
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
1377
+ more WIP: Add bidirectional type mapping
1378
+ [1ea69ac572c0]
1379
+
1380
+ 2013-12-09 Lars Kanis <lars@greiz-reinsdorf.de>
1381
+
1382
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_column_mapping.c,
1383
+ ext/pg_result.c, ext/pg_type.c, lib/pg.rb, lib/pg/result.rb,
1384
+ lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
1385
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
1386
+ WIP: Add bidiractional type mapping
1387
+ [a89d4991f444]
1388
+
1389
+ 2013-12-07 Lars Kanis <lars@greiz-reinsdorf.de>
1390
+
1391
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
1392
+ Add a (quite incomplete) default mapping of OIDs to PG::Result and
1393
+ allow distinct mappings for text and binary formats to
1394
+ Result#map_types! .
1395
+
1396
+ Add documentation to Result#map_types! .
1397
+ [d137dfe12905]
1398
+
1399
+ 2013-07-19 Lars Kanis <kanis@comcard.de>
1400
+
1401
+ * spec/pg/column_mapping_spec.rb:
1402
+ Too less quoting. Should fix compat with PostgreSQL 8.4.
1403
+ [f502d245ea55]
1404
+
1405
+ 2013-07-18 Lars Kanis <kanis@comcard.de>
1406
+
1407
+ * Manifest.txt:
1408
+ Add missing files to Manifest.txt.
1409
+ [b5c94ff41d4e]
1410
+
1411
+ * Manifest.txt, ext/pg_column_mapping.c, ext/util.c, ext/util.h:
1412
+ Add compat with Windows platform.
1413
+ [5780ddc9c111]
1414
+
1415
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1416
+ Add compat with Ruby-1.8.7.
1417
+ [ab892e597042]
1418
+
1419
+ * spec/pg/column_mapping_spec.rb:
1420
+ Use old BYTEA escaping for compat with PostgreSQL 8.4
1421
+ [aa7b76abda66]
1422
+
1423
+ 2013-07-04 Lars Kanis <lars@greiz-reinsdorf.de>
1424
+
1425
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1426
+ Add BinaryBolean converter.
1427
+
1428
+ Refactor converter tests.
1429
+ [7f70efce09f0]
1430
+
1431
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1432
+ Add BinaryFloat converter.
1433
+ [57942116c746]
1434
+
1435
+ 2013-07-03 Lars Kanis <lars@greiz-reinsdorf.de>
1436
+
1437
+ * ext/pg_column_mapping.c, lib/pg/result.rb,
1438
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb:
1439
+ Change ColumnMapping#initialize to take one Array arg rather than a
1440
+ parameter list.
1441
+
1442
+ Suggested by Aaron: https://groups.google.com/d/msg/ruby-
1443
+ pg/PE5K6q9RzBs/M5prOno39DEJ
1444
+ [2606fc4f350e]
1445
+
1446
+ * spec/pg/result_spec.rb:
1447
+ Add test case for all value retrieving methods of PG::Result .
1448
+ [970d02cee164]
1449
+
1450
+ * spec/pg/column_mapping_spec.rb:
1451
+ Add test case for default_mapping in Result#map_types!
1452
+ [dbcf59dcc118]
1453
+
1454
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
1455
+ Add convenience method PG::Result#map_types!
1456
+ [3e900bc457e8]
1457
+
1458
+ * spec/pg/column_mapping_spec.rb:
1459
+ Add Boolean ColumnMapping spec and do Integer a bit more compact.
1460
+ [34f6e4b23fae]
1461
+
1462
+ 2013-07-01 Lars Kanis <kanis@comcard.de>
1463
+
1464
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1465
+ Add converter BinaryInteger.
1466
+ [6ccf466e1537]
1467
+
1468
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb,
1469
+ spec/pg/result_spec.rb:
1470
+ Use instances of PG::ColumnMapping::CConverter as representation of
1471
+ the buildin converters instead of plain symbols. Symbol arguments
1472
+ are converted to these instances, for convenience.
1473
+
1474
+ This allows to store and retrieve additional informations to the
1475
+ conversion and also which conversions are supported.
1476
+ [ccf7ec4cd083]
1477
+
1478
+ * ext/pg_column_mapping.c:
1479
+ Don't depend on TYPE(obj)==T_DATA of a proc object for compat with
1480
+ rubinius.
1481
+ [f4f6f25434dd]
1482
+
1483
+ 2013-06-29 Lars Kanis <lars@greiz-reinsdorf.de>
1484
+
1485
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_result.c,
1486
+ spec/pg/result_spec.rb:
1487
+ Add column based type mapping.
1488
+
1489
+ This allowes to speed up result retrieval by directly converting
1490
+ integer and float values to proper ruby types.
1491
+ [71ddc0446d26]
1492
+
1493
+ 2014-08-24 Lars Kanis <lars@greiz-reinsdorf.de>
1494
+
1495
+ * ext/pg_connection.c:
1496
+ Change all remaining Oid <-> VALUE conversions to UINT.
1497
+ [bae3928a7b09]
1498
+
1499
+ * .travis.yml:
1500
+ 'gem install rake-compiler' is still needed for cross build.
1501
+ [591c4b0f2d69]
1502
+
1503
+ * lib/pg/connection.rb, spec/pg/connection_spec.rb:
1504
+ Add Connection.conndefaults_hash and add specs for conndefault
1505
+ variants.
1506
+ [2221655210da]
1507
+
1508
+ * .travis.yml:
1509
+ Travis uses the Gemfile, so 'gem install' is obsolete.
1510
+ [4feb9bc05f2f]
1511
+
1512
+ 2014-08-23 Lars Kanis <lars@greiz-reinsdorf.de>
1513
+
1514
+ * .travis.yml, Rakefile.cross:
1515
+ Fix cross build for mingw32.
1516
+ [f97f4b2cf0c9]
1517
+
1518
+ * Rakefile.cross:
1519
+ Update postgresql and openssl versions for windows cross build.
1520
+ [f34546022095]
1521
+
1522
+ * .travis.yml:
1523
+ Fix travis build
1524
+ [daf56926b7d6]
1525
+
1526
+ * .travis.yml:
1527
+ Update travis test environment
1528
+ [cdb7c193ba29]
1529
+
1530
+ 2014-08-22 Lars Kanis <lars@greiz-reinsdorf.de>
1531
+
1532
+ * Gemfile:
1533
+ Update Gemfile
1534
+ [a044c5419ff7]
1535
+
1536
+ * ext/extconf.rb, ext/pg_connection.c, lib/pg/connection.rb,
1537
+ spec/pg/connection_spec.rb:
1538
+ Test for PQconninfo availability and exclude conninfo and
1539
+ conninfo_hash otherwise.
1540
+ [f2692d108f46]
1541
+
1542
+ 2014-08-20 Michael Granger <ged@FaerieMUD.org>
1543
+
1544
+ * ext/pg_connection.c, lib/pg/connection.rb,
1545
+ spec/pg/connection_spec.rb:
1546
+ Implement PG::Connection#conninfo and use it to test #188
1547
+ [affbd590e74e]
1548
+
1549
+ 2014-07-23 Mina Naguib <mina.github@naguib.ca>
1550
+
1551
+ * ext/pg_result.c:
1552
+ Fix some type mismatches for Oid return values.
1553
+
1554
+ Thanks to Mina Naguib for the fix.
1555
+ [738d4c4125a1]
1556
+
1557
+ 2014-07-23 Michael Granger <ged@FaerieMUD.org>
1558
+
1559
+ * Manifest.txt:
1560
+ Fix the path to spec helpers in the manifest
1561
+ [b3f9e94a258c]
1562
+
1563
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
1564
+
1565
+ * Merge with 6c2444dc63e1
1566
+ [d7160a9fb5dc]
1567
+
1568
+ * .rvm.gems, Rakefile, spec/helpers.rb, spec/lib/helpers.rb,
1569
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb, spec/pg_spec.rb:
1570
+ Convert specs to expect syntax for RSpec 3
1571
+ [c9108c846ab2]
1572
+
1573
+ 2013-12-30 Lars Kanis <lars@greiz-reinsdorf.de>
1574
+
1575
+ * ext/pg_connection.c:
1576
+ Fix typo in documentation.
1577
+ [6c2444dc63e1]
1578
+
1579
+ 2013-12-18 Michael Granger <ged@FaerieMUD.org>
1580
+
1581
+ * .hgtags:
1582
+ Added tag v0.17.1 for changeset 78846e47d87b
1583
+ [a5ab7f06aa1d]
1584
+
1585
+ * .hgsigs:
1586
+ Added signature for changeset 22d57e3a2b37
1587
+ [78846e47d87b] [v0.17.1]
1588
+
1589
+ * History.rdoc, lib/pg.rb:
1590
+ Bump the patch version, set the date in History.
1591
+ [22d57e3a2b37]
1592
+
1593
+ 2013-12-17 Lars Kanis <kanis@comcard.de>
1594
+
1595
+ * History.rdoc:
1596
+ Update History file
1597
+ [ebd0e140f78d]
1598
+
1599
+ 2013-12-16 larskanis <lars@greiz-reinsdorf.de>
1600
+
1601
+ * Close branch revert_query_cancel_on_ubf
1602
+ [cddad8917d19] <revert_query_cancel_on_ubf>
1603
+
1604
+ * Merged in larskanis/ruby-pg/revert_query_cancel_on_ubf (pull request
1605
+ #18)
1606
+
1607
+ Revert commit e0492d4 "Ensure a query is canceled, if a thread is
1608
+ about to be killed."
1609
+ [93a8aedecd05]
1610
+
1
1611
  2013-12-09 Lars Kanis <kanis@comcard.de>
2
1612
 
1613
+ * spec/pg/connection_spec.rb:
1614
+ Add test case for compatibility with signal handlers. See 97c3ec2.
1615
+ [1e974a370012] <revert_query_cancel_on_ubf>
1616
+
3
1617
  * ext/gvl_wrappers.c, ext/gvl_wrappers.h, ext/pg_connection.c,
4
1618
  spec/pg/connection_spec.rb:
5
1619
  Revert commit e0492d4 "Ensure a query is canceled, if a thread is
@@ -21,7 +1635,7 @@
21
1635
  queries by signals like Control+C.
22
1636
 
23
1637
  Thanks to Sam Saffron for highlighting this issue.
24
- [97c3ec224be9] [tip] <revert_query_cancel_on_ubf>
1638
+ [97c3ec224be9] <revert_query_cancel_on_ubf>
25
1639
 
26
1640
  2013-09-23 Michael Granger <ged@FaerieMUD.org>
27
1641
 
@@ -116,15 +1730,6 @@
116
1730
  * merge tip
117
1731
  [90252df3c5c8]
118
1732
 
119
- * lib/pg/connection.rb, spec/pg/connection_spec.rb:
120
- Add PG::Connection#copy_data as a convenience method.
121
- [5096385267ab]
122
-
123
- * ext/pg_result.c:
124
- Return self from PG::Result#check instead of nil. This allowes to
125
- stack method calls.
126
- [8255d4f73334]
127
-
128
1733
  2013-08-15 Lars Kanis <lars@greiz-reinsdorf.de>
129
1734
 
130
1735
  * Rakefile.cross:
@@ -134,6 +1739,17 @@
134
1739
  This is 'i586-mingw32msvc-gcc' versus 'i586-pc-mingw32msvc'.
135
1740
  [fbee9586e8f7]
136
1741
 
1742
+ 2013-08-18 Lars Kanis <lars@greiz-reinsdorf.de>
1743
+
1744
+ * lib/pg/connection.rb, spec/pg/connection_spec.rb:
1745
+ Add PG::Connection#copy_data as a convenience method.
1746
+ [5096385267ab]
1747
+
1748
+ * ext/pg_result.c:
1749
+ Return self from PG::Result#check instead of nil. This allowes to
1750
+ stack method calls.
1751
+ [8255d4f73334]
1752
+
137
1753
  2013-08-14 Lars Kanis <lars@greiz-reinsdorf.de>
138
1754
 
139
1755
  * Gemfile, Rakefile:
@@ -175,6 +1791,10 @@
175
1791
  Travis: Allow failures on rbx.
176
1792
  [7be3b156c8fb]
177
1793
 
1794
+ * spec/pg/column_mapping_spec.rb:
1795
+ Too less quoting. Should fix compat with PostgreSQL 8.4.
1796
+ [45fc78971757]
1797
+
178
1798
  2013-07-18 Lars Kanis <kanis@comcard.de>
179
1799
 
180
1800
  * spec/pg/connection_spec.rb:
@@ -210,6 +1830,92 @@
210
1830
  This test failed on Windows x64.
211
1831
  [6894f73d7039]
212
1832
 
1833
+ * Manifest.txt:
1834
+ Add missing files to Manifest.txt.
1835
+ [3b4bc9524bb3]
1836
+
1837
+ * Manifest.txt, ext/pg_column_mapping.c, ext/util.c, ext/util.h:
1838
+ Add compat with Windows platform.
1839
+ [3ac02d0ccf19]
1840
+
1841
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1842
+ Add compat with Ruby-1.8.7.
1843
+ [7bcb3040fe34]
1844
+
1845
+ * spec/pg/column_mapping_spec.rb:
1846
+ Use old BYTEA escaping for compat with PostgreSQL 8.4
1847
+ [2fad9e274ad3]
1848
+
1849
+ 2013-07-04 Lars Kanis <lars@greiz-reinsdorf.de>
1850
+
1851
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1852
+ Add BinaryBolean converter.
1853
+
1854
+ Refactor converter tests.
1855
+ [06c99b04f572]
1856
+
1857
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1858
+ Add BinaryFloat converter.
1859
+ [493b0354c678]
1860
+
1861
+ 2013-07-03 Lars Kanis <lars@greiz-reinsdorf.de>
1862
+
1863
+ * ext/pg_column_mapping.c, lib/pg/result.rb,
1864
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb:
1865
+ Change ColumnMapping#initialize to take one Array arg rather than a
1866
+ parameter list.
1867
+
1868
+ Suggested by Aaron: https://groups.google.com/d/msg/ruby-
1869
+ pg/PE5K6q9RzBs/M5prOno39DEJ
1870
+ [c2ca10bf93c5]
1871
+
1872
+ * spec/pg/result_spec.rb:
1873
+ Add test case for all value retrieving methods of PG::Result .
1874
+ [e1055f877c58]
1875
+
1876
+ * spec/pg/column_mapping_spec.rb:
1877
+ Add test case for default_mapping in Result#map_types!
1878
+ [489220119795]
1879
+
1880
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
1881
+ Add convenience method PG::Result#map_types!
1882
+ [de02df7fb198]
1883
+
1884
+ * spec/pg/column_mapping_spec.rb:
1885
+ Add Boolean ColumnMapping spec and do Integer a bit more compact.
1886
+ [4256841e088f]
1887
+
1888
+ 2013-07-01 Lars Kanis <kanis@comcard.de>
1889
+
1890
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1891
+ Add converter BinaryInteger.
1892
+ [6f0c8f72962f]
1893
+
1894
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb,
1895
+ spec/pg/result_spec.rb:
1896
+ Use instances of PG::ColumnMapping::CConverter as representation of
1897
+ the buildin converters instead of plain symbols. Symbol arguments
1898
+ are converted to these instances, for convenience.
1899
+
1900
+ This allows to store and retrieve additional informations to the
1901
+ conversion and also which conversions are supported.
1902
+ [e4f6c37b5449]
1903
+
1904
+ * ext/pg_column_mapping.c:
1905
+ Don't depend on TYPE(obj)==T_DATA of a proc object for compat with
1906
+ rubinius.
1907
+ [c33c4ac01aaf]
1908
+
1909
+ 2013-06-29 Lars Kanis <lars@greiz-reinsdorf.de>
1910
+
1911
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_result.c,
1912
+ spec/pg/result_spec.rb:
1913
+ Add column based type mapping.
1914
+
1915
+ This allowes to speed up result retrieval by directly converting
1916
+ integer and float values to proper ruby types.
1917
+ [160c71c0b584]
1918
+
213
1919
  2013-07-06 Lars Kanis <lars@greiz-reinsdorf.de>
214
1920
 
215
1921
  * ext/pg_connection.c, spec/pg/connection_spec.rb:
@@ -240,8 +1946,8 @@
240
1946
  Add new error class 'ConnectionBad' that is raised if the connection
241
1947
 
242
1948
  From 9d0acad61a693b9042842883fa8195ba973bf813 Mon Sep 17 00:00:00
243
- 2001 could not be established. Use 'UnableToSend' error in case
244
- that sending fails with async methods.
1949
+ 2001 could not be established. Use 'UnableToSend' error in case that
1950
+ sending fails with async methods.
245
1951
  [b09cf9da723e]
246
1952
 
247
1953
  * ext/gvl_wrappers.h, ext/pg_connection.c, spec/pg/connection_spec.rb:
@@ -495,14 +2201,14 @@
495
2201
  avoid warnings about truncated identifier.
496
2202
 
497
2203
  Thanks to Svoop for this report.
498
- [134e067259ee] <v0.15-stable>
2204
+ [9a6791fe9409]
499
2205
 
500
2206
  * lib/pg/connection.rb, spec/pg/connection_spec.rb:
501
2207
  Send a shortened $0 as application_name to the server in order to
502
2208
  avoid warnings about truncated identifier.
503
2209
 
504
2210
  Thanks to Svoop for this report.
505
- [9a6791fe9409]
2211
+ [134e067259ee] <v0.15-stable>
506
2212
 
507
2213
  2013-03-26 Michael Granger <ged@FaerieMUD.org>
508
2214
 
@@ -590,17 +2296,6 @@
590
2296
  Merge with https://bitbucket.org/ged/ruby-pg
591
2297
  [3230e6c245e0]
592
2298
 
593
- * Rakefile, Rakefile.cross:
594
- Add support for cross build for multiple platforms (i386-mingw32 and
595
- x64-mingw32).
596
-
597
- Update OpenSSL for cross build to 1.0.1e Update PostgreSQL for cross
598
- build to 9.2.3
599
-
600
- Remove -lws2_32 for PostgreSQL build. It fails to compile for
601
- x64-mingw32 elsewise.
602
- [6a2a1a53dedc]
603
-
604
2299
  2013-03-12 Michael Granger <ged@FaerieMUD.org>
605
2300
 
606
2301
  * Rakefile.cross:
@@ -615,6 +2310,19 @@
615
2310
  Bump versions of dev dependencies
616
2311
  [cba92fb4b89e]
617
2312
 
2313
+ 2013-03-13 Lars Kanis <kanis@comcard.de>
2314
+
2315
+ * Rakefile, Rakefile.cross:
2316
+ Add support for cross build for multiple platforms (i386-mingw32 and
2317
+ x64-mingw32).
2318
+
2319
+ Update OpenSSL for cross build to 1.0.1e Update PostgreSQL for cross
2320
+ build to 9.2.3
2321
+
2322
+ Remove -lws2_32 for PostgreSQL build. It fails to compile for
2323
+ x64-mingw32 elsewise.
2324
+ [6a2a1a53dedc]
2325
+
618
2326
  2013-03-06 Michael Granger <ged@FaerieMUD.org>
619
2327
 
620
2328
  * README.rdoc:
@@ -866,61 +2574,6 @@
866
2574
  Make source settings override TM2 defaults
867
2575
  [c5706b3f73af]
868
2576
 
869
- 2012-12-26 Lars Kanis <kanis@comcard.de>
870
-
871
- * ext/extconf.rb, ext/pg_connection.c, spec/pg/connection_spec.rb:
872
- merge in default branch
873
- [ca39e311d1eb] <use_gvl_for_blocking_functions>
874
-
875
- * ext/gvl_wrappers.h:
876
- Add some documentation to gvl_wrappers
877
- [ffeb6a0afd1f] <use_gvl_for_blocking_functions>
878
-
879
- * spec/pg/connection_spec.rb:
880
- Add test case for threading with Connection#exec in ruby 1.9
881
- [73b9aa38e8c0] <use_gvl_for_blocking_functions>
882
-
883
- * ext/extconf.rb, ext/gvl_wrappers.c, ext/gvl_wrappers.h, ext/pg.h,
884
- ext/pg_connection.c:
885
- Add wrappers to blocking functions and callbacks in order to release
886
- the GVL of ruby 1.9 as long as not in ruby code
887
- [2f2c681424ed] <use_gvl_for_blocking_functions>
888
-
889
- 2012-07-02 Lars Kanis <kanis@comcard.de>
890
-
891
- * ext/pg_connection.c, spec/pg/connection_spec.rb:
892
- Fix encoding of values delivered to the row processor and add specs
893
- for binary and text data.
894
- [bb9c6625fbc9] <row_processor>
895
-
896
- * ext/pg_connection.c:
897
- Polish the documentation a little bit
898
- [b7633be3c941] <row_processor>
899
-
900
- 2012-07-01 Lars Kanis <kanis@comcard.de>
901
-
902
- * ext/pg_connection.c:
903
- Get rid of gcc warning about (non-)const PGresult to
904
- pg_new_result_for_callback()
905
- [1a25786ed8f3] <row_processor>
906
-
907
- * ext/pg_connection.c, spec/pg/connection_spec.rb:
908
- Fix wrong encoding for Result object passed to a notice-receiver
909
- block. Add proper specs for #set_notice_receiver.
910
- [4280826bb9b9] <row_processor>
911
-
912
- * ext/extconf.rb, ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
913
- spec/lib/helpers.rb, spec/pg/connection_spec.rb:
914
- Implement PostgreSQL-9.2 functions PG::Connection#set_row_processor,
915
- get_row_processor, skip_result
916
- [b7ce4843f4d1] <row_processor>
917
-
918
- 2012-06-28 Lars Kanis <kanis@comcard.de>
919
-
920
- * ext/pg_result.c:
921
- Add PGRES_COPY_BOTH to documentation of PG::Result#result_status
922
- [63998b47da6e] <copy_both_docu>
923
-
924
2577
  2013-01-29 Aaron Patterson <aaron.patterson@gmail.com>
925
2578
 
926
2579
  * ext/pg_result.c, lib/pg/result.rb, spec/pg/result_spec.rb:
@@ -949,8 +2602,22 @@
949
2602
  Fix encoding of messages delivered by notice callbacks
950
2603
  [048d07d14867]
951
2604
 
2605
+ 2012-12-29 Lars Kanis <kanis@comcard.de>
2606
+
2607
+ * ext/gvl_wrappers.h:
2608
+ Simplify function declaration for gvl_wrappers a bit more
2609
+ [39ba7e52207e] <use_gvl_for_blocking_functions>
2610
+
952
2611
  2012-12-26 Lars Kanis <kanis@comcard.de>
953
2612
 
2613
+ * ext/extconf.rb, ext/pg_connection.c, spec/pg/connection_spec.rb:
2614
+ merge in default branch
2615
+ [ca39e311d1eb] <use_gvl_for_blocking_functions>
2616
+
2617
+ * ext/gvl_wrappers.h:
2618
+ Add some documentation to gvl_wrappers
2619
+ [ffeb6a0afd1f] <use_gvl_for_blocking_functions>
2620
+
954
2621
  * ext/pg.c:
955
2622
  Use proper const check instead of implicit relation
956
2623
  [d0c5d5f7f1e8]
@@ -970,12 +2637,23 @@
970
2637
  single row mode of PostgreSQL 9.2)
971
2638
  [49e3fe1dafdf]
972
2639
 
973
- 2012-12-19 Lars Kanis <kanis@comcard.de>
2640
+ 2012-12-26 Lars Kanis <kanis@comcard.de>
974
2641
 
975
- * ext/extconf.rb, ext/pg.c, ext/pg_connection.c,
976
- spec/pg/connection_spec.rb:
977
- Add single row mode of PostgreSQL 9.2
978
- [5cf348b75c1c] <single_row_mode>
2642
+ * spec/pg/connection_spec.rb:
2643
+ Add test case for threading with Connection#exec in ruby 1.9
2644
+ [73b9aa38e8c0] <use_gvl_for_blocking_functions>
2645
+
2646
+ * ext/extconf.rb, ext/gvl_wrappers.c, ext/gvl_wrappers.h, ext/pg.h,
2647
+ ext/pg_connection.c:
2648
+ Add wrappers to blocking functions and callbacks in order to release
2649
+ the GVL of ruby 1.9 as long as not in ruby code
2650
+ [2f2c681424ed] <use_gvl_for_blocking_functions>
2651
+
2652
+ * ext/extconf.rb, ext/gvl_wrappers.c, ext/gvl_wrappers.h, ext/pg.h,
2653
+ ext/pg_connection.c:
2654
+ Add wrappers to blocking functions and callbacks in order to release
2655
+ the GVL of ruby 1.9 as long as not in ruby code
2656
+ [6ad8aa8e10a5] <use_gvl_for_blocking_functions>
979
2657
 
980
2658
  2012-12-19 Michael Granger <ged@FaerieMUD.org>
981
2659
 
@@ -999,6 +2677,14 @@
999
2677
  fix spacing on README.rdoc:21 to improve display on Github
1000
2678
  [807f040166da]
1001
2679
 
2680
+ 2012-12-26 Lars Kanis <kanis@comcard.de>
2681
+
2682
+ * ext/extconf.rb, ext/gvl_wrappers.c, ext/gvl_wrappers.h, ext/pg.h,
2683
+ ext/pg_connection.c:
2684
+ Add wrappers to blocking functions and callbacks in order to release
2685
+ the GVL of ruby 1.9 while not in ruby code
2686
+ [c31ea26b15e9] <use_gvl_for_blocking_functions>
2687
+
1002
2688
  2012-12-19 Lars Kanis <kanis@comcard.de>
1003
2689
 
1004
2690
  * spec/pg/connection_spec.rb:
@@ -1015,6 +2701,11 @@
1015
2701
  Add spec for PG::Result#field_values
1016
2702
  [3618eb238aba]
1017
2703
 
2704
+ * ext/extconf.rb, ext/pg.c, ext/pg_connection.c,
2705
+ spec/pg/connection_spec.rb:
2706
+ Add single row mode of PostgreSQL 9.2
2707
+ [5cf348b75c1c] <single_row_mode>
2708
+
1018
2709
  * lib/pg/connection.rb, spec/lib/helpers.rb:
1019
2710
  Restore compatibility with PostgreSQL down to 8.3
1020
2711
  [e4900f62e56d]
@@ -1089,8 +2780,8 @@
1089
2780
  From 10cdc23ac4e3cfc91488f3f8a7a44f3275c9fe0a Mon Sep 17 00:00:00
1090
2781
  2001 This is used for the new single row mode introduced in
1091
2782
  9.2beta3, and indicates a successful result when using that mode.
1092
- --- ext/extconf.rb | 1 + ext/pg_result.c | 3 +++ 2 files
1093
- changed, 4 insertions(+), 0 deletions(-)
2783
+ --- ext/extconf.rb | 1 + ext/pg_result.c | 3 +++ 2 files changed, 4
2784
+ insertions(+), 0 deletions(-)
1094
2785
  [f92b6456c566]
1095
2786
 
1096
2787
  2012-08-10 Michael Granger <ged@FaerieMUD.org>
@@ -1136,6 +2827,15 @@
1136
2827
  Add PGRES_COPY_BOTH to documentation of PG::Result#result_status
1137
2828
  [5e0e06440b1a]
1138
2829
 
2830
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
2831
+ Fix encoding of values delivered to the row processor and add specs
2832
+ for binary and text data.
2833
+ [bb9c6625fbc9] <row_processor>
2834
+
2835
+ * ext/pg_connection.c:
2836
+ Polish the documentation a little bit
2837
+ [b7633be3c941] <row_processor>
2838
+
1139
2839
  2012-06-23 Michael Granger <ged@FaerieMUD.org>
1140
2840
 
1141
2841
  * .hgtags:
@@ -1146,6 +2846,33 @@
1146
2846
  Added signature for changeset a45710f8db30
1147
2847
  [634e0a42a101] [v0.14.0]
1148
2848
 
2849
+ 2012-07-01 Lars Kanis <kanis@comcard.de>
2850
+
2851
+ * merge copy_both_docu
2852
+ [6e8ef5d4d216]
2853
+
2854
+ * ext/pg_connection.c:
2855
+ Get rid of gcc warning about (non-)const PGresult to
2856
+ pg_new_result_for_callback()
2857
+ [1a25786ed8f3] <row_processor>
2858
+
2859
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
2860
+ Fix wrong encoding for Result object passed to a notice-receiver
2861
+ block. Add proper specs for #set_notice_receiver.
2862
+ [4280826bb9b9] <row_processor>
2863
+
2864
+ * ext/extconf.rb, ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
2865
+ spec/lib/helpers.rb, spec/pg/connection_spec.rb:
2866
+ Implement PostgreSQL-9.2 functions PG::Connection#set_row_processor,
2867
+ get_row_processor, skip_result
2868
+ [b7ce4843f4d1] <row_processor>
2869
+
2870
+ 2012-06-28 Lars Kanis <kanis@comcard.de>
2871
+
2872
+ * ext/pg_result.c:
2873
+ Add PGRES_COPY_BOTH to documentation of PG::Result#result_status
2874
+ [63998b47da6e] <copy_both_docu>
2875
+
1149
2876
  2012-06-17 Lars Kanis <kanis@comcard.de>
1150
2877
 
1151
2878
  * Rakefile.cross, ext/extconf.rb,
@@ -1202,9 +2929,9 @@
1202
2929
  2012-06-12 Mahlon E. Smith <mahlon@laika.com>
1203
2930
 
1204
2931
  * sample/warehouse_partitions.rb:
1205
- Move indexes across tablespaces along with their parents. Remove
1206
- the 'parent table' option, as we can derive that automatically from
1207
- the pg_inherits table.
2932
+ Move indexes across tablespaces along with their parents. Remove the
2933
+ 'parent table' option, as we can derive that automatically from the
2934
+ pg_inherits table.
1208
2935
  [be46f44349bf]
1209
2936
 
1210
2937
  2012-05-07 Michael Granger <ged@FaerieMUD.org>
@@ -1241,31 +2968,28 @@
1241
2968
 
1242
2969
  - disk_usage_report
1243
2970
 
1244
- Quick reporting on the heaviest disk consumers for a
1245
- database. Nice for cronned/email reporting.
2971
+ Quick reporting on the heaviest disk consumers for a database. Nice
2972
+ for cronned/email reporting.
1246
2973
 
1247
2974
  - pg_statistics
1248
2975
 
1249
- Continuous polled statistics for a database.
1250
- Suitable for graphing with gnuplot (example
1251
- included.)
2976
+ Continuous polled statistics for a database. Suitable for graphing
2977
+ with gnuplot (example included.)
1252
2978
 
1253
2979
  - replication_monitor
1254
2980
 
1255
- A command-line monitor for slave replication lag.
1256
- Works for both streaming replication and WAL
1257
- shipping. You should be able to use it as a base to
1258
- plug into your preferred monitoring system.
2981
+ A command-line monitor for slave replication lag. Works for both
2982
+ streaming replication and WAL shipping. You should be able to use it
2983
+ as a base to plug into your preferred monitoring system.
1259
2984
 
1260
2985
  - wal_shipper
1261
2986
 
1262
- A smart WAL file transfer script, similar to
1263
- PITRTools.
2987
+ A smart WAL file transfer script, similar to PITRTools.
1264
2988
 
1265
2989
  - warehouse_partitions
1266
2990
 
1267
- An automated tablespace migrator for older, date-
1268
- based partitioned tables.
2991
+ An automated tablespace migrator for older, date- based partitioned
2992
+ tables.
1269
2993
  [36ca5b412583]
1270
2994
 
1271
2995
  2012-04-02 Michael Granger <ged@FaerieMUD.org>
@@ -2408,10 +4132,9 @@
2408
4132
  * Removed the type OID constants from PGresult; I was including them
2409
4133
  so they could be used for comparison with PGresult#ftype return
2410
4134
  values. RhodiumToad on #postgresql@freenode showed me the
2411
- format_type() SQL function, so I added an example of how to get
2412
- the same information via that function instead, which is
2413
- guaranteed to be correct even if src/include/catalog/pg_type.h
2414
- changes.
4135
+ format_type() SQL function, so I added an example of how to get the
4136
+ same information via that function instead, which is guaranteed to
4137
+ be correct even if src/include/catalog/pg_type.h changes.
2415
4138
  [739cec560448]
2416
4139
 
2417
4140
  * README.windows, Rakefile.local, ext/extconf.rb:
@@ -2619,8 +4342,8 @@
2619
4342
  * ext/pg.c, spec/m17n_spec.rb, spec/pgconn_spec.rb,
2620
4343
  spec/pgresult_spec.rb:
2621
4344
  * Use pg_ctl -w instead of sleep for specs
2622
- * Fix up the specs to use #external_encoding, #internal_encoding,
2623
- and #internal_encoding=
4345
+ * Fix up the specs to use #external_encoding, #internal_encoding, and
4346
+ #internal_encoding=
2624
4347
  * Added a pending spec for Johab (I can't figure out how to return
2625
4348
  JOHAB-encoded results from Postgres)
2626
4349
  [d67c62945540] <i17n-19-patches>
@@ -2714,8 +4437,7 @@
2714
4437
  [c33a73c14126]
2715
4438
 
2716
4439
  * spec/pgconn_spec.rb:
2717
- Ripple port change through text. Always full path to open spec
2718
- file.
4440
+ Ripple port change through text. Always full path to open spec file.
2719
4441
  [241d3410b875]
2720
4442
 
2721
4443
  * spec/pgconn_spec.rb:
@@ -2772,27 +4494,26 @@
2772
4494
  ........ r169 | jdavis | 2008-08-20 19:48:10 -0700 (Wed, 20 Aug
2773
4495
  2008) | 6 lines
2774
4496
 
2775
- Fixed option connection argument in the case of using 7
2776
- arguments.
4497
+ Fixed option connection argument in the case of using 7 arguments.
2777
4498
 
2778
- Thanks Erik Hollensbe (erikh) for the bug report. ........ r170
2779
- | jdavis | 2008-10-05 11:01:40 -0700 (Sun, 05 Oct 2008) | 4 lines
4499
+ Thanks Erik Hollensbe (erikh) for the bug report. ........ r170 |
4500
+ jdavis | 2008-10-05 11:01:40 -0700 (Sun, 05 Oct 2008) | 4 lines
2780
4501
 
2781
- Throw correct exception when result is NULL. ........ r171 |
2782
- jdavis | 2008-10-05 11:47:01 -0700 (Sun, 05 Oct 2008) | 12 lines
4502
+ Throw correct exception when result is NULL. ........ r171 | jdavis
4503
+ | 2008-10-05 11:47:01 -0700 (Sun, 05 Oct 2008) | 12 lines
2783
4504
 
2784
4505
  Fix PGconn#async_exec and PGconn#get_last_result to properly clear
2785
4506
  all results when an exception is raised. Before, the connection
2786
4507
  could be left in a state that is not ready for new commands.
2787
4508
 
2788
- Also, change PGconn#get_result to not raise an exception
2789
- when the result is in an error state. You can still check the
2790
- result object for an error, but it's not appropriate to raise an
2791
- exception, because that could prevent the caller from properly
2792
- clearing all results.
4509
+ Also, change PGconn#get_result to not raise an exception when the
4510
+ result is in an error state. You can still check the result object
4511
+ for an error, but it's not appropriate to raise an exception,
4512
+ because that could prevent the caller from properly clearing all
4513
+ results.
2793
4514
 
2794
- Thanks to Tarmo Tänav. ........ r172 | jdavis | 2008-10-05
2795
- 12:04:45 -0700 (Sun, 05 Oct 2008) | 6 lines
4515
+ Thanks to Tarmo Tänav. ........ r172 | jdavis | 2008-10-05 12:04:45
4516
+ -0700 (Sun, 05 Oct 2008) | 6 lines
2796
4517
 
2797
4518
  Include all libraries listed in "pg_config --libs" in the build.
2798
4519
 
@@ -2867,24 +4588,23 @@
2867
4588
  ........ r149 | jdavis | 2008-03-19 14:17:20 -0700 (Wed, 19 Mar
2868
4589
  2008) | 5 lines
2869
4590
 
2870
- This commmit just cleans up indenting and coding
2871
- conventions. It's a big patch, but does nothing meaningful. ........
2872
- r150 | jdavis | 2008-03-19 14:19:53 -0700 (Wed, 19 Mar 2008) | 5
2873
- lines
4591
+ This commmit just cleans up indenting and coding conventions. It's
4592
+ a big patch, but does nothing meaningful. ........ r150 | jdavis |
4593
+ 2008-03-19 14:19:53 -0700 (Wed, 19 Mar 2008) | 5 lines
2874
4594
 
2875
4595
 
2876
- * forgot to add the expected output to the repository, so one
2877
- test was failing. Corrected now. ........ r151 | jdavis |
2878
- 2008-03-20 11:20:25 -0700 (Thu, 20 Mar 2008) | 12 lines
4596
+ * forgot to add the expected output to the repository, so one test was
4597
+ failing. Corrected now. ........ r151 | jdavis | 2008-03-20 11:20:25
4598
+ -0700 (Thu, 20 Mar 2008) | 12 lines
2879
4599
 
2880
4600
 
2881
4601
  * added PGconn.connect_start(...) -> PGconn
2882
4602
  * added test for PGconn.connect_start()
2883
4603
  * refactored to separate the complexity of parsing the connection
2884
4604
  arguments
2885
- * Removed some superfluous code for old versions of Ruby that
2886
- don't support rb_define_alloc_func(). Those versions of Ruby
2887
- most likely don't work anyway, and I'm not testing them.
4605
+ * Removed some superfluous code for old versions of Ruby that don't
4606
+ support rb_define_alloc_func(). Those versions of Ruby most likely
4607
+ don't work anyway, and I'm not testing them.
2888
4608
 
2889
4609
  ........ r152 | jdavis | 2008-03-20 12:16:06 -0700 (Thu, 20 Mar
2890
4610
  2008) | 5 lines
@@ -2895,8 +4615,8 @@
2895
4615
  10:13:39 -0700 (Mon, 21 Apr 2008) | 4 lines
2896
4616
 
2897
4617
 
2898
- * added some tests for binary data ........ r154 | jdavis |
2899
- 2008-04-21 10:24:05 -0700 (Mon, 21 Apr 2008) | 5 lines
4618
+ * added some tests for binary data ........ r154 | jdavis | 2008-04-21
4619
+ 10:24:05 -0700 (Mon, 21 Apr 2008) | 5 lines
2900
4620
 
2901
4621
 
2902
4622
  * applied patch from Louis Lavena to improve the build process
@@ -2904,20 +4624,19 @@
2904
4624
  10:41:04 -0700 (Mon, 21 Apr 2008) | 6 lines
2905
4625
 
2906
4626
 
2907
- * backtracked a small piece of the patch, to catch the condition
2908
- where pg_config is not in the PATH on posix platforms. ........
2909
- r156 | jdavis | 2008-07-07 23:21:07 -0700 (Mon, 07 Jul 2008) | 6
2910
- lines
4627
+ * backtracked a small piece of the patch, to catch the condition where
4628
+ pg_config is not in the PATH on posix platforms. ........ r156 |
4629
+ jdavis | 2008-07-07 23:21:07 -0700 (Mon, 07 Jul 2008) | 6 lines
2911
4630
 
2912
- Fix oversight in connect arguments for options and
2913
- connect_timeout when passed in a hash. (Thanks Rob Holland for
2914
- the bug report). ........ r157 | jdavis | 2008-07-23 22:33:26
2915
- -0700 (Wed, 23 Jul 2008) | 10 lines
4631
+ Fix oversight in connect arguments for options and connect_timeout
4632
+ when passed in a hash. (Thanks Rob Holland for the bug report).
4633
+ ........ r157 | jdavis | 2008-07-23 22:33:26 -0700 (Wed, 23 Jul
4634
+ 2008) | 10 lines
2916
4635
 
2917
- Changed all temporary allocations to use ALLOC_N (heap
2918
- allocation) rather than ALLOCA_N (stack allocation). In
2919
- particular, this allows PGconn#escape_string to accept larger
2920
- input strings without fear of exceeding the stack size.
4636
+ Changed all temporary allocations to use ALLOC_N (heap allocation)
4637
+ rather than ALLOCA_N (stack allocation). In particular, this allows
4638
+ PGconn#escape_string to accept larger input strings without fear of
4639
+ exceeding the stack size.
2921
4640
 
2922
4641
  Thanks to Brett Neumeier. ........ r158 | jdavis | 2008-07-23
2923
4642
  22:46:34 -0700 (Wed, 23 Jul 2008) | 6 lines
@@ -2927,8 +4646,8 @@
2927
4646
  Thanks to Mohammad Ali (oldmoe) for the report. ........ r159 |
2928
4647
  jdavis | 2008-08-17 11:19:09 -0700 (Sun, 17 Aug 2008) | 4 lines
2929
4648
 
2930
- Applied build patch from Brett Neumeier. Thanks! ........ r160
2931
- | jdavis | 2008-08-17 12:26:33 -0700 (Sun, 17 Aug 2008) | 7 lines
4649
+ Applied build patch from Brett Neumeier. Thanks! ........ r160 |
4650
+ jdavis | 2008-08-17 12:26:33 -0700 (Sun, 17 Aug 2008) | 7 lines
2932
4651
 
2933
4652
  Properly protect variables from garbage collection, preventing
2934
4653
  possible memory corruption.
@@ -3012,20 +4731,20 @@
3012
4731
  * refactored to separate the complexity of parsing the connection
3013
4732
  arguments
3014
4733
  * Removed some superfluous code for old versions of Ruby that don't
3015
- support rb_define_alloc_func(). Those versions of Ruby most
3016
- likely don't work anyway, and I'm not testing them.
4734
+ support rb_define_alloc_func(). Those versions of Ruby most likely
4735
+ don't work anyway, and I'm not testing them.
3017
4736
  [778892302876]
3018
4737
 
3019
4738
  2008-03-19 Jeff Davis <davis.jeffrey@gmail.com>
3020
4739
 
3021
4740
  * spec/data/expected_trace.out:
3022
- * forgot to add the expected output to the repository, so one
3023
- test was failing. Corrected now.
4741
+ * forgot to add the expected output to the repository, so one test
4742
+ was failing. Corrected now.
3024
4743
  [630cca5e74c1]
3025
4744
 
3026
4745
  * ext/pg.c:
3027
- This commmit just cleans up indenting and coding conventions. It's
3028
- a big patch, but does nothing meaningful.
4746
+ This commmit just cleans up indenting and coding conventions. It's a
4747
+ big patch, but does nothing meaningful.
3029
4748
  [661ed2fea9e2]
3030
4749
 
3031
4750
  2008-03-18 Jeff Davis <davis.jeffrey@gmail.com>
@@ -3099,8 +4818,8 @@
3099
4818
  [e94ce7f92a06]
3100
4819
 
3101
4820
  * ext/pg.c:
3102
- * make PGconn#trace accept any object that provides a writable
3103
- file descriptor via the method "fileno".
4821
+ * make PGconn#trace accept any object that provides a writable file
4822
+ descriptor via the method "fileno".
3104
4823
  [221e68f16f2d]
3105
4824
 
3106
4825
  * ext/pg.c:
@@ -3110,9 +4829,8 @@
3110
4829
  2008-03-07 Jeff Davis <davis.jeffrey@gmail.com>
3111
4830
 
3112
4831
  * ext/extconf.rb, ext/mkrf_config.rb:
3113
- * Added check to find pg_config. If not found, throw an error.
3114
- This should make it more obvious when pg_config is not in your
3115
- path.
4832
+ * Added check to find pg_config. If not found, throw an error. This
4833
+ should make it more obvious when pg_config is not in your path.
3116
4834
 
3117
4835
  * Added proper check on MAC OS X so that it gives the correct
3118
4836
  warning on ppc when ARCHFLAGS isn't set.
@@ -3323,13 +5041,12 @@
3323
5041
  2008-01-23 Jeff Davis <davis.jeffrey@gmail.com>
3324
5042
 
3325
5043
  * ext/compat.h, ext/pg.h:
3326
- * had to include that file conditionally in compat.h for
3327
- postgresql 7.3 compatibility
5044
+ * had to include that file conditionally in compat.h for postgresql
5045
+ 7.3 compatibility
3328
5046
  [12b2568a0ada]
3329
5047
 
3330
5048
  * ext/pg.h:
3331
- * included an additional file so that it works with PostgreSQL
3332
- 8.3
5049
+ * included an additional file so that it works with PostgreSQL 8.3
3333
5050
  [34dd04d21a78]
3334
5051
 
3335
5052
  * ext/extconf.rb, ext/pg.c:
@@ -3430,12 +5147,11 @@
3430
5147
  [40270de77f48]
3431
5148
 
3432
5149
  * ext/pg.c:
3433
- Change conn.exec to use PQexec if no parameters are passed, and
3434
- use PQexecParams if optional parameters are passed.
5150
+ Change conn.exec to use PQexec if no parameters are passed, and use
5151
+ PQexecParams if optional parameters are passed.
3435
5152
 
3436
5153
  Change conn.send_query to use PQsendQuery if no parameters are
3437
- passed, and use PQsendQueryParams if optional parameters are
3438
- passed.
5154
+ passed, and use PQsendQueryParams if optional parameters are passed.
3439
5155
  [d05d9f2042d7]
3440
5156
 
3441
5157
  * compat-ruby-postgres/extconf.rb, compat-ruby-postgres/libpq-