pg_triggers 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/pg_triggers/version.rb +1 -1
- data/lib/pg_triggers.rb +3 -1
- data/spec/counter_cache_spec.rb +2 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 337b518fc8202e64427560ad223fa770f00539e9
|
4
|
+
data.tar.gz: 6c461d6c36aa8de5bf4b851a85559513eb61d7e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23b8997a7baf9f1c270e26da58ba81a7aaf32e6618fa7fc8f88ea6b7fcf92fc2ee50e6434b223b3735f3b9a7ca51e311db48b13fee1f06f0b64cea7e2aa9dc00
|
7
|
+
data.tar.gz: 3a75252387d8ff676e0b2c1b18b2ab7ad6128149cfe8ffd5f12ce4cf38f03624eda793d555ca4744fc95fc3e545e5fe824ea37a728392e612560e9e8b4040103
|
data/CHANGELOG.md
CHANGED
data/lib/pg_triggers/version.rb
CHANGED
data/lib/pg_triggers.rb
CHANGED
@@ -25,13 +25,15 @@ module PgTriggers
|
|
25
25
|
END IF;
|
26
26
|
RETURN NEW;
|
27
27
|
ELSIF (TG_OP = 'UPDATE') THEN
|
28
|
-
IF (#{changed}) THEN
|
28
|
+
IF (#{changed}) OR ((#{condition['OLD']}) <> (#{condition['NEW']})) THEN
|
29
29
|
IF (#{condition['OLD']}) THEN
|
30
30
|
UPDATE #{main_table} SET #{counter_column} = #{counter_column} - 1 WHERE #{where['OLD']};
|
31
31
|
END IF;
|
32
32
|
IF (#{condition['NEW']}) THEN
|
33
33
|
UPDATE #{main_table} SET #{counter_column} = #{counter_column} + 1 WHERE #{where['NEW']};
|
34
34
|
END IF;
|
35
|
+
ELSE
|
36
|
+
|
35
37
|
END IF;
|
36
38
|
RETURN NEW;
|
37
39
|
ELSIF (TG_OP = 'DELETE') THEN
|
data/spec/counter_cache_spec.rb
CHANGED
@@ -178,5 +178,7 @@ describe PgTriggers, 'counter_cache' do
|
|
178
178
|
values.should == [1, 1, 0]
|
179
179
|
DB[:counted_table].where(id: 3).update(counter_id: 1).should == 1
|
180
180
|
values.should == [2, 2, 1]
|
181
|
+
DB[:counted_table].where(id: 1).update(value: 6).should == 1
|
182
|
+
values.should == [2, 3, 2]
|
181
183
|
end
|
182
184
|
end
|