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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5fd69d976d7bfa873479a91959a658a6759d5865
4
- data.tar.gz: a680642cbb7969e151ad170fccbb82d63c95f5e4
3
+ metadata.gz: 337b518fc8202e64427560ad223fa770f00539e9
4
+ data.tar.gz: 6c461d6c36aa8de5bf4b851a85559513eb61d7e8
5
5
  SHA512:
6
- metadata.gz: 2545b586d2434cca289761fbe9e3cb0011a7fd1069cb7ddeacd7ac36f682b51107eb2bb54b2d88cc77db5a217f5e0170d0958379c05f10b9901b0a341bdf2dbf
7
- data.tar.gz: 14749fe98fbe669e2326801d0a27bf36714ec5f62709d9f879f9e611ad44bb7d6bff1764e8fe13f6844d9c0893772bfd0ec153323cf445ebfd0d7e9fa49523cf
6
+ metadata.gz: 23b8997a7baf9f1c270e26da58ba81a7aaf32e6618fa7fc8f88ea6b7fcf92fc2ee50e6434b223b3735f3b9a7ca51e311db48b13fee1f06f0b64cea7e2aa9dc00
7
+ data.tar.gz: 3a75252387d8ff676e0b2c1b18b2ab7ad6128149cfe8ffd5f12ce4cf38f03624eda793d555ca4744fc95fc3e545e5fe824ea37a728392e612560e9e8b4040103
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 0.0.2 (2014-08-21)
2
+
3
+ * Fix counter cache bug with UPDATEs and :where conditions.
4
+
1
5
  ### 0.0.1 (2014-08-21)
2
6
 
3
7
  * Initial release.
@@ -1,3 +1,3 @@
1
1
  module PgTriggers
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_triggers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Hanks