pg_triggers 0.0.1 → 0.0.2

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 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