waldit 0.0.18 → 0.0.20
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/waldit/version.rb +1 -1
- data/lib/waldit/watcher.rb +28 -6
- data/rbi/waldit.rbi +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e89f236a107159502d3d667c1073d39152cee8ba5923f3ef2a7f008e6ae78814
|
|
4
|
+
data.tar.gz: 1bc36fdd5dd1580f5ebbf3bc8cbe301cc6a9be74d467c561998289fe6d38e84e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ebf0fe008ddcc05e90ec6d6931a22153a45c58d7f73f94b01af3d7a33ba23406dd99a38b265d932b764ce0db38ca36f7c2df37a74c194d97b3b1a79df78a8e21
|
|
7
|
+
data.tar.gz: 9b4abee181b3c3a04399c7e2614018c9bc9bc65026cd6c28e89e3b74a7c47a4e3262cfbea882d59cf725a26f98c6f13d6dc2419c61ab6b5c7d871e2c6c62b361
|
data/lib/waldit/version.rb
CHANGED
data/lib/waldit/watcher.rb
CHANGED
|
@@ -52,16 +52,22 @@ module Waldit
|
|
|
52
52
|
.map { |diff| [diff, tables.filter { |table| Waldit.store_changes.call(table).include? diff }] }
|
|
53
53
|
.to_h
|
|
54
54
|
|
|
55
|
-
log_new = (changes[:new] || []).map { |table| "#{table}" }
|
|
56
|
-
log_old = (changes[:old] || []).map { |table| "#{table}" }
|
|
57
|
-
log_diff = (changes[:diff] || []).map { |table| "#{table}" }
|
|
55
|
+
log_new = (changes[:new] || []).map { |table| "#{table}" }
|
|
56
|
+
log_old = (changes[:old] || []).map { |table| "#{table}" }
|
|
57
|
+
log_diff = (changes[:diff] || []).map { |table| "#{table}" }
|
|
58
58
|
|
|
59
59
|
@connection.exec_prepared("waldit_finish", [
|
|
60
60
|
event.transaction_id,
|
|
61
61
|
event.timestamp,
|
|
62
|
-
"{#{log_new}}",
|
|
63
|
-
"{#{log_old}}",
|
|
64
|
-
"{#{log_diff}}",
|
|
62
|
+
"{#{log_new.join(",")}}",
|
|
63
|
+
"{#{log_old.join(",")}}",
|
|
64
|
+
"{#{log_diff.join(",")}}",
|
|
65
|
+
])
|
|
66
|
+
|
|
67
|
+
@connection.exec_prepared("waldit_cleanup", [
|
|
68
|
+
event.transaction_id,
|
|
69
|
+
"{#{(log_new + log_old).join(",")}}",
|
|
70
|
+
"{#{log_diff.join(",")}}",
|
|
65
71
|
])
|
|
66
72
|
|
|
67
73
|
# We sucessful retried a connection, let's reset our retry state
|
|
@@ -118,6 +124,7 @@ module Waldit
|
|
|
118
124
|
prepare_delete
|
|
119
125
|
prepare_delete_cleanup
|
|
120
126
|
prepare_finish
|
|
127
|
+
prepare_cleanup
|
|
121
128
|
end
|
|
122
129
|
|
|
123
130
|
def prepare_insert
|
|
@@ -187,5 +194,20 @@ module Waldit
|
|
|
187
194
|
SQL
|
|
188
195
|
rescue PG::DuplicatePstatement
|
|
189
196
|
end
|
|
197
|
+
|
|
198
|
+
def prepare_cleanup
|
|
199
|
+
@connection.prepare("waldit_cleanup", <<~SQL)
|
|
200
|
+
DELETE FROM #{record.table_name}
|
|
201
|
+
WHERE
|
|
202
|
+
transaction_id = $1
|
|
203
|
+
AND action = 'update'::waldit_action
|
|
204
|
+
AND (
|
|
205
|
+
(diff IS NULL AND table_name = ANY ($3::varchar[]))
|
|
206
|
+
OR
|
|
207
|
+
(new = old AND table_name = ANY ($2::varchar[]))
|
|
208
|
+
)
|
|
209
|
+
SQL
|
|
210
|
+
rescue PG::DuplicatePstatement
|
|
211
|
+
end
|
|
190
212
|
end
|
|
191
213
|
end
|
data/rbi/waldit.rbi
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: waldit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.20
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rodrigo Navarro
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2025-
|
|
10
|
+
date: 2025-10-16 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: wal
|