Book a Demo

Author Topic: v15.1 – Deleting invalid package object in CC only deletes the t_object  (Read 3715 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
This one is a bit "left field".  We only discovered this when attempting to add some functionality by direct manipulation of the DB.
  • Our usual approach to this is to run the Consistency Checker to clear out any errors.
  • Perform our functionality
  • Run the Consistency Checker to check if we introduced any errors.

We didn't quite get package creation correct the first time (and indeed, it requires 3 queries to fully set up a package correctly, in both t_package and t_object).  Running the Consistency Checker revealed that while it correctly detected an invalid package, it only deleted the t_object item, it did not delete the t_package item.  Even though the ea_guid link was available.

This created a self-inconsistent DB content - which was not detectable by the Consistency Checker.  I can hazard a guess why the CC didn't detect the "dangling" t_package entry.  But point out that it didn't dangle until the t_object entry was deleted.

We have to be assured that if the CC reports NO Errors, there are NO errors.

Reported,
Paolo

Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
it did not delete the t_package item.  Even though the ea_guid link was available.

Invalid package object means that the t_object entry isn't linked to the t_package entry. That link is via PDATA1=Package_ID, not matching guids.

If the link is missing the other way EA doesn't consider it an integrity issue because it can create it on the fly. (eg. when the package is selected in the browser)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
it did not delete the t_package item.  Even though the ea_guid link was available.

Invalid package object means that the t_object entry isn't linked to the t_package entry. That link is via PDATA1=Package_ID, not matching GUIDs.
If the link is missing the other way EA doesn't consider it an integrity issue because it can create it on the fly. (eg. when the package is selected in the browser)
[/b
(my emphasis)  Can you explain what you mean by that?
I thought that EA would treat the "dangling" t_package entry as roots, but then the roots would have parents - which is structurally defective, yes?

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!