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

Sign up to get free protection for your applications and to get access to all the features.
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-