Search



Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The most common type of error when generating a snapshot is to ignore rule 3 and/or 4. For example, it is reasonable to want to filter a view so that only active components are included. However, if you apply that filter in a way that restricts the substrate from which the snapshot is generated you will get incorrect results in which all components appear to be active even after they have been inactivated. An example of this error is shown on 

Caption label
CapIdfull-eg
CapTypeTable
Full Release as at 2019-01-31
ideffectiveTimeactivevalue
A201701311Red
B201701311Amber
C201701311Yellow
A201801310Red
B201801311Orange
D201801311Green
B201901310Orange
E201901311Blue


The following query when applied to the full release data shown in 

Caption reference
CapRefIdfull-eg
CapRefTypeTable
 generates the erroneous snapshot view shown in 
Caption reference
CapRefIdsnap-err
CapRefTypeTable
.  This query excludes inactive rows at the same time as identifying the most recent effectiveTime. The result is that components A and B are shown as active because the later rows that inactivated those components were excluded.

Code Block
Select * from `component` `c` where
 `c`.`effectiveTime`=(Select max(effectiveTime) from `component` where `id`=`c`.`id` and active=1)



Caption label
CapIdsnap-err
CapTypeTable
Erroneous Snapshot view as at 2019-01-31
ideffectiveTimeactivevalue
A201701311Red
C201701311Yellow
B201801311Orange
D201801311Green
E201901311Blue


The following query when applied to the full release data shown in 

Caption reference
CapRefIdfull-eg
CapRefTypeTable
 generates the correct snapshot view shown in 
Caption reference
CapRefIdsnap-ok
CapRefTypeTable
. The most recent versions of all the components A-E are included. In the case of components A and B these are both inactive.


Code Block
Select * from `component` `c` 
 where `c`.`effectiveTime`=(Select max(effectiveTime) from `component` where `id`=`c`.`id`)
Caption label
CapIdsnap-ok
CapTypeTable
Erroneous Snapshot view as at 2019-01-31
ideffectiveTimeactivevalue
C201701311Yellow
A201801310Red
D201801311Green
B201901310Orange
E201901311Blue


The following query when applied to the full release data shown in 

Caption reference
CapRefIdfull-eg
CapRefTypeTable
 generates the correct snapshot view shown in 
Caption reference
CapRefIdsnap-active
CapRefTypeTable
 with inactive rows filtered out after generating the snapshot view. Only components C-E are included as the most recent versions of components A and B are inactive.


Code Block
Select * from `component` `c` 
 where `c`.`active`=1
 and `c`.`effectiveTime`=(Select max(effectiveTime) from `component` where `id`=`c`.`id`)
Caption label
CapIdsnap-ok
CapTypeTable
Correct Snapshot view as at 2019-01-31 with inactive rows excluded
ideffectiveTimeactivevalue
C201701311Yellow
D201801311Green
E201901311Blue