sequel_postgresql_triggers 1.0.4 → 1.0.5

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: 125a5f23b1a05c7b989bd9bac3b9e4569f85af55
4
- data.tar.gz: 24a4466e9bb4c91ec25238d56a3027e3091c684d
3
+ metadata.gz: 6c840eb70121de040c927fd25cf0611cf8c475bb
4
+ data.tar.gz: 39edf714024b57ace34c3aa0be20d10947a27133
5
5
  SHA512:
6
- metadata.gz: 7507b30166920a252b7c583828bb41e0a55531d9a58a9fcbea7e5aca24daad079b80d2e8fe2f9e65d146cf3c720f6b62ec6a2c373e494939ea4d3e9685a73cf4
7
- data.tar.gz: 390410edef60b9930572664d41e94e1356b4959f205ad7389067bbf7d92f6dada7a89b1b475c403abdc228dc4b997c7ec8e2277994289fff64d5f4679ae8defa
6
+ metadata.gz: 5533d19fb6cdf0dbb96c4a09a25dddbb814a189026c8c0d95e674f6a2109180d8b69023399399666e745e47dae48633592bfb757c708eb7ed34868f00169f7e1
7
+ data.tar.gz: 211a34c135965d5585662b1e1fb8f201413443704404742453b2e27ff6ad186c92ce9a2b2525614a991f3da4f9daab866a41bac78b02653f51852986dcae82f4
@@ -126,11 +126,11 @@ module Sequel
126
126
  sql = <<-SQL
127
127
  BEGIN
128
128
  IF (TG_OP = 'INSERT') THEN
129
- UPDATE #{quote_schema_table(touch_table)} SET #{quote_identifier(column)} = CURRENT_TIMESTAMP WHERE #{cond['NEW']} AND #{quote_identifier(column)} <> CURRENT_TIMESTAMP;
129
+ UPDATE #{quote_schema_table(touch_table)} SET #{quote_identifier(column)} = CURRENT_TIMESTAMP WHERE #{cond['NEW']} AND ((#{quote_identifier(column)} <> CURRENT_TIMESTAMP) OR (#{quote_identifier(column)} IS NULL));
130
130
  ELSIF (TG_OP = 'UPDATE') THEN
131
- UPDATE #{quote_schema_table(touch_table)} SET #{quote_identifier(column)} = CURRENT_TIMESTAMP WHERE #{cond['NEW']} AND #{quote_identifier(column)} <> CURRENT_TIMESTAMP;
131
+ UPDATE #{quote_schema_table(touch_table)} SET #{quote_identifier(column)} = CURRENT_TIMESTAMP WHERE #{cond['NEW']} AND ((#{quote_identifier(column)} <> CURRENT_TIMESTAMP) OR (#{quote_identifier(column)} IS NULL));
132
132
  ELSIF (TG_OP = 'DELETE') THEN
133
- UPDATE #{quote_schema_table(touch_table)} SET #{quote_identifier(column)} = CURRENT_TIMESTAMP WHERE #{cond['OLD']} AND #{quote_identifier(column)} <> CURRENT_TIMESTAMP;
133
+ UPDATE #{quote_schema_table(touch_table)} SET #{quote_identifier(column)} = CURRENT_TIMESTAMP WHERE #{cond['OLD']} AND ((#{quote_identifier(column)} <> CURRENT_TIMESTAMP) OR (#{quote_identifier(column)} IS NULL));
134
134
  END IF;
135
135
  RETURN NULL;
136
136
  END;
@@ -220,5 +220,14 @@ describe "PostgreSQL Triggers" do
220
220
  DB[:children].delete
221
221
  DB[:parents].get(:changed_on).should > time
222
222
  end
223
+
224
+ specify "Should update the timestamp on the related table if that timestamp is initially NULL" do
225
+ DB.pgt_touch(:children, :parents, :changed_on, :id1=>:parent_id1)
226
+ DB[:parents] << {:id1=>1, :changed_on=>nil}
227
+ DB[:children] << {:id=>1, :parent_id1=>1}
228
+ changed_on = DB[:parents].get(:changed_on)
229
+ changed_on.should_not == nil
230
+ changed_on.strftime('%F').should == Date.today.strftime('%F')
231
+ end
223
232
  end
224
233
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_postgresql_triggers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-06 00:00:00.000000000 Z
11
+ date: 2014-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  description:
@@ -30,8 +30,8 @@ executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
- - README
34
33
  - MIT-LICENSE
34
+ - README
35
35
  - lib/sequel_postgresql_triggers.rb
36
36
  - spec/sequel_postgresql_triggers_spec.rb
37
37
  homepage: https://github.com/jeremyevans/sequel_postgresql_triggers
@@ -40,9 +40,9 @@ licenses:
40
40
  metadata: {}
41
41
  post_install_message:
42
42
  rdoc_options:
43
- - --inline-source
44
- - --line-numbers
45
- - --title
43
+ - "--inline-source"
44
+ - "--line-numbers"
45
+ - "--title"
46
46
  - 'Sequel PostgreSQL Triggers: Database enforced timestamps, immutable columns, and
47
47
  counter/sum caches'
48
48
  - README
@@ -52,17 +52,17 @@ require_paths:
52
52
  - lib
53
53
  required_ruby_version: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - '>='
55
+ - - ">="
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
64
  rubyforge_project:
65
- rubygems_version: 2.0.3
65
+ rubygems_version: 2.2.0
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: Database enforced timestamps, immutable columns, and counter/sum caches