pg 0.14.1-x86-mingw32 → 0.15.0.pre.432-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +2 -0
- data/ChangeLog +424 -28
- data/Contributors.rdoc +1 -1
- data/History.rdoc +35 -0
- data/Manifest.txt +3 -0
- data/README.rdoc +5 -3
- data/Rakefile +0 -1
- data/Rakefile.cross +2 -2
- data/ext/extconf.rb +4 -0
- data/ext/gvl_wrappers.c +13 -0
- data/ext/gvl_wrappers.h +185 -0
- data/ext/pg.c +8 -4
- data/ext/pg.h +3 -0
- data/ext/pg_connection.c +451 -350
- data/ext/pg_result.c +8 -11
- data/lib/1.8/pg_ext.so +0 -0
- data/lib/1.9/pg_ext.so +0 -0
- data/lib/pg.rb +1 -1
- data/lib/pg/connection.rb +22 -2
- data/lib/pg/result.rb +6 -1
- data/sample/array_insert.rb +20 -0
- data/sample/async_api.rb +1 -1
- data/sample/async_copyto.rb +1 -1
- data/sample/async_mixed.rb +1 -1
- data/spec/lib/helpers.rb +16 -10
- data/spec/pg/connection_spec.rb +212 -108
- data/spec/pg/result_spec.rb +23 -8
- metadata +54 -30
- metadata.gz.sig +0 -0
data/spec/pg/result_spec.rb
CHANGED
@@ -44,6 +44,13 @@ describe PG::Result do
|
|
44
44
|
res[0]['b'].should== '2'
|
45
45
|
end
|
46
46
|
|
47
|
+
it "should yield a row as an array" do
|
48
|
+
res = @conn.exec("SELECT 1 AS a, 2 AS b")
|
49
|
+
list = []
|
50
|
+
res.each_row { |r| list << r }
|
51
|
+
list.should eq [['1', '2']]
|
52
|
+
end
|
53
|
+
|
47
54
|
it "should insert nil AS NULL and return NULL as nil" do
|
48
55
|
res = @conn.exec("SELECT $1::int AS n", [nil])
|
49
56
|
res[0]['n'].should be_nil()
|
@@ -66,13 +73,14 @@ describe PG::Result do
|
|
66
73
|
should == 'relation "nonexistant_table" does not exist'
|
67
74
|
result.error_field( PG::PG_DIAG_MESSAGE_DETAIL ).should be_nil()
|
68
75
|
result.error_field( PG::PG_DIAG_MESSAGE_HINT ).should be_nil()
|
69
|
-
|
76
|
+
statement_pos = RSpec.configuration.exclusion_filter[:postgresql_90] ? nil : '15'
|
77
|
+
result.error_field( PG::PG_DIAG_STATEMENT_POSITION ).should == statement_pos
|
70
78
|
result.error_field( PG::PG_DIAG_INTERNAL_POSITION ).should be_nil()
|
71
79
|
result.error_field( PG::PG_DIAG_INTERNAL_QUERY ).should be_nil()
|
72
80
|
result.error_field( PG::PG_DIAG_CONTEXT ).should be_nil()
|
73
|
-
result.error_field( PG::PG_DIAG_SOURCE_FILE ).should =~ /parse_relation\.c$/
|
74
|
-
result.error_field( PG::PG_DIAG_SOURCE_LINE ).should
|
75
|
-
result.error_field( PG::PG_DIAG_SOURCE_FUNCTION ).should
|
81
|
+
result.error_field( PG::PG_DIAG_SOURCE_FILE ).should =~ /parse_relation\.c$|namespace\.c$/
|
82
|
+
result.error_field( PG::PG_DIAG_SOURCE_LINE ).should =~ /^\d+$/
|
83
|
+
result.error_field( PG::PG_DIAG_SOURCE_FUNCTION ).should =~ /^parserOpenTable$|^RangeVarGetRelid$/
|
76
84
|
|
77
85
|
end
|
78
86
|
|
@@ -89,7 +97,7 @@ describe PG::Result do
|
|
89
97
|
it "should return the same bytes in binary format that are sent in binary format" do
|
90
98
|
binary_file = File.join(Dir.pwd, 'spec/data', 'random_binary_data')
|
91
99
|
bytes = File.open(binary_file, 'rb').read
|
92
|
-
res = @conn.exec('VALUES ($1::bytea)',
|
100
|
+
res = @conn.exec('VALUES ($1::bytea)',
|
93
101
|
[ { :value => bytes, :format => 1 } ], 1)
|
94
102
|
res[0]['column1'].should== bytes
|
95
103
|
res.getvalue(0,0).should == bytes
|
@@ -111,7 +119,7 @@ describe PG::Result do
|
|
111
119
|
it "should return the same bytes in text format that are sent in binary format" do
|
112
120
|
binary_file = File.join(Dir.pwd, 'spec/data', 'random_binary_data')
|
113
121
|
bytes = File.open(binary_file, 'rb').read
|
114
|
-
res = @conn.exec('VALUES ($1::bytea)',
|
122
|
+
res = @conn.exec('VALUES ($1::bytea)',
|
115
123
|
[ { :value => bytes, :format => 1 } ])
|
116
124
|
PG::Connection.unescape_bytea(res[0]['column1']).should== bytes
|
117
125
|
end
|
@@ -127,8 +135,8 @@ describe PG::Result do
|
|
127
135
|
out_bytes.should == in_bytes
|
128
136
|
end
|
129
137
|
|
130
|
-
it "should return the parameter type of the specified prepared statement parameter" do
|
131
|
-
query = 'SELECT * FROM pg_stat_activity WHERE user = $1::name AND
|
138
|
+
it "should return the parameter type of the specified prepared statement parameter", :postgresql_92 do
|
139
|
+
query = 'SELECT * FROM pg_stat_activity WHERE user = $1::name AND query = $2::text'
|
132
140
|
@conn.prepare( 'queryfinder', query )
|
133
141
|
res = @conn.describe_prepared( 'queryfinder' )
|
134
142
|
|
@@ -260,4 +268,11 @@ describe PG::Result do
|
|
260
268
|
}.to raise_error( PG::Error, /relation "nonexistant_table" does not exist/ )
|
261
269
|
end
|
262
270
|
|
271
|
+
it "can return the values of a single field" do
|
272
|
+
res = @conn.exec( "SELECT 1 AS x, 'a' AS y UNION ALL SELECT 2, 'b'" )
|
273
|
+
res.field_values( 'x' ).should == ['1', '2']
|
274
|
+
res.field_values( 'y' ).should == ['a', 'b']
|
275
|
+
expect{ res.field_values( '' ) }.to raise_error(IndexError)
|
276
|
+
expect{ res.field_values( :x ) }.to raise_error(TypeError)
|
277
|
+
end
|
263
278
|
end
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 2307602505
|
5
|
+
prerelease: 7
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
|
8
|
+
- 15
|
9
|
+
- 0
|
10
|
+
- pre
|
11
|
+
- 432
|
12
|
+
version: 0.15.0.pre.432
|
11
13
|
platform: x86-mingw32
|
12
14
|
authors:
|
13
15
|
- Michael Granger
|
@@ -15,10 +17,9 @@ autorequire:
|
|
15
17
|
bindir: bin
|
16
18
|
cert_chain: []
|
17
19
|
|
18
|
-
date:
|
20
|
+
date: 2013-02-04 00:00:00 Z
|
19
21
|
dependencies:
|
20
22
|
- !ruby/object:Gem::Dependency
|
21
|
-
name: hoe-mercurial
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
@@ -32,11 +33,27 @@ dependencies:
|
|
32
33
|
- 0
|
33
34
|
version: 1.4.0
|
34
35
|
type: :development
|
36
|
+
name: hoe-mercurial
|
35
37
|
version_requirements: *id001
|
36
38
|
- !ruby/object:Gem::Dependency
|
37
|
-
name: rdoc
|
38
39
|
prerelease: false
|
39
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 27
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 1
|
49
|
+
- 0
|
50
|
+
version: 0.1.0
|
51
|
+
type: :development
|
52
|
+
name: hoe-highline
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
57
|
none: false
|
41
58
|
requirements:
|
42
59
|
- - ~>
|
@@ -47,11 +64,11 @@ dependencies:
|
|
47
64
|
- 10
|
48
65
|
version: "3.10"
|
49
66
|
type: :development
|
50
|
-
|
67
|
+
name: rdoc
|
68
|
+
version_requirements: *id003
|
51
69
|
- !ruby/object:Gem::Dependency
|
52
|
-
name: rake-compiler
|
53
70
|
prerelease: false
|
54
|
-
requirement: &
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
55
72
|
none: false
|
56
73
|
requirements:
|
57
74
|
- - ~>
|
@@ -62,11 +79,11 @@ dependencies:
|
|
62
79
|
- 7
|
63
80
|
version: "0.7"
|
64
81
|
type: :development
|
65
|
-
|
82
|
+
name: rake-compiler
|
83
|
+
version_requirements: *id004
|
66
84
|
- !ruby/object:Gem::Dependency
|
67
|
-
name: hoe-deveiate
|
68
85
|
prerelease: false
|
69
|
-
requirement: &
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
70
87
|
none: false
|
71
88
|
requirements:
|
72
89
|
- - ~>
|
@@ -77,22 +94,23 @@ dependencies:
|
|
77
94
|
- 1
|
78
95
|
version: "0.1"
|
79
96
|
type: :development
|
80
|
-
|
97
|
+
name: hoe-deveiate
|
98
|
+
version_requirements: *id005
|
81
99
|
- !ruby/object:Gem::Dependency
|
82
|
-
name: hoe
|
83
100
|
prerelease: false
|
84
|
-
requirement: &
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
85
102
|
none: false
|
86
103
|
requirements:
|
87
104
|
- - ~>
|
88
105
|
- !ruby/object:Gem::Version
|
89
|
-
hash:
|
106
|
+
hash: 15
|
90
107
|
segments:
|
91
108
|
- 3
|
92
|
-
-
|
93
|
-
version: "3.
|
109
|
+
- 4
|
110
|
+
version: "3.4"
|
94
111
|
type: :development
|
95
|
-
|
112
|
+
name: hoe
|
113
|
+
version_requirements: *id006
|
96
114
|
description: |-
|
97
115
|
Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/].
|
98
116
|
|
@@ -101,14 +119,14 @@ description: |-
|
|
101
119
|
A small example usage:
|
102
120
|
|
103
121
|
#!/usr/bin/env ruby
|
104
|
-
|
122
|
+
|
105
123
|
require 'pg'
|
106
|
-
|
124
|
+
|
107
125
|
# Output a table of current connections to the DB
|
108
126
|
conn = PG.connect( dbname: 'sales' )
|
109
127
|
conn.exec( "SELECT * FROM pg_stat_activity" ) do |result|
|
110
128
|
puts " PID | User | Query"
|
111
|
-
|
129
|
+
result.each do |row|
|
112
130
|
puts " %7d | %-16s | %s " %
|
113
131
|
row.values_at('procpid', 'usename', 'current_query')
|
114
132
|
end
|
@@ -129,8 +147,9 @@ extra_rdoc_files:
|
|
129
147
|
- README.rdoc
|
130
148
|
- POSTGRES
|
131
149
|
- LICENSE
|
132
|
-
- ext/
|
150
|
+
- ext/gvl_wrappers.c
|
133
151
|
- ext/pg.c
|
152
|
+
- ext/pg_connection.c
|
134
153
|
- ext/pg_result.c
|
135
154
|
files:
|
136
155
|
- .gemtest
|
@@ -148,6 +167,8 @@ files:
|
|
148
167
|
- Rakefile
|
149
168
|
- Rakefile.cross
|
150
169
|
- ext/extconf.rb
|
170
|
+
- ext/gvl_wrappers.c
|
171
|
+
- ext/gvl_wrappers.h
|
151
172
|
- ext/pg.c
|
152
173
|
- ext/pg.h
|
153
174
|
- ext/pg_connection.c
|
@@ -160,6 +181,7 @@ files:
|
|
160
181
|
- lib/pg/constants.rb
|
161
182
|
- lib/pg/exceptions.rb
|
162
183
|
- lib/pg/result.rb
|
184
|
+
- sample/array_insert.rb
|
163
185
|
- sample/async_api.rb
|
164
186
|
- sample/async_copyto.rb
|
165
187
|
- sample/async_mixed.rb
|
@@ -214,16 +236,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
214
236
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
237
|
none: false
|
216
238
|
requirements:
|
217
|
-
- - "
|
239
|
+
- - ">"
|
218
240
|
- !ruby/object:Gem::Version
|
219
|
-
hash:
|
241
|
+
hash: 25
|
220
242
|
segments:
|
221
|
-
-
|
222
|
-
|
243
|
+
- 1
|
244
|
+
- 3
|
245
|
+
- 1
|
246
|
+
version: 1.3.1
|
223
247
|
requirements: []
|
224
248
|
|
225
249
|
rubyforge_project: pg
|
226
|
-
rubygems_version: 1.8.
|
250
|
+
rubygems_version: 1.8.24
|
227
251
|
signing_key:
|
228
252
|
specification_version: 3
|
229
253
|
summary: Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/]
|
metadata.gz.sig
ADDED
Binary file
|