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.
- checksums.yaml +4 -4
- data/lib/pgtk/retry.rb +13 -10
- data/lib/pgtk/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8d867b523fd4754033ba89396c9ea9ed54207fb042cbc44e259caa64ed1f00cb
|
|
4
|
+
data.tar.gz: e6d52c61f2127f3eed1846fb07a5ef4e0619e4c3db2eaba6cd02ea6affd53986
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
88
|
-
|
|
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