pgtk 0.30.5 → 0.30.6

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pgtk/retry.rb +13 -10
  3. data/lib/pgtk/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5007602ed1eb8c77a95905969c85974f1f89250469008aa6cd92bf52d070a60e
4
- data.tar.gz: e50a291add3ea16c4a3ac6cedb223ae0247e262adba559b7edea39f788708ccc
3
+ metadata.gz: 8d867b523fd4754033ba89396c9ea9ed54207fb042cbc44e259caa64ed1f00cb
4
+ data.tar.gz: e6d52c61f2127f3eed1846fb07a5ef4e0619e4c3db2eaba6cd02ea6affd53986
5
5
  SHA512:
6
- metadata.gz: d2345f24e3fe662dc6d1f9fca7fc01505b9ab892cbfe8bb527ac8b743f34bdfac28bd0568a3b41d1ec869796fbec24987f9bf17245c99db30f140abad53514a0
7
- data.tar.gz: eb61998f1a3af79cb76a6adb1d88bf88a525660c1681e7871c083d0ddbaf60e2d0e9eda42e34bc9cff80c9ab141a7831919eda04a2808e82a886f447cdaced94
6
+ metadata.gz: f983b40360a5bd21c1f456ed175f46815a8253a3fa964bca38f7715389c3aa49ba64e13bd23a96a84034fd2f354397973b8caf62f0e376f078aad5d450b1d900
7
+ data.tar.gz: d98d1b32af91520dfec28cbdf73a02795b805d6d3f087b3c7401712c880b84a934d154583ddc0e6ea757811ff449c3738d40eae74dbd43494117186b3bf22add
data/lib/pgtk/retry.rb CHANGED
@@ -79,22 +79,25 @@ class Pgtk::Retry
79
79
  end
80
80
 
81
81
  # Execute a SQL query with automatic retry for SELECT queries.
82
+ # Also retries PG::ConnectionBad errors for all query types, since
83
+ # connection errors indicate the query never reached PostgreSQL.
82
84
  #
83
85
  # @param [String] sql The SQL query with params inside (possibly)
84
86
  # @return [Array] Result rows
85
87
  def exec(sql, *)
86
88
  query = sql.is_a?(Array) ? sql.join(' ') : sql
87
- if query.strip.upcase.start_with?('SELECT')
88
- attempt = 0
89
- begin
90
- @pool.exec(sql, *)
91
- rescue StandardError => e
92
- attempt += 1
93
- raise e if attempt >= @attempts
94
- retry
95
- end
96
- else
89
+ attempt = 0
90
+ begin
97
91
  @pool.exec(sql, *)
92
+ rescue PG::ConnectionBad => e
93
+ attempt += 1
94
+ raise e if attempt >= @attempts
95
+ retry
96
+ rescue StandardError => e
97
+ raise e unless query.strip.upcase.start_with?('SELECT')
98
+ attempt += 1
99
+ raise e if attempt >= @attempts
100
+ retry
98
101
  end
99
102
  end
100
103
 
data/lib/pgtk/version.rb CHANGED
@@ -11,5 +11,5 @@ require_relative '../pgtk'
11
11
  # License:: MIT
12
12
  module Pgtk
13
13
  # Current version of the library.
14
- VERSION = '0.30.5' unless defined?(VERSION)
14
+ VERSION = '0.30.6' unless defined?(VERSION)
15
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgtk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.5
4
+ version: 0.30.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko