postgres-pr 0.4.0 → 0.5.0

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.
@@ -18,9 +18,35 @@ class Connection
18
18
  # A block which is called with the NoticeResponse object as parameter.
19
19
  attr_accessor :notice_processor
20
20
 
21
+ #
22
+ # Returns one of the following statuses:
23
+ #
24
+ # PQTRANS_IDLE = 0 (connection idle)
25
+ # PQTRANS_INTRANS = 2 (idle, within transaction block)
26
+ # PQTRANS_INERROR = 3 (idle, within failed transaction)
27
+ # PQTRANS_UNKNOWN = 4 (cannot determine status)
28
+ #
29
+ # Not yet implemented is:
30
+ #
31
+ # PQTRANS_ACTIVE = 1 (command in progress)
32
+ #
33
+ def transaction_status
34
+ case @transaction_status
35
+ when ?I
36
+ 0
37
+ when ?T
38
+ 2
39
+ when ?E
40
+ 3
41
+ else
42
+ 4
43
+ end
44
+ end
45
+
21
46
  def initialize(database, user, password=nil, uri = nil)
22
47
  uri ||= DEFAULT_URI
23
48
 
49
+ @transaction_status = nil
24
50
  @params = {}
25
51
  establish_connection(uri)
26
52
 
@@ -61,7 +87,7 @@ class Connection
61
87
  # TODO
62
88
  #p msg
63
89
  when ReadyForQuery
64
- # TODO: use transaction status
90
+ @transaction_status = msg.backend_transaction_status_indicator
65
91
  break
66
92
  else
67
93
  raise "unhandled message type"
@@ -96,6 +122,7 @@ class Connection
96
122
  when CommandComplete
97
123
  result.cmd_tag = msg.cmd_tag
98
124
  when ReadyForQuery
125
+ @transaction_status = msg.backend_transaction_status_indicator
99
126
  break
100
127
  when RowDescription
101
128
  result.fields = msg.fields
@@ -35,6 +35,10 @@ class PGconn
35
35
 
36
36
  alias exec query
37
37
 
38
+ def transaction_status
39
+ @conn.transaction_status
40
+ end
41
+
38
42
  def self.escape(str)
39
43
  # TODO: correct?
40
44
  str.gsub(/\\/){ '\\\\' }.gsub(/'/){ '\\\'' }
@@ -1,3 +1,3 @@
1
1
  module PostgresPR
2
- Version = "0.4.0"
2
+ Version = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,58 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.6
3
- specification_version: 1
4
2
  name: postgres-pr
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.4.0
7
- date: 2005-04-07
8
- summary: A pure Ruby interface to the PostgreSQL (>= 7.4) database
9
- require_paths:
10
- - lib
11
- email: mneumann@ntecs.de
12
- homepage: ruby-dbi.rubyforge.org
13
- rubyforge_project: ruby-dbi
14
- description:
4
+ version: 0.5.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Neumann
15
8
  autorequire:
16
- default_executable:
17
9
  bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-11-03 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: mneumann@ntecs.de
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/postgres-pr
26
+ - lib/postgres-pr/postgres-compat.rb
27
+ - lib/postgres-pr/message.rb
28
+ - lib/postgres-pr/connection.rb
29
+ - lib/postgres-pr/version.rb
30
+ - lib/postgres-pr/typeconv
31
+ - lib/postgres-pr/typeconv/conv.rb
32
+ - lib/postgres-pr/typeconv/array.rb
33
+ - lib/postgres-pr/typeconv/TC_conv.rb
34
+ - lib/postgres-pr/typeconv/bytea.rb
35
+ - lib/buffer.rb
36
+ - lib/binary_writer.rb
37
+ - lib/binary_reader.rb
38
+ - lib/byteorder.rb
39
+ - lib/postgres.rb
40
+ - test/TC_message.rb
41
+ - examples/server.rb
42
+ - examples/test_connection.rb
43
+ - examples/client.rb
44
+ - examples/og
45
+ - examples/og/test.rb
18
46
  has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
47
+ homepage: postgres-pr.rubyforge.org
48
+ post_install_message:
49
+ rdoc_options: []
50
+
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
20
54
  requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ version:
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
25
64
  version:
26
- platform: ruby
27
- authors:
28
- - Michael Neumann
29
- files:
30
- - lib/binary_writer.rb
31
- - lib/byteorder.rb
32
- - lib/postgres-pr
33
- - lib/binary_reader.rb
34
- - lib/postgres.rb
35
- - lib/buffer.rb
36
- - lib/postgres-pr/typeconv
37
- - lib/postgres-pr/connection.rb
38
- - lib/postgres-pr/message.rb
39
- - lib/postgres-pr/postgres-compat.rb
40
- - lib/postgres-pr/version.rb
41
- - lib/postgres-pr/typeconv/array.rb
42
- - lib/postgres-pr/typeconv/bytea.rb
43
- - lib/postgres-pr/typeconv/conv.rb
44
- - lib/postgres-pr/typeconv/TC_conv.rb
45
- - test/TC_message.rb
46
- - examples/og
47
- - examples/client.rb
48
- - examples/server.rb
49
- - examples/test_connection.rb
50
- - examples/og/test.rb
51
- test_files: []
52
- rdoc_options: []
53
- extra_rdoc_files: []
54
- executables: []
55
- extensions: []
56
65
  requirements:
57
- - PostgreSQL >= 7.4
58
- dependencies: []
66
+ - PostgreSQL >= 7.4
67
+ rubyforge_project: postgres-pr
68
+ rubygems_version: 1.2.0
69
+ signing_key:
70
+ specification_version: 2
71
+ summary: A pure Ruby interface to the PostgreSQL (>= 7.4) database
72
+ test_files: []
73
+