pg 0.18.0.pre20140820094244 → 0.18.0.pre20141017155815

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/ChangeLog +1573 -2
  5. data/History.rdoc +3 -11
  6. data/Manifest.txt +24 -0
  7. data/README.rdoc +51 -4
  8. data/Rakefile +20 -14
  9. data/Rakefile.cross +39 -32
  10. data/ext/extconf.rb +27 -26
  11. data/ext/pg.c +75 -21
  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 +454 -0
  16. data/ext/pg_connection.c +815 -518
  17. data/ext/pg_copy_coder.c +557 -0
  18. data/ext/pg_result.c +258 -103
  19. data/ext/pg_text_decoder.c +424 -0
  20. data/ext/pg_text_encoder.c +608 -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 +121 -0
  27. data/ext/util.h +63 -0
  28. data/lib/pg.rb +11 -1
  29. data/lib/pg/basic_type_mapping.rb +377 -0
  30. data/lib/pg/coder.rb +74 -0
  31. data/lib/pg/connection.rb +38 -5
  32. data/lib/pg/result.rb +13 -3
  33. data/lib/pg/text_decoder.rb +42 -0
  34. data/lib/pg/text_encoder.rb +27 -0
  35. data/lib/pg/type_map_by_column.rb +15 -0
  36. data/spec/helpers.rb +9 -1
  37. data/spec/pg/basic_type_mapping_spec.rb +251 -0
  38. data/spec/pg/connection_spec.rb +232 -13
  39. data/spec/pg/result_spec.rb +52 -0
  40. data/spec/pg/type_map_by_column_spec.rb +135 -0
  41. data/spec/pg/type_map_by_mri_type_spec.rb +122 -0
  42. data/spec/pg/type_map_by_oid_spec.rb +133 -0
  43. data/spec/pg/type_map_spec.rb +39 -0
  44. data/spec/pg/type_spec.rb +620 -0
  45. metadata +40 -4
  46. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 767ac4aadc69aaf46db948f63ce84af28379d6cd
4
- data.tar.gz: b91de92eda56d82dd3c0c5a7870a137955fa4591
3
+ metadata.gz: 95311a9d99ccb8ee189f70f82db3c3246482cf5f
4
+ data.tar.gz: 72e13155d8032762a39b0628b882acb55325f8a2
5
5
  SHA512:
6
- metadata.gz: 1fb27aca7115cf8b3f3b7d34acd040725e8824cc3f9d7581568b89afafe2d87e76415d68709f54bae7acefe09b9e92e0556a47ce7bf98e7b015e18d40e900807
7
- data.tar.gz: 791ea89b3739a63eccab2e5e8502cbc60ac394b464cf55180022ab4e4ffaca8b7e1d89b759e8d9994cc1353bc402819b03f794a44556e9fdd7e961c7a7c778db
6
+ metadata.gz: 2497dbc6ea9a9ea96fc6731b548b7d0c49c38be819b5b4eb927f432483e7df35603bf4247a14936cb566702ff6c90361e4e9cd815c97d75ca88b367ac8fdc184
7
+ data.tar.gz: d8475aef22cda0e31655b5edb58838b83c6dafe2e2fd5f10a051901af817c80f2d569a97d096bbdbbf1ef6f67017666661acedef70364010bacdddc5bce5f640
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,8 +1,1579 @@
1
+ 2014-10-14 Lars Kanis <lars@greiz-reinsdorf.de>
2
+
3
+ * ext/pg.h, ext/pg_binary_encoder.c, ext/pg_coder.c,
4
+ ext/pg_text_encoder.c:
5
+ Fix naming and description of pg_coder_enc_to_s(). It actually uses
6
+ #to_s not #to_str.
7
+ [ac23631c96d9] [github/master, tip]
8
+
9
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
10
+ Use same rules for array quoting in text encoder as PostgreSQL.
11
+
12
+ This makes mutate-detection easier (in Rails).
13
+ [9be31c0663e3]
14
+
15
+ 2014-10-12 Lars Kanis <lars@greiz-reinsdorf.de>
16
+
17
+ * ext/pg_binary_decoder.c:
18
+ Remove needless memcpy() call.
19
+ [f786006b25ff]
20
+
21
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c, ext/util.c,
22
+ ext/util.h:
23
+ Change the endianess conversion for binary data from a library issue
24
+ to a compiler issue.
25
+
26
+ This removes dependency to beXXtoh() functions and ensures aligned
27
+ memory access.
28
+ [c8d7c26dd595]
29
+
30
+ 2014-10-11 Michael Granger <ged@FaerieMUD.org>
31
+
32
+ * ext/extconf.rb, spec/helpers.rb, spec/pg/connection_spec.rb:
33
+ Merge pull request #6 from larskanis/column_type_mapping
34
+
35
+ Add type mapping and performance improvements
36
+ [0da90c2b2812]
37
+
38
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
39
+
40
+ * Rakefile, Rakefile.cross, ext/extconf.rb:
41
+ gcc option -static-libgcc is required for i386-mingw32 build.
42
+
43
+ Don't use native pg_config for cross build. The paths were
44
+ overwritten anyways until now.
45
+
46
+ Remove code that was only needed for static build to libpq.
47
+ [9a2f9771d0b6]
48
+
49
+ 2014-10-10 Lars Kanis <lars@greiz-reinsdorf.de>
50
+
51
+ * ext/pg_type_map_by_column.c:
52
+ Use C99 struct initializer syntax.
53
+ [ec9ef7fb39eb]
54
+
55
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
56
+
57
+ * spec/pg/connection_spec.rb, spec/pg/type_spec.rb:
58
+ Fix specs for Windows.
59
+ [3659cfd75b96]
60
+
61
+ * .travis.yml, ext/pg_connection.c, lib/pg.rb,
62
+ spec/pg/connection_spec.rb:
63
+ Merge branch 'master' into column_type_mapping
64
+
65
+ Conflicts: ext/pg_connection.c spec/pg/connection_spec.rb
66
+ [57d770944b5d]
67
+
68
+ * ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c:
69
+ Fix gcc warnings in mingw build.
70
+ [26541f7e6bbb]
71
+
72
+ 2014-10-07 Lars Kanis <lars@greiz-reinsdorf.de>
73
+
74
+ * ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
75
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
76
+ ext/pg_type_map_by_oid.c, lib/pg/type_map_by_column.rb:
77
+ Add documentation to TypeMap classes.
78
+ [4227fdc5f0ac]
79
+
80
+ 2014-10-06 Lars Kanis <kanis@comcard.de>
81
+
82
+ * ext/pg_connection.c, ext/pg_result.c, ext/pg_type_map_by_mri_type.c:
83
+ Ensure zero terminated strings per StringValueCStr(), where C-str
84
+ pointers are expected.
85
+
86
+ This fixes issues with ruby-2.2.0-dev described in github pull
87
+ request #5: https://github.com/ged/ruby-pg/pull/5
88
+ [f0b7f99b1dd5]
89
+
90
+ 2014-10-05 Lars Kanis <lars@greiz-reinsdorf.de>
91
+
92
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c, ext/pg_coder.c,
93
+ ext/pg_copy_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
94
+ lib/pg/coder.rb, lib/pg/text_encoder.rb:
95
+ Add class and method documentation related to type casting.
96
+
97
+ Move previous documentaion from .rb files to .c.
98
+ [e64618a44912]
99
+
100
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
101
+ Format infinity and nan values equally to Float#to_s. This fixes a
102
+ test case in activerecord.
103
+ [02285c675326]
104
+
105
+ * lib/pg/text_decoder.rb, lib/pg/text_encoder.rb,
106
+ spec/pg/basic_type_mapping_spec.rb:
107
+ Support infinity time and date values. String values which can not
108
+ be parsed/formatted are now passed through instead of raising an
109
+ exception.
110
+ [85ce8d239d23]
111
+
112
+ 2014-10-04 Lars Kanis <lars@greiz-reinsdorf.de>
113
+
114
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c:
115
+ Add some more documentaion to the encoding/decoding function
116
+ interface.
117
+ [47ccb70c45d6]
118
+
119
+ * ext/pg.h, ext/pg_coder.c, ext/pg_connection.c, ext/pg_copy_coder.c,
120
+ ext/pg_text_encoder.c, ext/pg_type_map.c,
121
+ ext/pg_type_map_all_strings.c, ext/pg_type_map_by_column.c,
122
+ ext/pg_type_map_by_mri_type.c, spec/pg/type_map_by_column_spec.rb:
123
+ Fix handling of query parameters in hash form in conjunction with
124
+ type maps.
125
+
126
+ This moves the oid/format determining back into
127
+ alloc_query_params1() and avoids code duplication within type maps.
128
+ [2afa6cc41d55]
129
+
130
+ * spec/pg/connection_spec.rb:
131
+ Add missing spec for hash form parameters to #exec_params .
132
+ [23ad5d676b53]
133
+
134
+ 2014-10-03 Lars Kanis <lars@greiz-reinsdorf.de>
135
+
136
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
137
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, spec/pg/type_spec.rb:
138
+ FromBase64 encoder better fits into PG::BinaryEncoder and ToBase64
139
+ decoder better into PG::BinaryDecoder.
140
+ [5db80210a077]
141
+
142
+ 2014-10-02 Lars Kanis <kanis@comcard.de>
143
+
144
+ * ext/pg_coder.c, ext/pg_connection.c, ext/pg_text_decoder.c,
145
+ ext/pg_text_encoder.c:
146
+ rb_str_new() with NULL ptr can be used to allocate/set the Sting
147
+ size.
148
+ [2c4faf369dce]
149
+
150
+ * ext/util.c:
151
+ Speed up the base 64 decoder by 80%.
152
+ [adb1728e29d9]
153
+
154
+ 2014-10-01 Lars Kanis <lars@greiz-reinsdorf.de>
155
+
156
+ * ext/pg_text_decoder.c:
157
+ Use strings in base64 decoders, so that we can avoid copy'ing data
158
+ at string creation in dec_func.
159
+ [1e2cd139e6fe]
160
+
161
+ * spec/pg/type_spec.rb:
162
+ Fix base64 specs for Ruby < 2.1.
163
+ [3a9e0cea7387]
164
+
165
+ 2014-10-01 Lars Kanis <kanis@comcard.de>
166
+
167
+ * Merge branch 'column_type_mapping' of https://github.com/larskanis
168
+ /ruby-pg into column_type_mapping
169
+ [712224085b59]
170
+
171
+ 2014-09-30 Lars Kanis <lars@greiz-reinsdorf.de>
172
+
173
+ * ext/pg.h, ext/pg_result.c, ext/pg_type_map.c,
174
+ ext/pg_type_map_all_strings.c, ext/pg_type_map_by_column.c,
175
+ ext/pg_type_map_by_oid.c:
176
+ Store a pointer to the current typemap into result data and use it
177
+ through the this pointer at all places.
178
+
179
+ This gives PG::Result#getvalue a speedup around 10%.
180
+ [a8b3ef723c22]
181
+
182
+ * spec/pg/basic_type_mapping_spec.rb:
183
+ Change timestamp specs to a value before 1970, so that we see, there
184
+ is no epoch limitation.
185
+ [441da0a4129a]
186
+
187
+ 2014-09-30 Lars Kanis <kanis@comcard.de>
188
+
189
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/util.c,
190
+ ext/util.h, spec/pg/type_spec.rb:
191
+ Add ToBase64 and FromBase64 classes as encoders and decoders.
192
+ [9ff6f35497ad]
193
+
194
+ 2014-09-29 Lars Kanis <kanis@comcard.de>
195
+
196
+ * ext/pg_connection.c:
197
+ Add encoder and decoder for copy_data to gc mark list.
198
+ [a445b16a259e]
199
+
200
+ * Manifest.txt:
201
+ Update Manifest.txt
202
+ [e13ff4f6433e]
203
+
204
+ * ext/pg_connection.c:
205
+ Add new function pg_get_connection_safe() and use it instead of two
206
+ calls to pg_get_connection() and pg_get_pgconn(). It is faster and
207
+ less confusing.
208
+ [6ad4490a691b]
209
+
210
+ * ext/pg_coder.c, ext/pg_copy_coder.c:
211
+ Fix tainted mark for PG::Coder#encoder and #decode and
212
+ PG::TextDecoder::CopyRow output.
213
+ [7aec08b7677c]
214
+
215
+ 2014-09-27 Lars Kanis <lars@greiz-reinsdorf.de>
216
+
217
+ * lib/pg/basic_type_mapping.rb:
218
+ Fix PG::BasicTypeRegistry, so that it works with and without
219
+ previously applied type mapping.
220
+ [db5c2973f143]
221
+
222
+ * lib/pg/basic_type_mapping.rb:
223
+ Underscore unused variables for now, to avoid warnings about them.
224
+ [8d016bc21b9a]
225
+
226
+ * README.rdoc:
227
+ Mention type maps for COPY in the README.
228
+ [ac361f811253]
229
+
230
+ * ext/pg.h:
231
+ It's better to check for availability of the INLINED macro than for
232
+ RUBINIUS define.
233
+ [9ba559feacac]
234
+
235
+ * lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb:
236
+ Add PG::BasicTypeMapBasedOnResult and add specs for deriving
237
+ TypeMapByColumn from a result and use it with COPY.
238
+ [6c69768961c1]
239
+
240
+ * ext/pg_connection.c, ext/pg_result.c:
241
+ Add somewhat more documentaion to type casting.
242
+
243
+ Harmonize coder setters for COPY to accept any PG::Coder (even if
244
+ any other than PG::CopyCoder hardly makes sense).
245
+ [e0a8ec6d2a04]
246
+
247
+ * spec/pg/connection_spec.rb:
248
+ Mark failing test on Rubinius as pending.
249
+ [6eb0fcab4d8c]
250
+
251
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
252
+ Add typecasting to Connection#get_copy_data.
253
+ [21451bfb3659]
254
+
255
+ * ext/pg.c, ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c:
256
+ Allow inline checks for string capacity. This removes the bottleneck
257
+ in the COPY decoder, when doing the check for each character.
258
+ [c2e817ef9b8c]
259
+
260
+ * ext/pg.c, ext/pg.h, ext/pg_coder.c, ext/pg_connection.c,
261
+ ext/pg_copy_coder.c, ext/pg_result.c, ext/pg_text_encoder.c,
262
+ ext/pg_type_map.c, ext/pg_type_map_all_strings.c,
263
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
264
+ spec/pg/type_spec.rb:
265
+ Add PG::TypeMapAllStrings and use it as default typemap, when no
266
+ explicit typemap was set. This allowes PG::CopyCoder to work without
267
+ typemap, too.
268
+ [b183ef46969c]
269
+
270
+ * ext/pg_copy_coder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
271
+ Add CopyCoder#null_string to gc_mark and #to_h .
272
+ [893009c81aec]
273
+
274
+ * ext/pg.h, ext/pg_copy_coder.c, ext/pg_type_map.c,
275
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
276
+ ext/pg_type_map_by_oid.c, spec/pg/type_spec.rb:
277
+ Add decoder for data received from get_copy_data.
278
+
279
+ Remove duplicated not-suitable-raise-functions.
280
+ [0c7c819d2f46]
281
+
282
+ * ext/pg_copy_coder.c:
283
+ Add PG::CopyCoder#null_string .
284
+ [3f52c343f9c8]
285
+
286
+ * ext/pg.c:
287
+ Fix description.
288
+ [38c8b9d03bd1]
289
+
290
+ 2014-09-26 Lars Kanis <kanis@comcard.de>
291
+
292
+ * ext/pg.h, ext/pg_coder.c, ext/pg_text_decoder.c,
293
+ ext/pg_text_encoder.c, ext/pg_type_map_by_column.c,
294
+ ext/pg_type_map_by_oid.c:
295
+ Refactured code to find the right decoder function.
296
+ [5822d67d8c3b]
297
+
298
+ * spec/pg/type_spec.rb:
299
+ Add decoder specs for Bytea.
300
+ [b815372dd5d2]
301
+
302
+ * lib/pg/coder.rb, spec/pg/type_spec.rb:
303
+ Add missing PG::CopyCoder#to_h .
304
+ [e0bf32c9eb31]
305
+
306
+ * ext/pg_copy_coder.c:
307
+ Add missing GC-mark function to copycoder.
308
+ [70ae4e58761c]
309
+
310
+ 2014-09-25 Lars Kanis <lars@greiz-reinsdorf.de>
311
+
312
+ * ext/pg_connection.c, lib/pg/connection.rb,
313
+ spec/pg/connection_spec.rb:
314
+ Implement Connection#put_copy_data and #copy_data with encoder.
315
+ [7bfcfe35344c]
316
+
317
+ * spec/pg/type_spec.rb:
318
+ Add more specs for PG::TextEncoder::CopyRow.
319
+ [94d6505a6a49]
320
+
321
+ * ext/pg_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c:
322
+ Rename different namings of the instance pointer to "this".
323
+ [c07d02ae1cb4]
324
+
325
+ 2014-09-25 Lars Kanis <kanis@comcard.de>
326
+
327
+ * ext/pg_connection.c:
328
+ Save a call to rb_protect by wrapping possibly allocated heap memory
329
+ into T_DATA objects that are free'd by the GC.
330
+ [3c1d86fedf1b]
331
+
332
+ * spec/pg/connection_spec.rb:
333
+ Mark the failing COPY tests as pending.
334
+ [722d4e35b570]
335
+
336
+ * ext/pg.h, ext/pg_coder.c, ext/pg_copy_coder.c,
337
+ ext/pg_text_encoder.c:
338
+ Remove duplicated code.
339
+ [bf96b3d34538]
340
+
341
+ * ext/pg_coder.c:
342
+ Remove another usage of rb_str_modify_expand.
343
+ [36493e777910]
344
+
345
+ * ext/extconf.rb, ext/pg.c:
346
+ Add a more portable version of pg_ensure_str_capa, that should work
347
+ on Rubinius.
348
+ [bfdd98d3553a]
349
+
350
+ * ext/pg.c, ext/pg.h, ext/pg_copy_coder.c, ext/pg_text_encoder.c,
351
+ spec/pg/type_spec.rb:
352
+ Add specs for PG::TextEncoder::CopyRow. Refacture
353
+ pg_ensure_str_capa() to avoid duplicated code.
354
+ [58db6bcc673e]
355
+
356
+ 2014-09-24 Lars Kanis <lars@greiz-reinsdorf.de>
357
+
358
+ * ext/pg_text_encoder.c:
359
+ Finish second option for encoders to return a string.
360
+ [d523e7482832]
361
+
362
+ 2014-09-24 Lars Kanis <kanis@comcard.de>
363
+
364
+ * ext/pg_coder.c, ext/pg_connection.c, ext/pg_copy_coder.c,
365
+ ext/pg_text_encoder.c:
366
+ Add a second option for encoders to return a string. Not yet
367
+ finished.
368
+ [6a408664b53d]
369
+
370
+ * ext/pg_connection.c:
371
+ Fix typo.
372
+ [394b095b06e7]
373
+
374
+ 2014-09-23 Lars Kanis <lars@greiz-reinsdorf.de>
375
+
376
+ * Merge branch 'column_type_mapping' of github.com:larskanis/ruby-pg
377
+ into column_type_mapping
378
+ [0a904a023886]
379
+
380
+ 2014-09-23 Lars Kanis <kanis@comcard.de>
381
+
382
+ * ext/pg.h:
383
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
384
+ /ruby-pg into column_type_mapping
385
+ [5f7ae7085714]
386
+
387
+ * ext/pg_connection.c:
388
+ Fix comment.
389
+ [bc848e8d054b]
390
+
391
+ * ext/pg.h, ext/pg_connection.c:
392
+ Add setter and getter for Connection#encoder_for_put_copy_data and
393
+ decoder_for_get_copy_data.
394
+ [b21c2b78af51]
395
+
396
+ * ext/pg.c, ext/pg.h, ext/pg_binary_encoder.c, ext/pg_copy_coder.c,
397
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c,
398
+ spec/pg/connection_spec.rb:
399
+ Add TextEncoder::CopyRow. Not finished yet.
400
+ [f631bec1aea1]
401
+
402
+ * ext/pg_coder.c:
403
+ Refactured duplicated init code for coders.
404
+ [89c888335657]
405
+
406
+ 2014-09-23 Lars Kanis <lars@greiz-reinsdorf.de>
407
+
408
+ * ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c:
409
+ Fix possible invalid memory access in pg_tmbc_mark().
410
+ [89a8049d3de8]
411
+
412
+ 2014-09-22 Lars Kanis <lars@greiz-reinsdorf.de>
413
+
414
+ * ext/pg.h:
415
+ Add compat for Rubinius.
416
+ [1836d0c5c623]
417
+
418
+ 2014-09-22 Lars Kanis <kanis@comcard.de>
419
+
420
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c, ext/pg_type_map.c,
421
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
422
+ ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb,
423
+ spec/pg/type_map_spec.rb:
424
+ Add PG::TypeMap#fit_to_result and fit_to_query as Ruby methods and
425
+ remove opposite Ruby callback wrapper.
426
+
427
+ The callback wrapper were not used and explicit calling
428
+ fit_to_result makes more sense (for caching etc.).
429
+
430
+ Swap parameter order of fit_to_result and fit_to_query so that self
431
+ is the first one.
432
+ [531ece2a12f8]
433
+
434
+ * ext/pg_type_map_by_mri_type.c:
435
+ Add comment to TypeMapByMriType class. [skip-ci]
436
+ [19e5622fd318]
437
+
438
+ * ext/pg_connection.c:
439
+ Put only converted ruby strings into the gc_array.
440
+ [f705548a5b5f]
441
+
442
+ 2014-09-21 Lars Kanis <lars@greiz-reinsdorf.de>
443
+
444
+ * README.rdoc, lib/pg/type_map_by_column.rb:
445
+ Update the introduction for type casting in Pg. Luckily it became
446
+ easier.
447
+ [b1876686a1e2]
448
+
449
+ * lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb,
450
+ spec/pg/connection_spec.rb:
451
+ Use text format for integers and don't set type OID for text types.
452
+ [34b9dacb04d3]
453
+
454
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
455
+ Implement a faster Fixnum to text encoder.
456
+ [a7b9ea6dffd7]
457
+
458
+ * spec/pg/connection_spec.rb:
459
+ Add spec for a lot of result columns in conjunction with type
460
+ casting.
461
+ [13629c7af842]
462
+
463
+ * ext/pg_connection.c:
464
+ Use query stack memory pool somewhat more space efficient.
465
+ [13c7d27cf253]
466
+
467
+ 2014-09-20 Lars Kanis <lars@greiz-reinsdorf.de>
468
+
469
+ * ext/pg_connection.c:
470
+ Do two passes of query param encoding one after another. This should
471
+ give somewhat more cache locality.
472
+ [c2634b894cb7]
473
+
474
+ * ext/pg.h, ext/pg_binary_decoder.c, ext/pg_connection.c,
475
+ ext/pg_result.c, ext/pg_text_decoder.c:
476
+ Use a faster version of ENCODING_SET.
477
+
478
+ Remove several ifdefs.
479
+ [90051cb74b20]
480
+
481
+ * ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c, ext/pg_connection.c,
482
+ ext/pg_result.c:
483
+ Cleanup and harmonize encoding assignment.
484
+ [2549c08e631e]
485
+
486
+ * ext/pg_result.c, spec/pg/result_spec.rb:
487
+ Add type casting to Result#column_values and #field_values.
488
+ [34b9016757c4]
489
+
490
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
491
+ ext/pg_text_decoder.c, ext/pg_type_map.c,
492
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
493
+ ext/pg_type_map_by_oid.c:
494
+ Use RBasic encoding store as cache for connection's
495
+ internal_encoding.
496
+
497
+ Remove encoding_index from typemap struct.
498
+
499
+ Rename typemap-struct member 'typecast' to 'typecast_result_value'.
500
+ [58dff8991613]
501
+
502
+ 2014-09-19 Lars Kanis <lars@greiz-reinsdorf.de>
503
+
504
+ * ext/pg_connection.c:
505
+ Avoid duplicated type check for typemaps on query params.
506
+ [e7ae19b8fe19]
507
+
508
+ * ext/pg_type_map_by_mri_type.c:
509
+ Sort MRI-types according to their probability.
510
+ [383da4885164]
511
+
512
+ * ext/pg_connection.c, ext/pg_result.c, lib/pg/result.rb:
513
+ Implement PG::Result#values in C. This avoids the overhead of
514
+ Enumerator-fibers and dynamic array size changes.
515
+ [7bf8d41cbcb6]
516
+
517
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
518
+ Use stack memory for queries unless there are a lot of params.
519
+ [b9f9f33f5c21]
520
+
521
+ 2014-09-19 Lars Kanis <kanis@comcard.de>
522
+
523
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c,
524
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c,
525
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb:
526
+ Use a wrapped C-struct as data of PG::Result and store instance
527
+ variables there.
528
+
529
+ This avoids all hash lookups for accessing instance variables.
530
+
531
+ This also fixes bitbucket bug #185 by marking the result as
532
+ autocleared: https://bitbucket.org/ged/ruby-pg/issue/185
533
+
534
+ And this adds two new methods to PG::Result : autoclear? and
535
+ cleared?
536
+ [93d51e75cb0b]
537
+
538
+ * ext/pg_connection.c:
539
+ Rename p_conn to this.
540
+ [7ae20e3f9db2]
541
+
542
+ * ext/pg.h, ext/pg_connection.c, ext/pg_result.c:
543
+ Move all ivars of the Connection object to C-struct.
544
+ [79ed6d2ba9a1]
545
+
546
+ * ext/pg.h, ext/pg_connection.c:
547
+ Merge branch 'column_type_mapping' into use_structs_as_data_ptr
548
+ [183eff440b6e]
549
+
550
+ * ext/pg_connection.c:
551
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
552
+ /ruby-pg into column_type_mapping
553
+ [75ef0371c4ed]
554
+
555
+ 2014-09-18 Lars Kanis <lars@greiz-reinsdorf.de>
556
+
557
+ * ext/pg_type_map_by_oid.c:
558
+ Merge branch 'column_type_mapping' of github.com:larskanis/ruby-pg
559
+ into column_type_mapping
560
+
561
+ Conflicts: ext/pg_type_map_by_oid.c
562
+ [39b58e42efd6]
563
+
564
+ * ext/pg.h, ext/pg_connection.c, ext/pg_type_map.c,
565
+ ext/pg_type_map_by_column.c, ext/pg_type_map_by_mri_type.c,
566
+ ext/pg_type_map_by_oid.c:
567
+ Refacture type casting of query params, to avoid doublicated code.
568
+
569
+ This also bundles memory allocation for query functions.
570
+ [4d0a26946895]
571
+
572
+ 2014-09-18 Lars Kanis <kanis@comcard.de>
573
+
574
+ * ext/pg.h, ext/pg_connection.c:
575
+ Use structs as data ptr.
576
+ [bb3ce59c6acd]
577
+
578
+ * ext/pg_connection.c:
579
+ Remove rb_obj_is_kind_of(connection) for every Connection method
580
+ call.
581
+
582
+ There should'nt be any possibility to change the base type from Ruby
583
+ space.
584
+ [5dd2fec1a494]
585
+
586
+ * ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
587
+ Add a OID lookup cache to PG::TypeMapByOid to the cost of 8KByte
588
+ heap memory per instance.
589
+
590
+ max_rows_for_online_lookup is also increased but that's only
591
+ guessed. So no tests were done to find any break-even point.
592
+ [bf44b0aaf366]
593
+
594
+ 2014-09-16 Lars Kanis <lars@greiz-reinsdorf.de>
595
+
596
+ * ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
597
+ TypeMapByOid: Add threshold for per-row hash lookups.
598
+ [892253614bdb]
599
+
600
+ 2014-09-16 Lars Kanis <kanis@comcard.de>
601
+
602
+ * ext/pg_connection.c, ext/pg_result.c, ext/pg_text_decoder.c,
603
+ lib/pg/basic_type_mapping.rb, lib/pg/result.rb,
604
+ spec/pg/basic_type_mapping_spec.rb, spec/pg/connection_spec.rb:
605
+ Restructured BasicTypeMapping to make use of TypeMapByOid and
606
+ TypeMapByMriType.
607
+
608
+ Renamed type_map_for_result and type_map_for_query to plural form -
609
+ that sounds better.
610
+ [8bda62d443c9]
611
+
612
+ * ext/pg_type_map_by_oid.c:
613
+ TypeMapByOid: Move init code for C-Struct to alloc function, so that
614
+ derived classes, which don't call super in initialize don't
615
+ segfault.
616
+ [592fa6e19beb]
617
+
618
+ * ext/pg.h, ext/pg_connection.c, ext/pg_type_map_by_mri_type.c,
619
+ spec/pg/type_map_by_mri_type_spec.rb:
620
+ TypeMapByMriType: Allow dynamic definition of a coder for each per
621
+ query param.
622
+
623
+ Remove T_NIL since it's not useful. Qnil is always mapped to SQL
624
+ NULL.
625
+ [8e5d18881a5d]
626
+
627
+ * ext/pg.h:
628
+ Add missing function declaration.
629
+ [30eb8599d4b2]
630
+
631
+ * ext/pg_result.c, ext/pg_type_map_by_column.c,
632
+ ext/pg_type_map_by_oid.c:
633
+ Replace some Check_Type/DATA_PTR combinations by Data_Get_Struct.
634
+ [5f4cb85d4025]
635
+
636
+ * ext/pg_type_map_by_column.c:
637
+ Remove unnecessary variable.
638
+ [2e109387fa5b]
639
+
640
+ * Manifest.txt, ext/pg.c, ext/pg_type_map_by_mri_type.c,
641
+ spec/pg/type_map_by_mri_type_spec.rb:
642
+ Add PG::TypeMapByMriType for encoding of Ruby values.
643
+ [00e11c3f4ced]
644
+
645
+ 2014-09-15 Lars Kanis <lars@greiz-reinsdorf.de>
646
+
647
+ * ext/pg_type_map_by_column.c:
648
+ Fix NULL pointer deref in mark function.
649
+
650
+ Move init of tmbc struct, so that it's done before a raise/GC run
651
+ can happen.
652
+ [ece47453109b]
653
+
654
+ 2014-09-15 Lars Kanis <kanis@comcard.de>
655
+
656
+ * ext/pg_type_map_by_column.c:
657
+ Avoid read of uninitialized values - detected with valgrind:
658
+
659
+ ==30681== Conditional jump or move depends on uninitialised value(s)
660
+ ==30681== at 0xD1732EB: pg_tmbc_alloc_query_params
661
+ (pg_type_map_by_column.c:157) ==30681== by 0x4EA93B6: rb_protect
662
+ (eval.c:819) ==30681== by 0xD1770DE: alloc_query_params
663
+ (pg_connection.c:1030) ==30681== by 0xD17A357: pgconn_exec_params
664
+ (pg_connection.c:1102) ==30681== by 0x4FCE439:
665
+ vm_call_cfunc_with_frame (vm_insnhelper.c:1470) ==30681== by
666
+ 0x4FDA48E: vm_call_method (vm_insnhelper.c:1560) ==30681== by
667
+ 0x4FD2568: vm_exec_core (insns.def:1028) ==30681== by 0x4FD7126:
668
+ vm_exec (vm.c:1304) ==30681== by 0x4FD8EFA:
669
+ invoke_block_from_c.part.49 (vm.c:732) ==30681== by 0x4FDCB13:
670
+ yield_under (vm.c:704) ==30681== by 0x4FCE439:
671
+ vm_call_cfunc_with_frame (vm_insnhelper.c:1470) ==30681== by
672
+ 0x4FDA48E: vm_call_method (vm_insnhelper.c:1560)
673
+ [4a125325e819]
674
+
675
+ * ext/pg_type_map_by_column.c, ext/pg_type_map_by_oid.c:
676
+ Fix NULL pointer dereference when a TypeMapByColumn is marked before
677
+ #initialize
678
+
679
+ Remove unnecessary type cast.
680
+ [4fe07c3ea525]
681
+
682
+ 2014-09-14 Lars Kanis <lars@greiz-reinsdorf.de>
683
+
684
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_type_map_by_column.c,
685
+ ext/pg_type_map_by_oid.c, spec/pg/type_map_by_oid_spec.rb:
686
+ Add PG::TypeMapByOid which can be used for easy and fast result
687
+ value type casts.
688
+
689
+ Change TypeMapByColumn to use a GC mark function. This way we don't
690
+ need to store the coder objects twice.
691
+ [c967d74f8412]
692
+
693
+ * ext/pg_connection.c:
694
+ Remove unnecessary memory allocation.
695
+ [72957cc8bb04]
696
+
697
+ 2014-09-13 Lars Kanis <lars@greiz-reinsdorf.de>
698
+
699
+ * spec/pg/type_map_spec.rb:
700
+ Remove obsolete comment
701
+ [c875975e4596]
702
+
703
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_coder.c,
704
+ ext/pg_column_mapping.c, ext/pg_connection.c, ext/pg_result.c,
705
+ ext/pg_type_map.c, ext/pg_type_map_by_column.c, lib/pg.rb,
706
+ lib/pg/basic_type_mapping.rb, lib/pg/column_mapping.rb,
707
+ lib/pg/result.rb, lib/pg/type_map_by_column.rb,
708
+ spec/pg/basic_type_mapping_spec.rb, spec/pg/column_mapping_spec.rb,
709
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
710
+ spec/pg/type_map_by_column_spec.rb, spec/pg/type_map_spec.rb:
711
+ Allow different type mapping strategies beside ColumnMapping. This
712
+ gives us the freedom to implement TypeMapByOid, TypeMapByClass or
713
+ some fixed function mappings.
714
+
715
+ Rename ColumnMapping to TypeMapByColumn.
716
+
717
+ Seperate type_map_for_result from type_map_for_query, so thats it's
718
+ easy to do type casts for one direction only.
719
+ [2548e7a85049]
720
+
721
+ 2014-09-02 Lars Kanis <lars@greiz-reinsdorf.de>
722
+
723
+ * ext/pg_coder.c, ext/pg_text_encoder.c, lib/pg/text_encoder.rb:
724
+ Add documentation to some TextEncoder classes.
725
+ [6c3fad43d3a2]
726
+
727
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
728
+ Fix PG::TextEncoder::Identifier for more than 2 elements.
729
+ [fcb8138f3f6f]
730
+
731
+ 2014-08-31 Lars Kanis <lars@greiz-reinsdorf.de>
732
+
733
+ * ext/pg.h, ext/pg_coder.c, ext/pg_text_decoder.c,
734
+ ext/pg_text_encoder.c, lib/pg/coder.rb, spec/pg/type_spec.rb:
735
+ Add delimiter attribute to composite types.
736
+ [5604eba62d48]
737
+
738
+ * README.rdoc:
739
+ Update the README to reflect the API change of the type cast
740
+ classes.
741
+ [2afd944eadb2]
742
+
743
+ * lib/pg/basic_type_mapping.rb:
744
+ Update PG::BasicTypeMapping to make use of new PG::Coder classes.
745
+ Add some documentation to BasicTypeMapping.
746
+ [ad24be2307d1]
747
+
748
+ * spec/pg/type_spec.rb:
749
+ type_spec doesn't make use of the helpers.
750
+ [7a3a4197a61f]
751
+
752
+ 2014-08-26 Lars Kanis <lars@greiz-reinsdorf.de>
753
+
754
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
755
+ ext/pg_binary_encoder.c, ext/pg_coder.c, ext/pg_column_mapping.c,
756
+ ext/pg_connection.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
757
+ ext/pg_type.c, lib/pg.rb, lib/pg/basic_type_mapping.rb,
758
+ lib/pg/coder.rb, lib/pg/column_mapping.rb, lib/pg/text_decoder.rb,
759
+ lib/pg/text_encoder.rb, lib/pg/type.rb,
760
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb,
761
+ spec/pg/type_spec.rb:
762
+ Simplify the type cast API by merging PG::Type and PG::Coder
763
+ classes.
764
+
765
+ En/decoders can now be built directly as
766
+ PG::TextDecoder::Integer.new instead of previous
767
+ PG::Type.new(decoder: PG::TextDecoder::Integer) .
768
+ [2b428d490e08]
769
+
770
+ 2014-08-24 Lars Kanis <lars@greiz-reinsdorf.de>
771
+
772
+ * ext/pg_connection.c, ext/pg_type.c:
773
+ Change all remaining Oid <-> VALUE conversions to UINT.
774
+ [66047d8245d1]
775
+
776
+ * ext/pg_coder.c:
777
+ Remove unused accessors.
778
+ [b6b84993c6ff]
779
+
780
+ * spec/pg/type_spec.rb:
781
+ Convert remaining two should's to expect syntax.
782
+ [1888e8425d07]
783
+
784
+ * .travis.yml:
785
+ 'gem install rake-compiler' is still needed for cross build.
786
+ [f8a0ac84f72f]
787
+
788
+ * .travis.yml, spec/pg/connection_spec.rb:
789
+ Merge branch 'master' into column_type_mapping
790
+
791
+ Conflicts: .travis.yml
792
+ [36684ebbc21d]
793
+
794
+ 2014-08-22 Lars Kanis <lars@greiz-reinsdorf.de>
795
+
796
+ * Merge /home/lars/comcard/tmp5/ruby-pg.git.bare into
797
+ column_type_mapping
798
+ [2485600065c4]
799
+
800
+ * spec/helpers.rb, spec/pg/column_mapping_spec.rb,
801
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb,
802
+ spec/pg/type_spec.rb:
803
+ Convert type cast specs to expect syntax of RSpec 3
804
+ [3497aade8d9a]
805
+
806
+ * Manifest.txt, ext/pg_connection.c, ext/pg_result.c, spec/helpers.rb,
807
+ spec/lib/helpers.rb, spec/pg/connection_spec.rb,
808
+ spec/pg/result_spec.rb:
809
+ Merge branch 'master' into column_type_mapping
810
+
811
+ Conflicts: Manifest.txt spec/helpers.rb spec/pg/connection_spec.rb
812
+ spec/pg/result_spec.rb
813
+ [8eb15150e2f7]
814
+
815
+ 2014-05-08 Lars Kanis <kanis@comcard.de>
816
+
817
+ * lib/pg/basic_type_mapping.rb:
818
+ Make column_mapping_for_* methods public.
819
+ [5b2c4584de20]
820
+
821
+ 2014-04-27 Lars Kanis <lars@greiz-reinsdorf.de>
822
+
823
+ * lib/pg/coder.rb, lib/pg/type.rb:
824
+ Add nicer inspect methods to Type and Coder.
825
+ [bea1b87d449f]
826
+
827
+ 2014-04-23 Lars Kanis <lars@greiz-reinsdorf.de>
828
+
829
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
830
+ Add PG::TextEncoder::QUOTED_LITERAL.
831
+
832
+ This can be used to encode values directly for sql insertion.
833
+ [899ae14a4177]
834
+
835
+ * ext/pg.h, ext/pg_binary_encoder.c, ext/pg_text_encoder.c,
836
+ spec/pg/type_spec.rb:
837
+ Use #to_i for encoding of non Numeric types. That allows use of
838
+ strings like "123-garbage" as integer input.
839
+ [3771cd7756af]
840
+
841
+ * ext/pg_text_encoder.c, lib/pg/basic_type_mapping.rb,
842
+ spec/pg/column_mapping_spec.rb:
843
+ Remove PG::TextEncoder::BYTEA, as it was not correct.
844
+ [f246df175b01]
845
+
846
+ 2014-04-22 Lars Kanis <lars@greiz-reinsdorf.de>
847
+
848
+ * ext/pg_connection.c, spec/pg/column_mapping_spec.rb:
849
+ Fix encoding of NULL values to typed fields.
850
+ [8820a9c4271e]
851
+
852
+ * ext/pg_binary_encoder.c, ext/pg_text_encoder.c,
853
+ spec/pg/type_spec.rb:
854
+ Allow to encode Strings to int types
855
+ [b8c6be80a931]
856
+
857
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
858
+ Fix encoding of empty arrays.
859
+ [eff38fc911d0]
860
+
861
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
862
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c,
863
+ lib/pg/basic_type_mapping.rb, lib/pg/text_decoder.rb,
864
+ lib/pg/text_encoder.rb, spec/pg/column_mapping_spec.rb,
865
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
866
+ Change all coder objects to UPPERCASE, because they aren't class
867
+ constants.
868
+ [8384fe858ebf]
869
+
870
+ 2014-04-21 Lars Kanis <lars@greiz-reinsdorf.de>
871
+
872
+ * ext/pg_text_decoder.c, ext/pg_text_encoder.c, spec/pg/type_spec.rb:
873
+ Add encoder and decoder for identifiers.
874
+
875
+ Improve quotation code of Array encoder.
876
+
877
+ Refactor Array encoder and decoder functions to allow reuse for
878
+ identifiers.
879
+ [b13e27b316d4]
880
+
881
+ 2014-04-19 Lars Kanis <lars@greiz-reinsdorf.de>
882
+
883
+ * ext/pg_type.c, spec/pg/type_spec.rb:
884
+ Allow PG::CompositeType#elements_type=nil and fix error text for
885
+ invalid types.
886
+ [91f8becf18aa]
887
+
888
+ * spec/pg/column_mapping_spec.rb:
889
+ Add decoder tests for float values NAN and INFINITY.
890
+ [c45b87b317c3]
891
+
892
+ * ext/pg_type.c:
893
+ pg_type_get_and_check() is no longer in use.
894
+ [f387ba78ccbf]
895
+
896
+ * lib/pg/basic_type_mapping.rb:
897
+ Array.new is somewhat faster than using an Enumerator.
898
+ [458cdea12837]
899
+
900
+ * ext/pg_column_mapping.c, ext/pg_result.c:
901
+ Don't call ENCODING_GET() for each result value, but only once, when
902
+ the ColumnMapping is assigned to a PG::Result.
903
+
904
+ The speedup is only minimal (~1%).
905
+ [29fc4769e95a]
906
+
907
+ 2014-04-18 Lars Kanis <lars@greiz-reinsdorf.de>
908
+
909
+ * ext/pg_type.c:
910
+ Add check for output lengths of first/second pass of C based
911
+ encoders.
912
+ [445a04470387]
913
+
914
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
915
+ Fix size computation of negative numbers for text integer encoding.
916
+ [3984ee009617]
917
+
918
+ * README.rdoc:
919
+ Tune type cast documentation a bit more.
920
+ [65f0f57deb57]
921
+
922
+ * README.rdoc:
923
+ Add the most simple use case for type casting to the README.
924
+ [6524afce6fbc]
925
+
926
+ * ext/pg_text_decoder.c:
927
+ rb_cstr2inum() seems to be slow, so we do the integer conversion by
928
+ hand in simple cases. This proved to be 40% faster.
929
+ [976fcccb023f]
930
+
931
+ 2014-04-16 Lars Kanis <lars@greiz-reinsdorf.de>
932
+
933
+ * spec/pg/type_spec.rb:
934
+ Add spec for PG::Type default values.
935
+ [ac8037456424]
936
+
937
+ * lib/pg/type.rb:
938
+ Remove old code.
939
+ [d9abf3b53985]
940
+
941
+ * spec/pg/type_spec.rb:
942
+ Add specs for Type#to_h.
943
+ [170f9f5a344b]
944
+
945
+ * ext/pg_type.c:
946
+ needs_quotation? should return true or false.
947
+ [f00c1948e602]
948
+
949
+ 2014-04-16 Lars Kanis <kanis@comcard.de>
950
+
951
+ * History.rdoc, lib/pg.rb:
952
+ Bump VERSION to 0.18.0
953
+ [91ea8734d053]
954
+
955
+ 2014-04-15 Lars Kanis <lars@greiz-reinsdorf.de>
956
+
957
+ * ext/pg.h, ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
958
+ ext/pg_coder.c, ext/pg_text_decoder.c, ext/pg_text_encoder.c,
959
+ lib/pg/coder.rb:
960
+ Use full qualified name for Coder#name.
961
+
962
+ Remove duplicated code in coder definitions.
963
+ [7ca87a46a91c]
964
+
965
+ 2014-04-15 Lars Kanis <kanis@comcard.de>
966
+
967
+ * Manifest.txt:
968
+ Update Manifest.txt
969
+ [02c6ce33a90c]
970
+
971
+ * ext/pg_binary_decoder.c, ext/pg_binary_encoder.c,
972
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c:
973
+ Remove duplicated @name accessors.
974
+ [13cc22a2b729]
975
+
976
+ 2014-04-15 Lars Kanis <lars@greiz-reinsdorf.de>
977
+
978
+ * ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
979
+ ext/pg_binary_encoder.c, ext/pg_coder.c, ext/pg_text_decoder.c,
980
+ ext/pg_text_encoder.c, lib/pg.rb, lib/pg/coder.rb, lib/pg/type.rb,
981
+ spec/pg/type_spec.rb:
982
+ Add ability to Marshal.dump/load PG::Type objects.
983
+
984
+ This should help to use PG::Type in ActiveRecord.
985
+
986
+ This also fixes base classes for Composite coders.
987
+ [ef0ef4b51e0d]
988
+
989
+ 2014-04-14 Lars Kanis <kanis@comcard.de>
990
+
991
+ * README.rdoc:
992
+ Update README according to changes in type mapping.
993
+ [fe3b1cd9850b]
994
+
995
+ 2014-04-13 Lars Kanis <lars@greiz-reinsdorf.de>
996
+
997
+ * Manifest.txt, ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c,
998
+ lib/pg.rb, lib/pg/simple_type.rb, lib/pg/type.rb,
999
+ spec/pg/type_spec.rb:
1000
+ Add a common base class PG::Type for PG::SimpleType and
1001
+ PG::CompositeType.
1002
+
1003
+ "some kind of PG::Type" sounds a little bit better than SimpleType.
1004
+ [2a385bd22f7c]
1005
+
1006
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_binary_decoder.c,
1007
+ ext/pg_binary_encoder.c, ext/pg_column_mapping.c,
1008
+ ext/pg_text_decoder.c, ext/pg_text_encoder.c, ext/pg_type.c,
1009
+ ext/pg_type_binary_decoder.c, ext/pg_type_binary_encoder.c,
1010
+ ext/pg_type_text_decoder.c, ext/pg_type_text_encoder.c, lib/pg.rb,
1011
+ lib/pg/basic_type_mapping.rb, lib/pg/simple_type.rb,
1012
+ lib/pg/text_decoder.rb, lib/pg/text_encoder.rb,
1013
+ lib/pg/type/simple_type.rb, lib/pg/type/text_decoder.rb,
1014
+ lib/pg/type/text_encoder.rb, lib/pg/type/type.rb,
1015
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb,
1016
+ spec/pg/type_spec.rb:
1017
+ Remove namespace PG::Type and move all contained classes in PG
1018
+ namespace.
1019
+
1020
+ Rename function names accordingly.
1021
+ [c5886a74623c]
1022
+
1023
+ 2014-04-12 Lars Kanis <lars@greiz-reinsdorf.de>
1024
+
1025
+ * spec/pg/result_spec.rb:
1026
+ Remove needless == in spec.
1027
+ [03d3a7c68f8f]
1028
+
1029
+ * Manifest.txt, lib/pg.rb, lib/pg/basic_type_mapping.rb,
1030
+ lib/pg/column_mapping.rb, lib/pg/result.rb, lib/pg/type.rb,
1031
+ spec/pg/column_mapping_spec.rb, spec/pg/connection_spec.rb,
1032
+ spec/pg/result_spec.rb:
1033
+ Change BasicTypeMapping so that it uses type information from the
1034
+ DB.
1035
+
1036
+ Align specs to the latest type code refactoring.
1037
+ [ad90adcc1ae3]
1038
+
1039
+ * ext/pg_column_mapping.c, lib/pg/type/simple_type.rb,
1040
+ lib/pg/type/text_decoder.rb, lib/pg/type/text_encoder.rb,
1041
+ lib/pg/type/type.rb:
1042
+ Fix colmap_init. It was the wrong variable name.
1043
+ [eb13e786adec]
1044
+
1045
+ 2014-04-11 Lars Kanis <lars@greiz-reinsdorf.de>
1046
+
1047
+ * spec/pg/type_spec.rb:
1048
+ Convert and add several new test cases to SimpleType and
1049
+ CompositType.
1050
+ [d07abe17054c]
1051
+
1052
+ * ext/pg_type_text_encoder.c:
1053
+ Avoid calling enc_func twice for array encoding.
1054
+
1055
+ This did lead to wrong behaviour on array of ruby defined types when
1056
+ using quotation.
1057
+ [767e1049ea08]
1058
+
1059
+ * ext/pg_type_binary_decoder.c, ext/pg_type_binary_encoder.c,
1060
+ ext/pg_type_text_decoder.c, ext/pg_type_text_encoder.c:
1061
+ Add String en/decoder.
1062
+ [d420f9b92bf3]
1063
+
1064
+ * ext/pg_type.c:
1065
+ Ensure encoder output is a string and decoder input is a string.
1066
+ [fd943340acac]
1067
+
1068
+ 2014-04-09 Lars Kanis <lars@greiz-reinsdorf.de>
1069
+
1070
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1071
+ ext/pg_type.c, ext/pg_type_binary_decoder.c,
1072
+ ext/pg_type_binary_encoder.c, ext/pg_type_text_decoder.c,
1073
+ ext/pg_type_text_encoder.c:
1074
+ WIP: Major refactoring of the type mapping code and API.
1075
+
1076
+ Now we distinguish between Encoders/Decoders and Types on Ruby
1077
+ level.
1078
+ [48e40627d66b]
1079
+
1080
+ 2014-04-04 Lars Kanis <lars@greiz-reinsdorf.de>
1081
+
1082
+ * spec/pg/connection_spec.rb:
1083
+ Cleanup test tables, so that these two test cases can be executed
1084
+ multiple times.
1085
+ [3c450594f574]
1086
+
1087
+ 2014-03-31 Lars Kanis <kanis@comcard.de>
1088
+
1089
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/type.rb,
1090
+ spec/pg/type_spec.rb:
1091
+ Allow composition of types in Ruby space, so that we can combine
1092
+ Ruby and C converters.
1093
+ [e25ee59f5bff]
1094
+
1095
+ 2014-03-31 Lars Kanis <lars@greiz-reinsdorf.de>
1096
+
1097
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1098
+ ext/pg_type.c:
1099
+ Add composit types that allow mixed C/Ruby implementation of
1100
+ base/elem converters.
1101
+ [c5a3c68fe2bb]
1102
+
1103
+ 2014-03-24 Lars Kanis <kanis@comcard.de>
1104
+
1105
+ * .travis.yml:
1106
+ Fix windows build on travis-ci.
1107
+ [0fc7eee486c8]
1108
+
1109
+ * lib/pg/type_mapping.rb:
1110
+ Merge branch 'column_type_mapping' of https://github.com/larskanis
1111
+ /ruby-pg into column_type_mapping
1112
+ [8e785f697ba7]
1113
+
1114
+ 2014-03-23 Lars Kanis <lars@greiz-reinsdorf.de>
1115
+
1116
+ * Manifest.txt, spec/pg/array_parser_spec.rb, spec/pg/type_spec.rb:
1117
+ Merge array_parser_spec.rb into type_spec.rb. Update Manifest.txt.
1118
+ [23907cc8d0f2]
1119
+
1120
+ * spec/lib/helpers.rb, spec/pg/column_mapping_spec.rb:
1121
+ Type encoding: Verify that the type OIDs match our expectation when
1122
+ encoding values.
1123
+ [4a4f58d3a058]
1124
+
1125
+ 2014-03-22 Lars Kanis <lars@greiz-reinsdorf.de>
1126
+
1127
+ * ext/pg_type.c, spec/pg/type_spec.rb:
1128
+ Fix conversion of Bignums to integer for text format.
1129
+ [987713eeca05]
1130
+
1131
+ * lib/pg/basic_type_mapping.rb, spec/pg/array_parser_spec.rb,
1132
+ spec/pg/column_mapping_spec.rb:
1133
+ Add basic type mapping for array types.
1134
+ [112cc249775b]
1135
+
1136
+ * ext/pg_type.c:
1137
+ Add float type conversions for text format.
1138
+ [d45c09db59c9]
1139
+
1140
+ * ext/pg_type.c:
1141
+ Text array encoding: Store all intermediate values into a single
1142
+ array even of converting multi dimensional arrays.
1143
+
1144
+ Add integer encoding for text format.
1145
+ [d95cc34a5119]
1146
+
1147
+ * ext/pg_type.c:
1148
+ Add inttypes.h since we're using int_t types.
1149
+ [c3a4655c70c5]
1150
+
1151
+ * ext/pg_type.c:
1152
+ Array type encoding: Avoid unnecessary copying of data.
1153
+ [78a8caa47042]
1154
+
1155
+ 2014-03-21 Lars Kanis <lars@greiz-reinsdorf.de>
1156
+
1157
+ * ext/pg_type.c, spec/pg/array_parser_spec.rb:
1158
+ Add array encoding for text format.
1159
+ [54682c69398f]
1160
+
1161
+ * spec/pg/column_mapping_spec.rb:
1162
+ Fix typo in column_mapping_spec.rb
1163
+ [007d45ed9ab5]
1164
+
1165
+ * ext/pg_column_mapping.c:
1166
+ Fix wrong type check due to 274d3e533.
1167
+ [51a9632e9a33]
1168
+
1169
+ 2014-02-25 Lars Kanis <lars@greiz-reinsdorf.de>
1170
+
1171
+ * ext/pg_type.c:
1172
+ Add encode/decode methods to CConverters only if corresponding C
1173
+ functions are defined.
1174
+
1175
+ This allowes simple detection of the capablities per respond_to? .
1176
+ [16209f4f9b70]
1177
+
1178
+ * ext/pg_connection.c:
1179
+ Use variable length arrays on the stack for intermediates while
1180
+ param value convertion.
1181
+
1182
+ This avoids malloc/free overhead, frees the memory before the
1183
+ function call and ensures proper GC protection.
1184
+ [44a016bc84fa]
1185
+
1186
+ 2014-02-19 Lars Kanis <lars@greiz-reinsdorf.de>
1187
+
1188
+ * ext/pg_type.c:
1189
+ Fix value.inspect in raised exception.
1190
+ [2af869fcf933]
1191
+
1192
+ * README.rdoc:
1193
+ Add paths to implementation files in README.
1194
+ [d6ca799ef38c]
1195
+
1196
+ 2014-02-18 Lars Kanis <lars@greiz-reinsdorf.de>
1197
+
1198
+ * ext/pg_result.c:
1199
+ Avoid 'result has been cleared' error in case of UnableToSend.
1200
+
1201
+ Avoid double checking per pgresult_get().
1202
+ [4a478da0839a]
1203
+
1204
+ * README.rdoc, ext/pg_connection.c, ext/pg_result.c,
1205
+ spec/pg/connection_spec.rb:
1206
+ Allow connection wide assignment of type_mapping.
1207
+ [ecd58ff267b1]
1208
+
1209
+ * ext/pg_type.c:
1210
+ Add missing string termination to array conversion.
1211
+ [f2dcc3692737]
1212
+
1213
+ * ext/pg_type.c, spec/pg/array_parser_spec.rb,
1214
+ spec/pg/column_mapping_spec.rb:
1215
+ Add array type conversions.
1216
+ [e667a761e93b]
1217
+
1218
+ * ext/pg_type.c, spec/pg/type_spec.rb:
1219
+ Allow Type.decode to be called without tuple and field args.
1220
+ [e6089af0d283]
1221
+
1222
+ * lib/pg.rb, lib/pg/basic_type_mapping.rb, lib/pg/type_mapping.rb:
1223
+ Rename file so that it matches the class name.
1224
+ [95a4b6841516]
1225
+
1226
+ 2014-02-13 Lars Kanis <lars@greiz-reinsdorf.de>
1227
+
1228
+ * .travis.yml:
1229
+ Update travis config.
1230
+ [8082f9d17c76]
1231
+
1232
+ * README.rdoc, lib/pg/result.rb:
1233
+ Tweak documentation.
1234
+ [c5e439d9ee9d]
1235
+
1236
+ * spec/pg/column_mapping_spec.rb:
1237
+ Fix test for time input type cast.
1238
+ [a217e1a4d4ac]
1239
+
1240
+ * spec/pg/connection_spec.rb:
1241
+ Do raise test per plpgsql on PostgreSQL-9.2+ only.
1242
+ [99301f365b41]
1243
+
1244
+ 2014-02-13 Lars Kanis <kanis@comcard.de>
1245
+
1246
+ * spec/pg/connection_spec.rb:
1247
+ Restrict raise test with plpgsql to PostgreSQL-9.0+
1248
+ [62ad91254117]
1249
+
1250
+ 2014-02-12 Lars Kanis <lars@greiz-reinsdorf.de>
1251
+
1252
+ * lib/pg/type_mapping.rb:
1253
+ Add missing type_mapping.rb
1254
+ [33238fce4d0b]
1255
+
1256
+ * README.rdoc, ext/pg_connection.c, ext/pg_result.c, lib/pg.rb,
1257
+ lib/pg/column_mapping.rb, lib/pg/result.rb, lib/pg/type.rb,
1258
+ spec/pg/column_mapping_spec.rb, spec/pg/connection_spec.rb,
1259
+ spec/pg/result_spec.rb:
1260
+ Implement BasicTypeMapping as a replacement to the Hash based
1261
+ DEFAULT_OID/DEFAULT_TYPE mechanism.
1262
+ [08fe2daeda55]
1263
+
1264
+ 2014-02-11 Lars Kanis <lars@greiz-reinsdorf.de>
1265
+
1266
+ * README.rdoc:
1267
+ Add description of the type cast architecture.
1268
+ [e57f8662f564]
1269
+
1270
+ 2014-01-06 Lars Kanis <lars@greiz-reinsdorf.de>
1271
+
1272
+ * ext/pg_connection.c, spec/pg/connection_spec.rb:
1273
+ Ensure all memory is free'd in case of exceptions in
1274
+ alloc_query_params()
1275
+ [efb0fdf2af3d]
1276
+
1277
+ 2014-01-01 Lars Kanis <lars@greiz-reinsdorf.de>
1278
+
1279
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_connection.c,
1280
+ ext/pg_type.c, lib/pg.rb, lib/pg/column_mapping.rb,
1281
+ lib/pg/result.rb, lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
1282
+ spec/pg/result_spec.rb:
1283
+ Add optional type casting to input parameters
1284
+
1285
+ Refactor decoding code
1286
+ [19491546392d]
1287
+
1288
+ 2013-12-28 Lars Kanis <lars@greiz-reinsdorf.de>
1289
+
1290
+ * ext/pg_connection.c:
1291
+ Refactor processing of query params, which was almost equal for
1292
+ exec_params, exec_prepared, send_query and send_query_prepared.
1293
+ [a3b5e9405825]
1294
+
1295
+ 2013-12-23 Lars Kanis <lars@greiz-reinsdorf.de>
1296
+
1297
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/type.rb,
1298
+ spec/pg/column_mapping_spec.rb, spec/pg/type_spec.rb:
1299
+ Detach type decoders from Result, so that they could be used with
1300
+ COPY.
1301
+
1302
+ Change type encoders to a two pass mechanism, which could also be
1303
+ used with COPY.
1304
+ [40e8c382c3ad]
1305
+
1306
+ 2013-12-21 Lars Kanis <lars@greiz-reinsdorf.de>
1307
+
1308
+ * ext/pg_column_mapping.c, ext/pg_type.c:
1309
+ Always map NULL values to Qnil.
1310
+
1311
+ This removes duplicated code from type converters and will speedup
1312
+ converters implemented in ruby.
1313
+ [af270f5e3ddf]
1314
+
1315
+ 2013-12-13 Lars Kanis <lars@greiz-reinsdorf.de>
1316
+
1317
+ * ext/pg.h, ext/pg_column_mapping.c, ext/pg_type.c, lib/pg/result.rb,
1318
+ lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
1319
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
1320
+ more WIP: Add bidirectional type mapping
1321
+ [1ea69ac572c0]
1322
+
1323
+ 2013-12-09 Lars Kanis <lars@greiz-reinsdorf.de>
1324
+
1325
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_column_mapping.c,
1326
+ ext/pg_result.c, ext/pg_type.c, lib/pg.rb, lib/pg/result.rb,
1327
+ lib/pg/type.rb, spec/pg/column_mapping_spec.rb,
1328
+ spec/pg/result_spec.rb, spec/pg/type_spec.rb:
1329
+ WIP: Add bidiractional type mapping
1330
+ [a89d4991f444]
1331
+
1332
+ 2013-12-07 Lars Kanis <lars@greiz-reinsdorf.de>
1333
+
1334
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
1335
+ Add a (quite incomplete) default mapping of OIDs to PG::Result and
1336
+ allow distinct mappings for text and binary formats to
1337
+ Result#map_types! .
1338
+
1339
+ Add documentation to Result#map_types! .
1340
+ [d137dfe12905]
1341
+
1342
+ 2013-07-19 Lars Kanis <kanis@comcard.de>
1343
+
1344
+ * spec/pg/column_mapping_spec.rb:
1345
+ Too less quoting. Should fix compat with PostgreSQL 8.4.
1346
+ [f502d245ea55]
1347
+
1348
+ 2013-07-18 Lars Kanis <kanis@comcard.de>
1349
+
1350
+ * Manifest.txt:
1351
+ Add missing files to Manifest.txt.
1352
+ [b5c94ff41d4e]
1353
+
1354
+ * Manifest.txt, ext/pg_column_mapping.c, ext/util.c, ext/util.h:
1355
+ Add compat with Windows platform.
1356
+ [5780ddc9c111]
1357
+
1358
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1359
+ Add compat with Ruby-1.8.7.
1360
+ [ab892e597042]
1361
+
1362
+ * spec/pg/column_mapping_spec.rb:
1363
+ Use old BYTEA escaping for compat with PostgreSQL 8.4
1364
+ [aa7b76abda66]
1365
+
1366
+ 2013-07-04 Lars Kanis <lars@greiz-reinsdorf.de>
1367
+
1368
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1369
+ Add BinaryBolean converter.
1370
+
1371
+ Refactor converter tests.
1372
+ [7f70efce09f0]
1373
+
1374
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1375
+ Add BinaryFloat converter.
1376
+ [57942116c746]
1377
+
1378
+ 2013-07-03 Lars Kanis <lars@greiz-reinsdorf.de>
1379
+
1380
+ * ext/pg_column_mapping.c, lib/pg/result.rb,
1381
+ spec/pg/column_mapping_spec.rb, spec/pg/result_spec.rb:
1382
+ Change ColumnMapping#initialize to take one Array arg rather than a
1383
+ parameter list.
1384
+
1385
+ Suggested by Aaron: https://groups.google.com/d/msg/ruby-
1386
+ pg/PE5K6q9RzBs/M5prOno39DEJ
1387
+ [2606fc4f350e]
1388
+
1389
+ * spec/pg/result_spec.rb:
1390
+ Add test case for all value retrieving methods of PG::Result .
1391
+ [970d02cee164]
1392
+
1393
+ * spec/pg/column_mapping_spec.rb:
1394
+ Add test case for default_mapping in Result#map_types!
1395
+ [dbcf59dcc118]
1396
+
1397
+ * lib/pg/result.rb, spec/pg/column_mapping_spec.rb:
1398
+ Add convenience method PG::Result#map_types!
1399
+ [3e900bc457e8]
1400
+
1401
+ * spec/pg/column_mapping_spec.rb:
1402
+ Add Boolean ColumnMapping spec and do Integer a bit more compact.
1403
+ [34f6e4b23fae]
1404
+
1405
+ 2013-07-01 Lars Kanis <kanis@comcard.de>
1406
+
1407
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb:
1408
+ Add converter BinaryInteger.
1409
+ [6ccf466e1537]
1410
+
1411
+ * ext/pg_column_mapping.c, spec/pg/column_mapping_spec.rb,
1412
+ spec/pg/result_spec.rb:
1413
+ Use instances of PG::ColumnMapping::CConverter as representation of
1414
+ the buildin converters instead of plain symbols. Symbol arguments
1415
+ are converted to these instances, for convenience.
1416
+
1417
+ This allows to store and retrieve additional informations to the
1418
+ conversion and also which conversions are supported.
1419
+ [ccf7ec4cd083]
1420
+
1421
+ * ext/pg_column_mapping.c:
1422
+ Don't depend on TYPE(obj)==T_DATA of a proc object for compat with
1423
+ rubinius.
1424
+ [f4f6f25434dd]
1425
+
1426
+ 2013-06-29 Lars Kanis <lars@greiz-reinsdorf.de>
1427
+
1428
+ * ext/pg.c, ext/pg.h, ext/pg_column_mapping.c, ext/pg_result.c,
1429
+ spec/pg/result_spec.rb:
1430
+ Add column based type mapping.
1431
+
1432
+ This allowes to speed up result retrieval by directly converting
1433
+ integer and float values to proper ruby types.
1434
+ [71ddc0446d26]
1435
+
1436
+ 2014-10-11 Michael Granger <ged@FaerieMUD.org>
1437
+
1438
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
1439
+ Merged with 4cc778c5ead7
1440
+ [67bb0f34ca05]
1441
+
1442
+ 2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
1443
+
1444
+ * Rakefile, Rakefile.cross, ext/extconf.rb:
1445
+ gcc option -static-libgcc is required for i386-mingw32 build.
1446
+
1447
+ Don't use native pg_config for cross build. The paths were
1448
+ overwritten anyways until now.
1449
+
1450
+ Remove code that was only needed for static build to libpq.
1451
+ [4cc778c5ead7]
1452
+
1453
+ 2014-10-09 Lars Kanis <kanis@comcard.de>
1454
+
1455
+ * Rakefile, Rakefile.cross, lib/pg.rb:
1456
+ Bundle libpq.dll into gem, because PostgreSQL-9.3 does no longer
1457
+ support static linking.
1458
+ [a37e27d356e5]
1459
+
1460
+ 2014-10-04 Lars Kanis <lars@greiz-reinsdorf.de>
1461
+
1462
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
1463
+ Add missing spec for hash form parameters to #exec_params .
1464
+ [04a6a0136a12]
1465
+
1466
+ 2014-08-24 Lars Kanis <lars@greiz-reinsdorf.de>
1467
+
1468
+ * ext/pg_connection.c:
1469
+ Change all remaining Oid <-> VALUE conversions to UINT.
1470
+ [bae3928a7b09]
1471
+
1472
+ * .travis.yml:
1473
+ 'gem install rake-compiler' is still needed for cross build.
1474
+ [591c4b0f2d69]
1475
+
1476
+ * lib/pg/connection.rb, spec/pg/connection_spec.rb:
1477
+ Add Connection.conndefaults_hash and add specs for conndefault
1478
+ variants.
1479
+ [2221655210da]
1480
+
1481
+ * .travis.yml:
1482
+ Travis uses the Gemfile, so 'gem install' is obsolete.
1483
+ [4feb9bc05f2f]
1484
+
1485
+ 2014-08-23 Lars Kanis <lars@greiz-reinsdorf.de>
1486
+
1487
+ * .travis.yml, Rakefile.cross:
1488
+ Fix cross build for mingw32.
1489
+ [f97f4b2cf0c9]
1490
+
1491
+ * Rakefile.cross:
1492
+ Update postgresql and openssl versions for windows cross build.
1493
+ [f34546022095]
1494
+
1495
+ * .travis.yml:
1496
+ Fix travis build
1497
+ [daf56926b7d6]
1498
+
1499
+ * .travis.yml:
1500
+ Update travis test environment
1501
+ [cdb7c193ba29]
1502
+
1503
+ 2014-08-22 Lars Kanis <lars@greiz-reinsdorf.de>
1504
+
1505
+ * Gemfile:
1506
+ Update Gemfile
1507
+ [a044c5419ff7]
1508
+
1509
+ * ext/extconf.rb, ext/pg_connection.c, lib/pg/connection.rb,
1510
+ spec/pg/connection_spec.rb:
1511
+ Test for PQconninfo availability and exclude conninfo and
1512
+ conninfo_hash otherwise.
1513
+ [f2692d108f46]
1514
+
1515
+ 2014-08-20 Michael Granger <ged@FaerieMUD.org>
1516
+
1517
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
1518
+ Check connection status with a matcher in specs
1519
+ [b32840b98e4b]
1520
+
1521
+ * ext/pg_connection.c, lib/pg/connection.rb,
1522
+ spec/pg/connection_spec.rb:
1523
+ Implement PG::Connection#conninfo and use it to test #188
1524
+ [affbd590e74e]
1525
+
1526
+ 2014-07-23 Mina Naguib <mina.github@naguib.ca>
1527
+
1528
+ * ext/pg_result.c:
1529
+ Fix some type mismatches for Oid return values.
1530
+
1531
+ Thanks to Mina Naguib for the fix.
1532
+ [738d4c4125a1]
1533
+
1534
+ 2014-07-23 Michael Granger <ged@FaerieMUD.org>
1535
+
1536
+ * Manifest.txt:
1537
+ Fix the path to spec helpers in the manifest
1538
+ [b3f9e94a258c]
1539
+
1540
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
1541
+
1542
+ * Merge with 6c2444dc63e1
1543
+ [d7160a9fb5dc]
1544
+
1545
+ 2013-12-30 Lars Kanis <lars@greiz-reinsdorf.de>
1546
+
1547
+ * ext/pg_connection.c:
1548
+ Fix typo in documentation.
1549
+ [6c2444dc63e1]
1550
+
1551
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
1552
+
1553
+ * .rvm.gems, Rakefile, spec/helpers.rb, spec/lib/helpers.rb,
1554
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb, spec/pg_spec.rb:
1555
+ Convert specs to expect syntax for RSpec 3
1556
+ [c9108c846ab2]
1557
+
1558
+ 2013-12-18 Michael Granger <ged@FaerieMUD.org>
1559
+
1560
+ * .hgtags:
1561
+ Added tag v0.17.1 for changeset 78846e47d87b
1562
+ [a5ab7f06aa1d]
1563
+
1564
+ * .hgsigs:
1565
+ Added signature for changeset 22d57e3a2b37
1566
+ [78846e47d87b] [v0.17.1]
1567
+
1568
+ * History.rdoc, lib/pg.rb:
1569
+ Bump the patch version, set the date in History.
1570
+ [22d57e3a2b37]
1571
+
1
1572
  2013-12-17 Lars Kanis <kanis@comcard.de>
2
1573
 
3
1574
  * History.rdoc:
4
1575
  Update History file
5
- [ebd0e140f78d] [tip]
1576
+ [ebd0e140f78d]
6
1577
 
7
1578
  2013-12-16 larskanis <lars@greiz-reinsdorf.de>
8
1579
 
@@ -49,7 +1620,7 @@
49
1620
 
50
1621
  * ext/pg_connection.c, lib/pg/connection.rb:
51
1622
  Fix documentation for PG::Connection::conndefaults.
52
- [9812218e0654] [github/master]
1623
+ [9812218e0654]
53
1624
 
54
1625
  2013-09-20 Lars Kanis <lars@greiz-reinsdorf.de>
55
1626