pg 0.16.0 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6184440b94e368cfb9bb2e9d44cb60f5881522cf
4
- data.tar.gz: b0fdba2debcc80d32430eb11ee646f5b0792e65a
3
+ metadata.gz: 82f24c3c723c5c426929fd7c14b784f8db43fccc
4
+ data.tar.gz: 3ce6e0d944af02a3283c2d51588e988df89da216
5
5
  SHA512:
6
- metadata.gz: 0622fedaa3fcbaf17f8878ac5bd8b750be30fdc389bb541a29d036cf0692af57022dc66e71f68b617bb654f719153228de03e291549b90122d5beb9efb970b43
7
- data.tar.gz: a7005743c4075d16a2143cd6c89a6b04f0a918cf50fe5b262924e71d3f75f6ae64b09dd3ec9e7a4d51e95a74f2fe9c856fe98b1ebb3c29f568826e65906a4e6d
6
+ metadata.gz: eb683af0ecf1711e19a5e497e63d7ca5fe08180db99b373fdbd9e0167d3930bfb55de6fe37f116a0e8d3c520741bef019ebcc15993da905eceb495c03ec23c31
7
+ data.tar.gz: e7255b4ce2802d0b97b4af8fe3a5715bfbffc2aee7d454b1c6bd6eec8b82aa711212467ca0b99a6614355b8ad1f101b9075f443b88d36e648aa0251848923b3f
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- � ��)��fLT"����O���c�(�58�u�w���RF�~�E���L�D��m++�;��
2
- q��K| VHmmp��d�.{UC�\*�k5ܷ�c3,�.��d�=,Z
1
+ �/p
2
+ _ˈ�jN���O��d�u��������w���=�B7���Gơ�ӥ=L�P���)#)�M�����^9⽳:L1�ad�nզr�?� &����ޜr�R\�<�s#*��Xlao@�ϝ{s�6�q��*].[eКDQ�{�޿B5�MY�H��Kx�7�{��T���$�Կ]6E4�{��ddΗ�V7;��I���h�
data.tar.gz.sig CHANGED
@@ -1 +1,2 @@
1
- H2=Ðu�|g��;8�A�/{g��OhE(�� 4���a݃��(Li� ��/������/� �? nL6ŀ����E0Q���{HO?)��u���K��B7f7����� z�6��e>���1��C��t�p�<D��T=�Fx�S���F�˂��p�E���ť�z��������Y�~,}���>�A��V���#N��5��X�86�r��!�{:�.�0�^+�8����_}�#K���m�;�,��^
1
+ 2+��Ѣ���"����M5��c&��X��� A�I9�\�7xhn4G�1=(0R)#O���#z …S`|,�\$�\�\�K�ԓ�G
2
+ |7^`�^6�ui��&�ه^(K���E�;R�ZO1V�>�g�L4=�ZL���Zřw�[�\7h�B���)l/��J;F�X�V�"�+Py\�Ė&�g��b&<Qj8.Ū��SY
data/ChangeLog CHANGED
@@ -1,8 +1,126 @@
1
+ 2013-09-15 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * History.rdoc, lib/pg.rb:
4
+ Bump minor version
5
+ [7cdff0a462e5] [tip]
6
+
7
+ 2013-09-14 Lars Kanis <lars@greiz-reinsdorf.de>
8
+
9
+ * History.rdoc:
10
+ Add change of PG::Result#check to History.rdoc.
11
+ [2b4f876c54f6]
12
+
13
+ * spec/lib/helpers.rb:
14
+ verify_clean_exec_status itself should leave a clean status.
15
+ [933d0f788047]
16
+
17
+ 2013-09-13 Lars Kanis <lars@greiz-reinsdorf.de>
18
+
19
+ * lib/pg.rb, lib/pg/connection.rb, spec/lib/helpers.rb,
20
+ spec/pg/connection_spec.rb:
21
+ Improve Connection#copy_data:
22
+ - ensure and verify a clean exec status for each test case
23
+ - add error PG::NotAllCopyDataRetrieved and a spec for this case
24
+ - fix input/output naming in the specs
25
+ - use ArgumentError instead of PG::Error in case of non-COPY statement
26
+ [b0fd97e58a9a]
27
+
28
+ * History.rdoc, lib/pg.rb:
29
+ Bump VERSION to 0.16.1 and prepare History.rdoc for release.
30
+ [c2bbdcd4ef0f]
31
+
32
+ * lib/pg/connection.rb:
33
+ Fix examples of conn#copy_data and improve the documentation.
34
+ [53d027b0d064]
35
+
36
+ 2013-09-07 Lars Kanis <lars@greiz-reinsdorf.de>
37
+
38
+ * ext/gvl_wrappers.h, ext/pg_connection.c:
39
+ Wrap PQisBusy to be called without GVL. It could trigger the notice
40
+ callback.
41
+ [d93b3ddc69ff]
42
+
43
+ * ext/gvl_wrappers.h, ext/pg_connection.c:
44
+ Wrap all PQsend* functions to be called without GVL.
45
+
46
+ These functions could trigger the notice callback when some notice
47
+ is yet in the buffer. The notice callback needs to be called without
48
+ GVL since it always reaquires the GLV. This fixes issue #171.
49
+ [1fd77c0a4cea]
50
+
51
+ 2013-08-19 Lars Kanis <lars@greiz-reinsdorf.de>
52
+
53
+ * spec/pg/connection_spec.rb:
54
+ Add #copy_data case for non copy statement
55
+ [eea6da92b30a]
56
+
57
+ * ext/pg_connection.c:
58
+ Remove copy examples in favour of #copy_data
59
+ [c549f9878adf]
60
+
61
+ 2013-08-18 Lars Kanis <lars@greiz-reinsdorf.de>
62
+
63
+ * merge tip
64
+ [90252df3c5c8]
65
+
66
+ * lib/pg/connection.rb, spec/pg/connection_spec.rb:
67
+ Add PG::Connection#copy_data as a convenience method.
68
+ [5096385267ab]
69
+
70
+ * ext/pg_result.c:
71
+ Return self from PG::Result#check instead of nil. This allowes to
72
+ stack method calls.
73
+ [8255d4f73334]
74
+
75
+ 2013-08-15 Lars Kanis <lars@greiz-reinsdorf.de>
76
+
77
+ * Rakefile.cross:
78
+ Use RbConfig::CONFIG['CC'] instead of ['host'] for determining cross
79
+ compilation platform.
80
+
81
+ This is 'i586-mingw32msvc-gcc' versus 'i586-pc-mingw32msvc'.
82
+ [fbee9586e8f7] [github/master]
83
+
84
+ 2013-08-14 Lars Kanis <lars@greiz-reinsdorf.de>
85
+
86
+ * Gemfile, Rakefile:
87
+ Add Gemfile for compat with rake-compiler-dev-box.
88
+
89
+ Increase version of rake-compiler to 0.9. That is needed for the
90
+ x64-mingw32 build.
91
+ [355cce5c8566]
92
+
93
+ 2013-08-13 Lars Kanis <lars@greiz-reinsdorf.de>
94
+
95
+ * ext/pg_connection.c:
96
+ Add usage examples for put_copy_data and get_copy_data.
97
+ [9959003173b4]
98
+
99
+ 2013-08-11 Lars Kanis <lars@greiz-reinsdorf.de>
100
+
101
+ * Rakefile:
102
+ Add Lars Kanis to the list of developers in the gemspec.
103
+ [6d3d18452d99]
104
+
105
+ 2013-07-23 Michael Granger <ged@FaerieMUD.org>
106
+
107
+ * .hgtags:
108
+ Added tag v0.16.0 for changeset def8f41a7672
109
+ [315fa9728831]
110
+
111
+ * .hgsigs:
112
+ Added signature for changeset 4e0606f5f5aa
113
+ [def8f41a7672] [v0.16.0]
114
+
115
+ * History.rdoc, lib/pg.rb:
116
+ Bump the version, update history.
117
+ [4e0606f5f5aa]
118
+
1
119
  2013-07-19 Lars Kanis <kanis@comcard.de>
2
120
 
3
121
  * .travis.yml:
4
122
  Travis: Allow failures on rbx.
5
- [7be3b156c8fb] [tip]
123
+ [7be3b156c8fb]
6
124
 
7
125
  2013-07-18 Lars Kanis <kanis@comcard.de>
8
126
 
@@ -45,7 +163,7 @@
45
163
  Use ConnectionBad instead of PG::Error for connection related
46
164
 
47
165
  Replace rb_bug() for PQsocket() failure with rb_raise().
48
- [ddb55d4a44d3] [github/master]
166
+ [ddb55d4a44d3]
49
167
 
50
168
  2013-07-17 Michael Granger <ged@FaerieMUD.org>
51
169
 
@@ -69,8 +187,8 @@
69
187
  Add new error class 'ConnectionBad' that is raised if the connection
70
188
 
71
189
  From 9d0acad61a693b9042842883fa8195ba973bf813 Mon Sep 17 00:00:00
72
- 2001 could not be established. Use 'UnableToSend' error in case
73
- that sending fails with async methods.
190
+ 2001 could not be established. Use 'UnableToSend' error in case that
191
+ sending fails with async methods.
74
192
  [b09cf9da723e]
75
193
 
76
194
  * ext/gvl_wrappers.h, ext/pg_connection.c, spec/pg/connection_spec.rb:
@@ -918,8 +1036,8 @@
918
1036
  From 10cdc23ac4e3cfc91488f3f8a7a44f3275c9fe0a Mon Sep 17 00:00:00
919
1037
  2001 This is used for the new single row mode introduced in
920
1038
  9.2beta3, and indicates a successful result when using that mode.
921
- --- ext/extconf.rb | 1 + ext/pg_result.c | 3 +++ 2 files
922
- changed, 4 insertions(+), 0 deletions(-)
1039
+ --- ext/extconf.rb | 1 + ext/pg_result.c | 3 +++ 2 files changed, 4
1040
+ insertions(+), 0 deletions(-)
923
1041
  [f92b6456c566]
924
1042
 
925
1043
  2012-08-10 Michael Granger <ged@FaerieMUD.org>
@@ -1031,9 +1149,9 @@
1031
1149
  2012-06-12 Mahlon E. Smith <mahlon@laika.com>
1032
1150
 
1033
1151
  * sample/warehouse_partitions.rb:
1034
- Move indexes across tablespaces along with their parents. Remove
1035
- the 'parent table' option, as we can derive that automatically from
1036
- the pg_inherits table.
1152
+ Move indexes across tablespaces along with their parents. Remove the
1153
+ 'parent table' option, as we can derive that automatically from the
1154
+ pg_inherits table.
1037
1155
  [be46f44349bf]
1038
1156
 
1039
1157
  2012-05-07 Michael Granger <ged@FaerieMUD.org>
@@ -1070,31 +1188,28 @@
1070
1188
 
1071
1189
  - disk_usage_report
1072
1190
 
1073
- Quick reporting on the heaviest disk consumers for a
1074
- database. Nice for cronned/email reporting.
1191
+ Quick reporting on the heaviest disk consumers for a database. Nice
1192
+ for cronned/email reporting.
1075
1193
 
1076
1194
  - pg_statistics
1077
1195
 
1078
- Continuous polled statistics for a database.
1079
- Suitable for graphing with gnuplot (example
1080
- included.)
1196
+ Continuous polled statistics for a database. Suitable for graphing
1197
+ with gnuplot (example included.)
1081
1198
 
1082
1199
  - replication_monitor
1083
1200
 
1084
- A command-line monitor for slave replication lag.
1085
- Works for both streaming replication and WAL
1086
- shipping. You should be able to use it as a base to
1087
- plug into your preferred monitoring system.
1201
+ A command-line monitor for slave replication lag. Works for both
1202
+ streaming replication and WAL shipping. You should be able to use it
1203
+ as a base to plug into your preferred monitoring system.
1088
1204
 
1089
1205
  - wal_shipper
1090
1206
 
1091
- A smart WAL file transfer script, similar to
1092
- PITRTools.
1207
+ A smart WAL file transfer script, similar to PITRTools.
1093
1208
 
1094
1209
  - warehouse_partitions
1095
1210
 
1096
- An automated tablespace migrator for older, date-
1097
- based partitioned tables.
1211
+ An automated tablespace migrator for older, date- based partitioned
1212
+ tables.
1098
1213
  [36ca5b412583]
1099
1214
 
1100
1215
  2012-04-02 Michael Granger <ged@FaerieMUD.org>
@@ -2237,10 +2352,9 @@
2237
2352
  * Removed the type OID constants from PGresult; I was including them
2238
2353
  so they could be used for comparison with PGresult#ftype return
2239
2354
  values. RhodiumToad on #postgresql@freenode showed me the
2240
- format_type() SQL function, so I added an example of how to get
2241
- the same information via that function instead, which is
2242
- guaranteed to be correct even if src/include/catalog/pg_type.h
2243
- changes.
2355
+ format_type() SQL function, so I added an example of how to get the
2356
+ same information via that function instead, which is guaranteed to
2357
+ be correct even if src/include/catalog/pg_type.h changes.
2244
2358
  [739cec560448]
2245
2359
 
2246
2360
  * README.windows, Rakefile.local, ext/extconf.rb:
@@ -2448,8 +2562,8 @@
2448
2562
  * ext/pg.c, spec/m17n_spec.rb, spec/pgconn_spec.rb,
2449
2563
  spec/pgresult_spec.rb:
2450
2564
  * Use pg_ctl -w instead of sleep for specs
2451
- * Fix up the specs to use #external_encoding, #internal_encoding,
2452
- and #internal_encoding=
2565
+ * Fix up the specs to use #external_encoding, #internal_encoding, and
2566
+ #internal_encoding=
2453
2567
  * Added a pending spec for Johab (I can't figure out how to return
2454
2568
  JOHAB-encoded results from Postgres)
2455
2569
  [d67c62945540] <i17n-19-patches>
@@ -2543,8 +2657,7 @@
2543
2657
  [c33a73c14126]
2544
2658
 
2545
2659
  * spec/pgconn_spec.rb:
2546
- Ripple port change through text. Always full path to open spec
2547
- file.
2660
+ Ripple port change through text. Always full path to open spec file.
2548
2661
  [241d3410b875]
2549
2662
 
2550
2663
  * spec/pgconn_spec.rb:
@@ -2601,27 +2714,26 @@
2601
2714
  ........ r169 | jdavis | 2008-08-20 19:48:10 -0700 (Wed, 20 Aug
2602
2715
  2008) | 6 lines
2603
2716
 
2604
- Fixed option connection argument in the case of using 7
2605
- arguments.
2717
+ Fixed option connection argument in the case of using 7 arguments.
2606
2718
 
2607
- Thanks Erik Hollensbe (erikh) for the bug report. ........ r170
2608
- | jdavis | 2008-10-05 11:01:40 -0700 (Sun, 05 Oct 2008) | 4 lines
2719
+ Thanks Erik Hollensbe (erikh) for the bug report. ........ r170 |
2720
+ jdavis | 2008-10-05 11:01:40 -0700 (Sun, 05 Oct 2008) | 4 lines
2609
2721
 
2610
- Throw correct exception when result is NULL. ........ r171 |
2611
- jdavis | 2008-10-05 11:47:01 -0700 (Sun, 05 Oct 2008) | 12 lines
2722
+ Throw correct exception when result is NULL. ........ r171 | jdavis
2723
+ | 2008-10-05 11:47:01 -0700 (Sun, 05 Oct 2008) | 12 lines
2612
2724
 
2613
2725
  Fix PGconn#async_exec and PGconn#get_last_result to properly clear
2614
2726
  all results when an exception is raised. Before, the connection
2615
2727
  could be left in a state that is not ready for new commands.
2616
2728
 
2617
- Also, change PGconn#get_result to not raise an exception
2618
- when the result is in an error state. You can still check the
2619
- result object for an error, but it's not appropriate to raise an
2620
- exception, because that could prevent the caller from properly
2621
- clearing all results.
2729
+ Also, change PGconn#get_result to not raise an exception when the
2730
+ result is in an error state. You can still check the result object
2731
+ for an error, but it's not appropriate to raise an exception,
2732
+ because that could prevent the caller from properly clearing all
2733
+ results.
2622
2734
 
2623
- Thanks to Tarmo Tänav. ........ r172 | jdavis | 2008-10-05
2624
- 12:04:45 -0700 (Sun, 05 Oct 2008) | 6 lines
2735
+ Thanks to Tarmo Tänav. ........ r172 | jdavis | 2008-10-05 12:04:45
2736
+ -0700 (Sun, 05 Oct 2008) | 6 lines
2625
2737
 
2626
2738
  Include all libraries listed in "pg_config --libs" in the build.
2627
2739
 
@@ -2696,24 +2808,23 @@
2696
2808
  ........ r149 | jdavis | 2008-03-19 14:17:20 -0700 (Wed, 19 Mar
2697
2809
  2008) | 5 lines
2698
2810
 
2699
- This commmit just cleans up indenting and coding
2700
- conventions. It's a big patch, but does nothing meaningful. ........
2701
- r150 | jdavis | 2008-03-19 14:19:53 -0700 (Wed, 19 Mar 2008) | 5
2702
- lines
2811
+ This commmit just cleans up indenting and coding conventions. It's
2812
+ a big patch, but does nothing meaningful. ........ r150 | jdavis |
2813
+ 2008-03-19 14:19:53 -0700 (Wed, 19 Mar 2008) | 5 lines
2703
2814
 
2704
2815
 
2705
- * forgot to add the expected output to the repository, so one
2706
- test was failing. Corrected now. ........ r151 | jdavis |
2707
- 2008-03-20 11:20:25 -0700 (Thu, 20 Mar 2008) | 12 lines
2816
+ * forgot to add the expected output to the repository, so one test was
2817
+ failing. Corrected now. ........ r151 | jdavis | 2008-03-20 11:20:25
2818
+ -0700 (Thu, 20 Mar 2008) | 12 lines
2708
2819
 
2709
2820
 
2710
2821
  * added PGconn.connect_start(...) -> PGconn
2711
2822
  * added test for PGconn.connect_start()
2712
2823
  * refactored to separate the complexity of parsing the connection
2713
2824
  arguments
2714
- * Removed some superfluous code for old versions of Ruby that
2715
- don't support rb_define_alloc_func(). Those versions of Ruby
2716
- most likely don't work anyway, and I'm not testing them.
2825
+ * Removed some superfluous code for old versions of Ruby that don't
2826
+ support rb_define_alloc_func(). Those versions of Ruby most likely
2827
+ don't work anyway, and I'm not testing them.
2717
2828
 
2718
2829
  ........ r152 | jdavis | 2008-03-20 12:16:06 -0700 (Thu, 20 Mar
2719
2830
  2008) | 5 lines
@@ -2724,8 +2835,8 @@
2724
2835
  10:13:39 -0700 (Mon, 21 Apr 2008) | 4 lines
2725
2836
 
2726
2837
 
2727
- * added some tests for binary data ........ r154 | jdavis |
2728
- 2008-04-21 10:24:05 -0700 (Mon, 21 Apr 2008) | 5 lines
2838
+ * added some tests for binary data ........ r154 | jdavis | 2008-04-21
2839
+ 10:24:05 -0700 (Mon, 21 Apr 2008) | 5 lines
2729
2840
 
2730
2841
 
2731
2842
  * applied patch from Louis Lavena to improve the build process
@@ -2733,20 +2844,19 @@
2733
2844
  10:41:04 -0700 (Mon, 21 Apr 2008) | 6 lines
2734
2845
 
2735
2846
 
2736
- * backtracked a small piece of the patch, to catch the condition
2737
- where pg_config is not in the PATH on posix platforms. ........
2738
- r156 | jdavis | 2008-07-07 23:21:07 -0700 (Mon, 07 Jul 2008) | 6
2739
- lines
2847
+ * backtracked a small piece of the patch, to catch the condition where
2848
+ pg_config is not in the PATH on posix platforms. ........ r156 |
2849
+ jdavis | 2008-07-07 23:21:07 -0700 (Mon, 07 Jul 2008) | 6 lines
2740
2850
 
2741
- Fix oversight in connect arguments for options and
2742
- connect_timeout when passed in a hash. (Thanks Rob Holland for
2743
- the bug report). ........ r157 | jdavis | 2008-07-23 22:33:26
2744
- -0700 (Wed, 23 Jul 2008) | 10 lines
2851
+ Fix oversight in connect arguments for options and connect_timeout
2852
+ when passed in a hash. (Thanks Rob Holland for the bug report).
2853
+ ........ r157 | jdavis | 2008-07-23 22:33:26 -0700 (Wed, 23 Jul
2854
+ 2008) | 10 lines
2745
2855
 
2746
- Changed all temporary allocations to use ALLOC_N (heap
2747
- allocation) rather than ALLOCA_N (stack allocation). In
2748
- particular, this allows PGconn#escape_string to accept larger
2749
- input strings without fear of exceeding the stack size.
2856
+ Changed all temporary allocations to use ALLOC_N (heap allocation)
2857
+ rather than ALLOCA_N (stack allocation). In particular, this allows
2858
+ PGconn#escape_string to accept larger input strings without fear of
2859
+ exceeding the stack size.
2750
2860
 
2751
2861
  Thanks to Brett Neumeier. ........ r158 | jdavis | 2008-07-23
2752
2862
  22:46:34 -0700 (Wed, 23 Jul 2008) | 6 lines
@@ -2756,8 +2866,8 @@
2756
2866
  Thanks to Mohammad Ali (oldmoe) for the report. ........ r159 |
2757
2867
  jdavis | 2008-08-17 11:19:09 -0700 (Sun, 17 Aug 2008) | 4 lines
2758
2868
 
2759
- Applied build patch from Brett Neumeier. Thanks! ........ r160
2760
- | jdavis | 2008-08-17 12:26:33 -0700 (Sun, 17 Aug 2008) | 7 lines
2869
+ Applied build patch from Brett Neumeier. Thanks! ........ r160 |
2870
+ jdavis | 2008-08-17 12:26:33 -0700 (Sun, 17 Aug 2008) | 7 lines
2761
2871
 
2762
2872
  Properly protect variables from garbage collection, preventing
2763
2873
  possible memory corruption.
@@ -2841,20 +2951,20 @@
2841
2951
  * refactored to separate the complexity of parsing the connection
2842
2952
  arguments
2843
2953
  * Removed some superfluous code for old versions of Ruby that don't
2844
- support rb_define_alloc_func(). Those versions of Ruby most
2845
- likely don't work anyway, and I'm not testing them.
2954
+ support rb_define_alloc_func(). Those versions of Ruby most likely
2955
+ don't work anyway, and I'm not testing them.
2846
2956
  [778892302876]
2847
2957
 
2848
2958
  2008-03-19 Jeff Davis <davis.jeffrey@gmail.com>
2849
2959
 
2850
2960
  * spec/data/expected_trace.out:
2851
- * forgot to add the expected output to the repository, so one
2852
- test was failing. Corrected now.
2961
+ * forgot to add the expected output to the repository, so one test
2962
+ was failing. Corrected now.
2853
2963
  [630cca5e74c1]
2854
2964
 
2855
2965
  * ext/pg.c:
2856
- This commmit just cleans up indenting and coding conventions. It's
2857
- a big patch, but does nothing meaningful.
2966
+ This commmit just cleans up indenting and coding conventions. It's a
2967
+ big patch, but does nothing meaningful.
2858
2968
  [661ed2fea9e2]
2859
2969
 
2860
2970
  2008-03-18 Jeff Davis <davis.jeffrey@gmail.com>
@@ -2928,8 +3038,8 @@
2928
3038
  [e94ce7f92a06]
2929
3039
 
2930
3040
  * ext/pg.c:
2931
- * make PGconn#trace accept any object that provides a writable
2932
- file descriptor via the method "fileno".
3041
+ * make PGconn#trace accept any object that provides a writable file
3042
+ descriptor via the method "fileno".
2933
3043
  [221e68f16f2d]
2934
3044
 
2935
3045
  * ext/pg.c:
@@ -2939,9 +3049,8 @@
2939
3049
  2008-03-07 Jeff Davis <davis.jeffrey@gmail.com>
2940
3050
 
2941
3051
  * ext/extconf.rb, ext/mkrf_config.rb:
2942
- * Added check to find pg_config. If not found, throw an error.
2943
- This should make it more obvious when pg_config is not in your
2944
- path.
3052
+ * Added check to find pg_config. If not found, throw an error. This
3053
+ should make it more obvious when pg_config is not in your path.
2945
3054
 
2946
3055
  * Added proper check on MAC OS X so that it gives the correct
2947
3056
  warning on ppc when ARCHFLAGS isn't set.
@@ -3152,13 +3261,12 @@
3152
3261
  2008-01-23 Jeff Davis <davis.jeffrey@gmail.com>
3153
3262
 
3154
3263
  * ext/compat.h, ext/pg.h:
3155
- * had to include that file conditionally in compat.h for
3156
- postgresql 7.3 compatibility
3264
+ * had to include that file conditionally in compat.h for postgresql
3265
+ 7.3 compatibility
3157
3266
  [12b2568a0ada]
3158
3267
 
3159
3268
  * ext/pg.h:
3160
- * included an additional file so that it works with PostgreSQL
3161
- 8.3
3269
+ * included an additional file so that it works with PostgreSQL 8.3
3162
3270
  [34dd04d21a78]
3163
3271
 
3164
3272
  * ext/extconf.rb, ext/pg.c:
@@ -3259,12 +3367,11 @@
3259
3367
  [40270de77f48]
3260
3368
 
3261
3369
  * ext/pg.c:
3262
- Change conn.exec to use PQexec if no parameters are passed, and
3263
- use PQexecParams if optional parameters are passed.
3370
+ Change conn.exec to use PQexec if no parameters are passed, and use
3371
+ PQexecParams if optional parameters are passed.
3264
3372
 
3265
3373
  Change conn.send_query to use PQsendQuery if no parameters are
3266
- passed, and use PQsendQueryParams if optional parameters are
3267
- passed.
3374
+ passed, and use PQsendQueryParams if optional parameters are passed.
3268
3375
  [d05d9f2042d7]
3269
3376
 
3270
3377
  * compat-ruby-postgres/extconf.rb, compat-ruby-postgres/libpq-
data/History.rdoc CHANGED
@@ -1,3 +1,18 @@
1
+ == v0.17.0 [2013-09-15] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Bugfixes:
4
+
5
+ - Fix crash by calling PQsend* and PQisBusy without GVL (#171).
6
+
7
+ Enhancements:
8
+
9
+ - Add method PG::Connection#copy_data.
10
+ - Add a Gemfile to allow installation of dependencies with bundler.
11
+ - Add compatibility with rake-compiler-dev-box.
12
+ - Return self from PG::Result#check instead of nil. This allows
13
+ to stack method calls.
14
+
15
+
1
16
  == v0.16.0 [2013-07-22] Michael Granger <ged@FaerieMUD.org>
2
17
 
3
18
  Bugfixes:
data/Rakefile CHANGED
@@ -38,6 +38,7 @@ CLEAN.include( PKGDIR.to_s, TMPDIR.to_s )
38
38
  Hoe.plugin :mercurial
39
39
  Hoe.plugin :signing
40
40
  Hoe.plugin :deveiate
41
+ Hoe.plugin :bundler
41
42
 
42
43
  Hoe.plugins.delete :rubyforge
43
44
  Hoe.plugins.delete :compiler
@@ -54,9 +55,12 @@ $hoespec = Hoe.spec 'pg' do
54
55
  self.extra_rdoc_files.include( 'ext/*.c' )
55
56
 
56
57
  self.developer 'Michael Granger', 'ged@FaerieMUD.org'
58
+ self.developer 'Lars Kanis', 'lars@greiz-reinsdorf.de'
57
59
 
58
- self.dependency 'rake-compiler', '~> 0.8', :developer
59
- self.dependency 'hoe-deveiate', '~> 0.2', :developer
60
+ self.dependency 'rake-compiler', '~> 0.9', :developer
61
+ self.dependency 'hoe', '~> 3.5.1', :developer
62
+ self.dependency 'hoe-deveiate', '~> 0.2', :developer
63
+ self.dependency 'hoe-bundler', '~> 1.0', :developer
60
64
 
61
65
  self.spec_extras[:licenses] = ['BSD', 'Ruby', 'GPL']
62
66
  self.spec_extras[:extensions] = [ 'ext/extconf.rb' ]
data/Rakefile.cross CHANGED
@@ -72,7 +72,7 @@ class CrossLibrary < OpenStruct
72
72
  self.host_platform = begin
73
73
  config_file = YAML.load_file(File.expand_path("~/.rake-compiler/config.yml"))
74
74
  _, rbfile = config_file.find{|key, fname| key.start_with?("rbconfig-#{for_platform}-") }
75
- IO.read(rbfile).match(/CONFIG\["host"\] = "(.*)"/)[1]
75
+ IO.read(rbfile).match(/CONFIG\["CC"\] = "(.*)"/)[1].sub(/\-gcc/, '')
76
76
  rescue
77
77
  nil
78
78
  end
data/ext/gvl_wrappers.h CHANGED
@@ -168,7 +168,41 @@ void ubf_cancel_running_command(void *c);
168
168
 
169
169
  #define FOR_EACH_PARAM_OF_PQnotifies(param)
170
170
 
171
- /* function( name, void_or_nonvoid, returntype, lastparamtype, lastparamname ) */
171
+ #define FOR_EACH_PARAM_OF_PQsendQuery(param) \
172
+ param(PGconn *, conn)
173
+
174
+ #define FOR_EACH_PARAM_OF_PQsendQueryParams(param) \
175
+ param(PGconn *, conn) \
176
+ param(const char *, command) \
177
+ param(int, nParams) \
178
+ param(const Oid *, paramTypes) \
179
+ param(const char *const *, paramValues) \
180
+ param(const int *, paramLengths) \
181
+ param(const int *, paramFormats)
182
+
183
+ #define FOR_EACH_PARAM_OF_PQsendPrepare(param) \
184
+ param(PGconn *, conn) \
185
+ param(const char *, stmtName) \
186
+ param(const char *, query) \
187
+ param(int, nParams)
188
+
189
+ #define FOR_EACH_PARAM_OF_PQsendQueryPrepared(param) \
190
+ param(PGconn *, conn) \
191
+ param(const char *, stmtName) \
192
+ param(int, nParams) \
193
+ param(const char *const *, paramValues) \
194
+ param(const int *, paramLengths) \
195
+ param(const int *, paramFormats)
196
+
197
+ #define FOR_EACH_PARAM_OF_PQsendDescribePrepared(param) \
198
+ param(PGconn *, conn)
199
+
200
+ #define FOR_EACH_PARAM_OF_PQsendDescribePortal(param) \
201
+ param(PGconn *, conn)
202
+
203
+ #define FOR_EACH_PARAM_OF_PQisBusy(param)
204
+
205
+ /* function( name, cancel, void_or_nonvoid, returntype, lastparamtype, lastparamname ) */
172
206
  #define FOR_EACH_BLOCKING_FUNCTION(function) \
173
207
  function(PQconnectdb, GVL_NONCANCELABLE, GVL_TYPE_NONVOID, PGconn *, const char *, conninfo) \
174
208
  function(PQconnectStart, GVL_NONCANCELABLE, GVL_TYPE_NONVOID, PGconn *, const char *, conninfo) \
@@ -186,7 +220,15 @@ void ubf_cancel_running_command(void *c);
186
220
  function(PQputCopyData, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, int, nbytes) \
187
221
  function(PQputCopyEnd, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, const char *, errormsg) \
188
222
  function(PQgetCopyData, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, int, async) \
189
- function(PQnotifies, GVL_CANCELABLE, GVL_TYPE_NONVOID, PGnotify *, PGconn *, conn);
223
+ function(PQnotifies, GVL_CANCELABLE, GVL_TYPE_NONVOID, PGnotify *, PGconn *, conn) \
224
+ function(PQsendQuery, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, const char *, query) \
225
+ function(PQsendQueryParams, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, int, resultFormat) \
226
+ function(PQsendPrepare, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, const Oid *, paramTypes) \
227
+ function(PQsendQueryPrepared, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, int, resultFormat) \
228
+ function(PQsendDescribePrepared, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, const char *, stmt) \
229
+ function(PQsendDescribePortal, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, const char *, portal) \
230
+ function(PQisBusy, GVL_CANCELABLE, GVL_TYPE_NONVOID, int, PGconn *, conn);
231
+
190
232
 
191
233
  FOR_EACH_BLOCKING_FUNCTION( DEFINE_GVL_STUB_DECL );
192
234
 
@@ -201,7 +243,7 @@ FOR_EACH_BLOCKING_FUNCTION( DEFINE_GVL_STUB_DECL );
201
243
  #define FOR_EACH_PARAM_OF_notice_receiver_proxy(param) \
202
244
  param(void *, arg)
203
245
 
204
- /* function( name, void_or_nonvoid, returntype, lastparamtype, lastparamname ) */
246
+ /* function( name, cancel, void_or_nonvoid, returntype, lastparamtype, lastparamname ) */
205
247
  #define FOR_EACH_CALLBACK_FUNCTION(function) \
206
248
  function(notice_processor_proxy,, GVL_TYPE_VOID, void, const char *, message) \
207
249
  function(notice_receiver_proxy,, GVL_TYPE_VOID, void, const PGresult *, result) \
data/ext/pg_connection.c CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_connection.c - PG::Connection class extension
3
- * $Id: pg_connection.c,v 854b22230eba 2013/07/18 13:33:09 kanis $
3
+ * $Id: pg_connection.c,v d93b3ddc69ff 2013/09/07 21:12:59 lars $
4
4
  *
5
5
  */
6
6
 
@@ -1610,7 +1610,7 @@ pgconn_send_query(int argc, VALUE *argv, VALUE self)
1610
1610
 
1611
1611
  /* If called with no parameters, use PQsendQuery */
1612
1612
  if(NIL_P(params)) {
1613
- if(PQsendQuery(conn,StringValuePtr(command)) == 0) {
1613
+ if(gvl_PQsendQuery(conn,StringValuePtr(command)) == 0) {
1614
1614
  error = rb_exc_new2(rb_eUnableToSend, PQerrorMessage(conn));
1615
1615
  rb_iv_set(error, "@connection", self);
1616
1616
  rb_exc_raise(error);
@@ -1683,7 +1683,7 @@ pgconn_send_query(int argc, VALUE *argv, VALUE self)
1683
1683
  paramFormats[i] = NUM2INT(param_format);
1684
1684
  }
1685
1685
 
1686
- result = PQsendQueryParams(conn, StringValuePtr(command), nParams, paramTypes,
1686
+ result = gvl_PQsendQueryParams(conn, StringValuePtr(command), nParams, paramTypes,
1687
1687
  (const char * const *)paramValues, paramLengths, paramFormats, resultFormat);
1688
1688
 
1689
1689
  rb_gc_unregister_address(&gc_array);
@@ -1750,7 +1750,7 @@ pgconn_send_prepare(int argc, VALUE *argv, VALUE self)
1750
1750
  paramTypes[i] = NUM2INT(param);
1751
1751
  }
1752
1752
  }
1753
- result = PQsendPrepare(conn, StringValuePtr(name), StringValuePtr(command),
1753
+ result = gvl_PQsendPrepare(conn, StringValuePtr(name), StringValuePtr(command),
1754
1754
  nParams, paramTypes);
1755
1755
 
1756
1756
  xfree(paramTypes);
@@ -1868,7 +1868,7 @@ pgconn_send_query_prepared(int argc, VALUE *argv, VALUE self)
1868
1868
  paramFormats[i] = NUM2INT(param_format);
1869
1869
  }
1870
1870
 
1871
- result = PQsendQueryPrepared(conn, StringValuePtr(name), nParams,
1871
+ result = gvl_PQsendQueryPrepared(conn, StringValuePtr(name), nParams,
1872
1872
  (const char * const *)paramValues, paramLengths, paramFormats,
1873
1873
  resultFormat);
1874
1874
 
@@ -1899,7 +1899,7 @@ pgconn_send_describe_prepared(VALUE self, VALUE stmt_name)
1899
1899
  VALUE error;
1900
1900
  PGconn *conn = pg_get_pgconn(self);
1901
1901
  /* returns 0 on failure */
1902
- if(PQsendDescribePrepared(conn,StringValuePtr(stmt_name)) == 0) {
1902
+ if(gvl_PQsendDescribePrepared(conn,StringValuePtr(stmt_name)) == 0) {
1903
1903
  error = rb_exc_new2(rb_eUnableToSend, PQerrorMessage(conn));
1904
1904
  rb_iv_set(error, "@connection", self);
1905
1905
  rb_exc_raise(error);
@@ -1921,7 +1921,7 @@ pgconn_send_describe_portal(VALUE self, VALUE portal)
1921
1921
  VALUE error;
1922
1922
  PGconn *conn = pg_get_pgconn(self);
1923
1923
  /* returns 0 on failure */
1924
- if(PQsendDescribePortal(conn,StringValuePtr(portal)) == 0) {
1924
+ if(gvl_PQsendDescribePortal(conn,StringValuePtr(portal)) == 0) {
1925
1925
  error = rb_exc_new2(rb_eUnableToSend, PQerrorMessage(conn));
1926
1926
  rb_iv_set(error, "@connection", self);
1927
1927
  rb_exc_raise(error);
@@ -1998,7 +1998,7 @@ static VALUE
1998
1998
  pgconn_is_busy(self)
1999
1999
  VALUE self;
2000
2000
  {
2001
- return PQisBusy(pg_get_pgconn(self)) ? Qtrue : Qfalse;
2001
+ return gvl_PQisBusy(pg_get_pgconn(self)) ? Qtrue : Qfalse;
2002
2002
  }
2003
2003
 
2004
2004
  /*
@@ -2449,6 +2449,9 @@ pgconn_wait_for_notify(int argc, VALUE *argv, VALUE self)
2449
2449
  * is in nonblocking mode, and this command would block).
2450
2450
  *
2451
2451
  * Raises an exception if an error occurs.
2452
+ *
2453
+ * See also #copy_data.
2454
+ *
2452
2455
  */
2453
2456
  static VALUE
2454
2457
  pgconn_put_copy_data(self, buffer)
@@ -2513,6 +2516,8 @@ pgconn_put_copy_end(int argc, VALUE *argv, VALUE self)
2513
2516
  * if the copy is done, or +false+ if the call would
2514
2517
  * block (only possible if _async_ is true).
2515
2518
  *
2519
+ * See also #copy_data.
2520
+ *
2516
2521
  */
2517
2522
  static VALUE
2518
2523
  pgconn_get_copy_data(int argc, VALUE *argv, VALUE self )
@@ -2916,7 +2921,7 @@ pgconn_s_quote_ident(VALUE self, VALUE in_str)
2916
2921
  static void *
2917
2922
  get_result_readable(PGconn *conn)
2918
2923
  {
2919
- return PQisBusy(conn) ? NULL : (void*)1;
2924
+ return gvl_PQisBusy(conn) ? NULL : (void*)1;
2920
2925
  }
2921
2926
 
2922
2927
 
data/ext/pg_result.c CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_result.c - PG::Result class extension
3
- * $Id: pg_result.c,v de6bee6a208c 2013/07/18 13:47:31 kanis $
3
+ * $Id: pg_result.c,v 8255d4f73334 2013/08/18 20:40:08 lars $
4
4
  *
5
5
  */
6
6
 
@@ -74,7 +74,7 @@ pg_result_check( VALUE self )
74
74
  #endif
75
75
  case PGRES_EMPTY_QUERY:
76
76
  case PGRES_COMMAND_OK:
77
- return Qnil;
77
+ return self;
78
78
  case PGRES_BAD_RESPONSE:
79
79
  case PGRES_FATAL_ERROR:
80
80
  case PGRES_NONFATAL_ERROR:
@@ -97,7 +97,7 @@ pg_result_check( VALUE self )
97
97
  rb_exc_raise( exception );
98
98
 
99
99
  /* Not reached */
100
- return Qnil;
100
+ return self;
101
101
  }
102
102
 
103
103
 
data/lib/pg.rb CHANGED
@@ -19,11 +19,13 @@ end
19
19
  module PG
20
20
 
21
21
  # Library version
22
- VERSION = '0.16.0'
22
+ VERSION = '0.17.0'
23
23
 
24
24
  # VCS revision
25
- REVISION = %q$Revision: 4e0606f5f5aa $
25
+ REVISION = %q$Revision: 7cdff0a462e5 $
26
26
 
27
+ class NotAllCopyDataRetrieved < PG::Error
28
+ end
27
29
 
28
30
  ### Get the PG library version. If +include_buildnum+ is +true+, include the build ID.
29
31
  def self::version_string( include_buildnum=false )
data/lib/pg/connection.rb CHANGED
@@ -74,6 +74,91 @@ class PG::Connection
74
74
  return connopts.join(' ')
75
75
  end
76
76
 
77
+ # call-seq:
78
+ # conn.copy_data( sql ) {|sql_result| ... } -> PG::Result
79
+ #
80
+ # Execute a copy process for transfering data to or from the server.
81
+ #
82
+ # This issues the SQL COPY command via #exec. The response to this
83
+ # (if there is no error in the command) is a PG::Result object that
84
+ # is passed to the block, bearing a status code of PGRES_COPY_OUT or
85
+ # PGRES_COPY_IN (depending on the specified copy direction).
86
+ # The application should then use #put_copy_data or #get_copy_data
87
+ # to receive or transmit data rows and should return from the block
88
+ # when finished.
89
+ #
90
+ # #copy_data returns another PG::Result object when the data transfer
91
+ # is complete. An exception is raised if some problem was encountered,
92
+ # so it isn't required to make use of any of them.
93
+ # At this point further SQL commands can be issued via #exec.
94
+ # (It is not possible to execute other SQL commands using the same
95
+ # connection while the COPY operation is in progress.)
96
+ #
97
+ # This method ensures, that the copy process is properly terminated
98
+ # in case of client side or server side failures. Therefore, in case
99
+ # of blocking mode of operation, #copy_data is preferred to raw calls
100
+ # of #put_copy_data, #get_copy_data and #put_copy_end.
101
+ #
102
+ # Example with CSV input format:
103
+ # conn.exec "create table my_table (a text,b text,c text,d text,e text)"
104
+ # conn.copy_data "COPY my_table FROM STDOUT CSV" do
105
+ # conn.put_copy_data "some,csv,data,to,copy\n"
106
+ # conn.put_copy_data "more,csv,data,to,copy\n"
107
+ # end
108
+ # This creates +my_table+ and inserts two rows.
109
+ #
110
+ # Example with CSV output format:
111
+ # conn.copy_data "COPY my_table TO STDOUT CSV" do
112
+ # while row=conn.get_copy_data
113
+ # p row
114
+ # end
115
+ # end
116
+ # This prints all rows of +my_table+ to stdout:
117
+ # "some,csv,data,to,copy\n"
118
+ # "more,csv,data,to,copy\n"
119
+ def copy_data( sql )
120
+ res = exec( sql )
121
+
122
+ case res.result_status
123
+ when PGRES_COPY_IN
124
+ begin
125
+ yield res
126
+ rescue Exception => err
127
+ errmsg = "%s while copy data: %s" % [ err.class.name, err.message ]
128
+ put_copy_end( errmsg )
129
+ get_result
130
+ raise
131
+ else
132
+ put_copy_end
133
+ get_last_result
134
+ end
135
+
136
+ when PGRES_COPY_OUT
137
+ begin
138
+ yield res
139
+ rescue Exception => err
140
+ cancel
141
+ while get_copy_data
142
+ end
143
+ while get_result
144
+ end
145
+ raise
146
+ else
147
+ res = get_last_result
148
+ if res.result_status != PGRES_COMMAND_OK
149
+ while get_copy_data
150
+ end
151
+ while get_result
152
+ end
153
+ raise PG::NotAllCopyDataRetrieved, "Not all COPY data retrieved"
154
+ end
155
+ res
156
+ end
157
+
158
+ else
159
+ raise ArgumentError, "SQL command is no COPY statement: #{sql}"
160
+ end
161
+ end
77
162
 
78
163
  # Backward-compatibility aliases for stuff that's moved into PG.
79
164
  class << self
data/spec/lib/helpers.rb CHANGED
@@ -254,6 +254,12 @@ module PG::TestingHelpers
254
254
  conn_name.should include(app_name[-10..-1])
255
255
  conn_name.length.should <= 64
256
256
  end
257
+
258
+ # Ensure the connection is in a clean execution status.
259
+ def verify_clean_exec_status
260
+ @conn.send_query( "VALUES (1)" )
261
+ @conn.get_last_result.values.should == [["1"]]
262
+ end
257
263
  end
258
264
 
259
265
 
@@ -457,6 +457,101 @@ describe PG::Connection do
457
457
  rval.should include( '5678', '1234' )
458
458
  end
459
459
 
460
+ it "can process #copy_data output queries" do
461
+ rows = []
462
+ res2 = @conn.copy_data( "COPY (SELECT 1 UNION ALL SELECT 2) TO STDOUT" ) do |res|
463
+ res.result_status.should == PG::PGRES_COPY_OUT
464
+ res.nfields.should == 1
465
+ while row=@conn.get_copy_data
466
+ rows << row
467
+ end
468
+ end
469
+ rows.should == ["1\n", "2\n"]
470
+ res2.result_status.should == PG::PGRES_COMMAND_OK
471
+ verify_clean_exec_status
472
+ end
473
+
474
+ it "can handle incomplete #copy_data output queries" do
475
+ expect {
476
+ @conn.copy_data( "COPY (SELECT 1 UNION ALL SELECT 2) TO STDOUT" ) do |res|
477
+ @conn.get_copy_data
478
+ end
479
+ }.to raise_error(PG::NotAllCopyDataRetrieved, /Not all/)
480
+ verify_clean_exec_status
481
+ end
482
+
483
+ it "can handle client errors in #copy_data for output" do
484
+ expect {
485
+ @conn.copy_data( "COPY (SELECT 1 UNION ALL SELECT 2) TO STDOUT" ) do
486
+ raise "boom"
487
+ end
488
+ }.to raise_error(RuntimeError, "boom")
489
+ verify_clean_exec_status
490
+ end
491
+
492
+ it "can handle server errors in #copy_data for output" do
493
+ @conn.exec "ROLLBACK"
494
+ @conn.transaction do
495
+ @conn.exec( "CREATE FUNCTION errfunc() RETURNS int AS $$ BEGIN RAISE 'test-error'; END; $$ LANGUAGE plpgsql;" )
496
+ expect {
497
+ @conn.copy_data( "COPY (SELECT errfunc()) TO STDOUT" ) do |res|
498
+ while @conn.get_copy_data
499
+ end
500
+ end
501
+ }.to raise_error(PG::Error, /test-error/)
502
+ end
503
+ verify_clean_exec_status
504
+ end
505
+
506
+ it "can process #copy_data input queries" do
507
+ @conn.exec( "CREATE TEMP TABLE copytable (col1 TEXT)" )
508
+ res2 = @conn.copy_data( "COPY copytable FROM STDOUT" ) do |res|
509
+ res.result_status.should == PG::PGRES_COPY_IN
510
+ res.nfields.should == 1
511
+ @conn.put_copy_data "1\n"
512
+ @conn.put_copy_data "2\n"
513
+ end
514
+ res2.result_status.should == PG::PGRES_COMMAND_OK
515
+
516
+ verify_clean_exec_status
517
+
518
+ res = @conn.exec( "SELECT * FROM copytable ORDER BY col1" )
519
+ res.values.should == [["1"], ["2"]]
520
+ end
521
+
522
+ it "can handle client errors in #copy_data for input" do
523
+ @conn.exec "ROLLBACK"
524
+ @conn.transaction do
525
+ @conn.exec( "CREATE TEMP TABLE copytable (col1 TEXT)" )
526
+ expect {
527
+ @conn.copy_data( "COPY copytable FROM STDOUT" ) do |res|
528
+ raise "boom"
529
+ end
530
+ }.to raise_error(RuntimeError, "boom")
531
+ end
532
+ verify_clean_exec_status
533
+ end
534
+
535
+ it "can handle server errors in #copy_data for input" do
536
+ @conn.exec "ROLLBACK"
537
+ @conn.transaction do
538
+ @conn.exec( "CREATE TEMP TABLE copytable (col1 INT)" )
539
+ expect {
540
+ @conn.copy_data( "COPY copytable FROM STDOUT" ) do |res|
541
+ @conn.put_copy_data "xyz\n"
542
+ end
543
+ }.to raise_error(PG::Error, /invalid input syntax for integer/)
544
+ end
545
+ verify_clean_exec_status
546
+ end
547
+
548
+ it "should raise an error for non copy statements in #copy_data" do
549
+ expect {
550
+ @conn.copy_data( "SELECT 1" ){}
551
+ }.to raise_error(ArgumentError, /no COPY/)
552
+
553
+ verify_clean_exec_status
554
+ end
460
555
 
461
556
  it "correctly finishes COPY queries passed to #async_exec" do
462
557
  @conn.async_exec( "COPY (SELECT 1 UNION ALL SELECT 2) TO STDOUT" )
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
8
+ - Lars Kanis
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain:
@@ -30,7 +31,7 @@ cert_chain:
30
31
  6mKCwjpegytE0oifXfF8k75A9105cBnNiMZOe1tXiqYc/exCgWvbggurzDOcRkZu
31
32
  /YSusaiDXHKU2O3Akc3htA==
32
33
  -----END CERTIFICATE-----
33
- date: 2013-07-23 00:00:00.000000000 Z
34
+ date: 2013-09-16 00:00:00.000000000 Z
34
35
  dependencies:
35
36
  - !ruby/object:Gem::Dependency
36
37
  name: hoe-mercurial
@@ -80,14 +81,28 @@ dependencies:
80
81
  requirements:
81
82
  - - ~>
82
83
  - !ruby/object:Gem::Version
83
- version: '0.8'
84
+ version: '0.9'
84
85
  type: :development
85
86
  prerelease: false
86
87
  version_requirements: !ruby/object:Gem::Requirement
87
88
  requirements:
88
89
  - - ~>
89
90
  - !ruby/object:Gem::Version
90
- version: '0.8'
91
+ version: '0.9'
92
+ - !ruby/object:Gem::Dependency
93
+ name: hoe
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 3.5.1
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ~>
104
+ - !ruby/object:Gem::Version
105
+ version: 3.5.1
91
106
  - !ruby/object:Gem::Dependency
92
107
  name: hoe-deveiate
93
108
  requirement: !ruby/object:Gem::Requirement
@@ -103,19 +118,19 @@ dependencies:
103
118
  - !ruby/object:Gem::Version
104
119
  version: '0.2'
105
120
  - !ruby/object:Gem::Dependency
106
- name: hoe
121
+ name: hoe-bundler
107
122
  requirement: !ruby/object:Gem::Requirement
108
123
  requirements:
109
124
  - - ~>
110
125
  - !ruby/object:Gem::Version
111
- version: '3.5'
126
+ version: '1.0'
112
127
  type: :development
113
128
  prerelease: false
114
129
  version_requirements: !ruby/object:Gem::Requirement
115
130
  requirements:
116
131
  - - ~>
117
132
  - !ruby/object:Gem::Version
118
- version: '3.5'
133
+ version: '1.0'
119
134
  description: |-
120
135
  Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/].
121
136
 
@@ -138,6 +153,7 @@ description: |-
138
153
  end
139
154
  email:
140
155
  - ged@FaerieMUD.org
156
+ - lars@greiz-reinsdorf.de
141
157
  executables: []
142
158
  extensions:
143
159
  - ext/extconf.rb
metadata.gz.sig CHANGED
Binary file