pg_triggers 0.3.1 → 0.4.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/pg_triggers.rb +6 -6
- data/lib/pg_triggers/version.rb +1 -1
- data/spec/audit_table_spec.rb +1 -1
- data/spec/updated_at_spec.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b034106ce8a65ee639d4de7d52bc301015f52667
|
4
|
+
data.tar.gz: 2b304f1eb3e7c3821dcf18af82d31eab1cec3d6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 836e6c8c91bcef26d189c455327c9961dc0c6538540e97c4dd64a39059f5f08fc1b8d63eb413217871cd02622952611e27ab268a7fb646b1a66dd6d233fba163
|
7
|
+
data.tar.gz: d6f94920e13859f42a363184daa5096b61140ddd2bf381f8f0cafda0ba826fa0dcbd7610db3ef668f87d6b7c400d521d4c83fe192dc0f4078d398e4575076579
|
data/lib/pg_triggers.rb
CHANGED
@@ -5,14 +5,14 @@ module PgTriggers
|
|
5
5
|
def counter_cache(main_table, counter_column, counted_table, relationship, options = {})
|
6
6
|
where = proc { |source| relationship.map{|k, v| "#{k} = #{source}.#{v}"}.join(' AND ') }
|
7
7
|
columns = relationship.values
|
8
|
-
changed = columns.map{|c| "((OLD.#{c} <> NEW.#{c}) OR (OLD.#{c} IS NULL <> NEW.#{c} IS NULL))"}.join(' OR ')
|
8
|
+
changed = columns.map{|c| "((OLD.#{c} <> NEW.#{c}) OR ((OLD.#{c} IS NULL) <> (NEW.#{c} IS NULL)))"}.join(' OR ')
|
9
9
|
value = (options[:value] || 1).to_i
|
10
10
|
name = options[:name] || "pt_cc_#{main_table}_#{counter_column}"
|
11
11
|
|
12
12
|
condition = proc do |source|
|
13
13
|
a = []
|
14
|
-
a << columns.map{|c| "#{source}.#{c} IS NOT NULL"}.join(' AND ')
|
15
|
-
a << options[:where].gsub('ROW.', "#{source}.") if options[:where]
|
14
|
+
a << "(#{columns.map{|c| "(#{source}.#{c} IS NOT NULL)"}.join(' AND ')})"
|
15
|
+
a << "(#{options[:where].gsub('ROW.', "#{source}.")})" if options[:where]
|
16
16
|
a.join(' AND ')
|
17
17
|
end
|
18
18
|
|
@@ -56,14 +56,14 @@ module PgTriggers
|
|
56
56
|
def sum_cache(main_table, sum_column, summed_table, summed_column, relationship, options = {})
|
57
57
|
where = proc { |source| relationship.map{|k, v| "#{k} = #{source}.#{v}"}.join(' AND ') }
|
58
58
|
columns = relationship.values
|
59
|
-
changed = columns.map{|c| "((OLD.#{c} <> NEW.#{c}) OR (OLD.#{c} IS NULL <> NEW.#{c} IS NULL))"}.join(' OR ')
|
59
|
+
changed = columns.map{|c| "((OLD.#{c} <> NEW.#{c}) OR ((OLD.#{c} IS NULL) <> (NEW.#{c} IS NULL)))"}.join(' OR ')
|
60
60
|
multiplier = (options[:multiplier] || 1).to_i
|
61
61
|
name = options[:name] || "pt_sc_#{main_table}_#{sum_column}"
|
62
62
|
|
63
63
|
condition = proc do |source|
|
64
64
|
a = []
|
65
|
-
a << columns.map{|c| "#{source}.#{c} IS NOT NULL"}.join(' AND ')
|
66
|
-
a << options[:where].gsub('ROW.', "#{source}.") if options[:where]
|
65
|
+
a << "(#{columns.map{|c| "#{source}.#{c} IS NOT NULL"}.join(' AND ')})"
|
66
|
+
a << "(#{options[:where].gsub('ROW.', "#{source}.")})" if options[:where]
|
67
67
|
a.join(' AND ')
|
68
68
|
end
|
69
69
|
|
data/lib/pg_triggers/version.rb
CHANGED
data/spec/audit_table_spec.rb
CHANGED
@@ -57,7 +57,7 @@ describe PgTriggers, 'auditing' do
|
|
57
57
|
JSON.parse(r4[:changes]).should == {'item_count' => 1}
|
58
58
|
end
|
59
59
|
|
60
|
-
it "should always record the values of columns in the :
|
60
|
+
it "should always record the values of columns in the :include set" do
|
61
61
|
DB.run PgTriggers.audit_table(:audited_table, include: [:id, :item_count])
|
62
62
|
|
63
63
|
id = DB[:audited_table].insert
|
data/spec/updated_at_spec.rb
CHANGED
@@ -19,7 +19,7 @@ describe PgTriggers, 'updated_at' do
|
|
19
19
|
# The result of now() is the time the transaction began.
|
20
20
|
t = nil
|
21
21
|
DB.transaction do
|
22
|
-
t = DB.get{now
|
22
|
+
t = DB.get{now.function}
|
23
23
|
DB[:updated_at_table].insert(integer_column: 1)
|
24
24
|
DB[:updated_at_table].get(:updated_at).should == t
|
25
25
|
end
|
@@ -31,7 +31,7 @@ describe PgTriggers, 'updated_at' do
|
|
31
31
|
t = nil
|
32
32
|
id = DB[:updated_at_table].insert(integer_column: 1)
|
33
33
|
DB.transaction do
|
34
|
-
t = DB.get{now
|
34
|
+
t = DB.get{now.function}
|
35
35
|
DB[:updated_at_table].update integer_column: 2
|
36
36
|
DB[:updated_at_table].get(:updated_at).should == t
|
37
37
|
end
|
@@ -43,7 +43,7 @@ describe PgTriggers, 'updated_at' do
|
|
43
43
|
DB[:updated_at_table].insert(integer_column: 1)
|
44
44
|
t = nil
|
45
45
|
DB.transaction do
|
46
|
-
t = DB.get{now
|
46
|
+
t = DB.get{now.function}
|
47
47
|
DB[:updated_at_table].update integer_column: 1
|
48
48
|
DB[:updated_at_table].get(:updated_at).should == t
|
49
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_triggers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Hanks
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
135
|
version: '0'
|
136
136
|
requirements: []
|
137
137
|
rubyforge_project:
|
138
|
-
rubygems_version: 2.
|
138
|
+
rubygems_version: 2.6.14
|
139
139
|
signing_key:
|
140
140
|
specification_version: 4
|
141
141
|
summary: Helpers for Postgres Triggers
|