riverqueue-sequel 0.12.0 → 0.13.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.
- checksums.yaml +4 -4
- data/lib/driver.rb +16 -4
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bb0d975eb6921905735667d53aeba24da81b090f92af870935bd112cbc9a7b5e
|
|
4
|
+
data.tar.gz: 9f4b514ebc0ac579caeb7eacec5227a9e9e2b497cbfbd9d15366a3795e271ee9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9dc23c4d8a76b28a7d39e3422b011db46d648c3e5c7adfd652e6fa391643a003617362f5edc1e17e71722c1aa5f52d0db35fc95315242c28ab9d4f534c557620
|
|
7
|
+
data.tar.gz: 8fdce85797d7deefb7b82223ac81531bc61962b32a43b96bd29452a8f88e8352dedd2fac1da555e5e194991f281f9c3d5d4468bed82a2c6410404218b63adaf1
|
data/lib/driver.rb
CHANGED
|
@@ -81,8 +81,20 @@ module River::Driver
|
|
|
81
81
|
|
|
82
82
|
# Runs the block in a Sequel transaction or savepoint and returns the
|
|
83
83
|
# block's result.
|
|
84
|
-
def transaction
|
|
85
|
-
|
|
84
|
+
def transaction
|
|
85
|
+
block_error = nil
|
|
86
|
+
@db.transaction(savepoint: true) do
|
|
87
|
+
yield
|
|
88
|
+
rescue ArgumentError => error
|
|
89
|
+
block_error = error
|
|
90
|
+
raise
|
|
91
|
+
end
|
|
92
|
+
rescue ::Sequel::DatabaseError => error
|
|
93
|
+
# SQLite treats ArgumentError as an adapter error, even when it came
|
|
94
|
+
# from an application callback. Preserve that error after rollback.
|
|
95
|
+
raise block_error if block_error && error.wrapped_exception.equal?(block_error)
|
|
96
|
+
|
|
97
|
+
raise
|
|
86
98
|
end
|
|
87
99
|
|
|
88
100
|
SQLITE_CONFLICT_WHERE = <<~SQL.chomp.freeze
|
|
@@ -163,7 +175,7 @@ module River::Driver
|
|
|
163
175
|
"unique_key IS NOT NULL AND unique_states IS NOT NULL AND river_job_state_in_bitmask(unique_states, state)"
|
|
164
176
|
),
|
|
165
177
|
target: [:unique_key],
|
|
166
|
-
update: {kind: ::Sequel[:
|
|
178
|
+
update: {kind: ::Sequel[:river_job][:kind]}
|
|
167
179
|
)
|
|
168
180
|
.returning(::Sequel.lit("*, #{capabilities.unique_insert_sql} AS unique_skipped_as_duplicate"))
|
|
169
181
|
.multi_insert(insert_params_array.map { |p| postgres_insert_params_to_hash(p, nonce) })
|
|
@@ -276,7 +288,7 @@ module River::Driver
|
|
|
276
288
|
FROM json_each(cast(? AS blob))
|
|
277
289
|
WHERE true
|
|
278
290
|
ON CONFLICT (unique_key) WHERE #{SQLITE_CONFLICT_WHERE}
|
|
279
|
-
DO UPDATE SET kind =
|
|
291
|
+
DO UPDATE SET kind = river_job.kind
|
|
280
292
|
RETURNING #{SQLITE_JOB_COLUMNS}
|
|
281
293
|
SQL
|
|
282
294
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: riverqueue-sequel
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Blake Gentry
|
|
@@ -36,14 +36,14 @@ dependencies:
|
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.
|
|
39
|
+
version: 0.13.0
|
|
40
40
|
type: :runtime
|
|
41
41
|
prerelease: false
|
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - '='
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 0.
|
|
46
|
+
version: 0.13.0
|
|
47
47
|
description: Sequel PostgreSQL and SQLite driver for inserting and working River jobs
|
|
48
48
|
in Ruby.
|
|
49
49
|
email: brandur@brandur.org
|