chrono_model 5.0.0 → 6.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6465bfc1eca17fb499f1826a7b938969bc7306b388ac93bce746a09c75a2c1a4
4
- data.tar.gz: 6958a3018c4a29dbd4b81a56c60bc02d4fc8696780b62fe1ec8778725152e12d
3
+ metadata.gz: 5de7f2efc4eca8866ec730f7ba883099398f4397b54ef24f1d8d2fc4d4ef1b77
4
+ data.tar.gz: 29e07fe3314a3f69dcef2e87db3ae13afd47445b3ff405aaed69dc487eedbfc0
5
5
  SHA512:
6
- metadata.gz: 4f0cf88eb3e21ec2cee85ba744a426e5ab125a71c18e4c7cbe31b45cbb5198f8f8dcbd1e17b87766cf3b386ebaf789fcb9dfd5190bb7e47bf61c3d9824fda490
7
- data.tar.gz: e852d433e7d5c28f69e50511d0f094ae16fcb0f28cfc825273485c607b6e5fb2adc6d9cc82f0ec78c680c6e07392f296bfa27afcfe54d05595c3ac04a1a9e2cb
6
+ metadata.gz: eab2b5147d3b0156f9d5ecc6225cbcb97137a63f5294a78a09620056845696e85088ade7c60cd4556fed3d170cf594fc0accbffba6ae5229695ee2e427019df6
7
+ data.tar.gz: fb79737fb91263d0fdaf2e8b75eae258f522be43b9ed9686546c6dfc9dd74160b70b1cc22c38786e8febedb0053ef5e8d194a3225323f2b29659388298c0147a
@@ -154,10 +154,15 @@ module ChronoModel
154
154
  RETURN NEW;
155
155
  END IF;
156
156
 
157
+ PERFORM 1 FROM ONLY #{current} WHERE #{pk} = OLD.#{pk} FOR UPDATE;
158
+ IF NOT FOUND THEN
159
+ RETURN NULL;
160
+ END IF;
161
+
157
162
  _now := timezone('UTC', now());
158
163
  _hid := NULL;
159
164
 
160
- #{"SELECT hid INTO _hid FROM #{history} WHERE #{pk} = OLD.#{pk} AND lower(validity) = _now;" unless ENV['CHRONOMODEL_NO_SQUASH']}
165
+ #{"SELECT hid INTO _hid FROM #{history} WHERE #{pk} = OLD.#{pk} AND upper_inf(validity) AND lower(validity) >= _now LIMIT 1;" unless ENV['CHRONOMODEL_NO_SQUASH']}
161
166
 
162
167
  IF _hid IS NOT NULL THEN
163
168
  UPDATE #{history} SET (#{fields}) = (#{values}) WHERE hid = _hid;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ChronoModel
4
- VERSION = '5.0.0'
4
+ VERSION = '6.0.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chrono_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcello Barnaba
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
- rubygems_version: 4.0.3
117
+ rubygems_version: 4.0.14
118
118
  specification_version: 4
119
119
  summary: Temporal extensions (SCD Type II) for Active Record
120
120
  test_files: []