Icon View Incident Report

Serious Serious
Reported By: Uli Becker
Reported On: 8/19/2017
For: Version 2.26 Build 3
# 4575 Altering a Table in a Database with Dependent Views Can Result in a Table Checksum Mismatch

I have a severe problem with an EDB table:

After altering a table I was not able not open this table any more. Also repairing or exporting is not possible:

ElevateDB Error #100 There is an error in the metadata for the table <TableName> (The internal structure does not match the structure in the catalog)

That's what I changed:

Added: boolean Field "<FieldName>" default "False"

Steps to reproduce:

1. Alteration in EDBManager
2. Starting Delphi 2010
3. Opening a project that accesses this database
4. Trying to add a persistent field to a stored procedure: Error
5. Closing Delphi
6. Opening the table in EDBManager: Error


Comments Comments
This was caused by dependent view (a view that references the table being altered) decompilation when the table was altered causing the table checksum in the database catalog to become out of synch with the checksum stored in the table files. However, in order for this bug to occur the view must reference the database in which the view is defined in the query using a database correlation name. Views that don't include database correlation names that reference the containing database are not affected.

This issue wasn't caught by our alteration tests because it only manifests itself after the current database is close/opened, or another session opens the database for the first time since the alteration. This is due to the fact that ElevateDB caches database catalogs in memory for performance reasons.


Resolution Resolution
Fixed Problem on 8/20/2017 in version 2.26 build 4


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB PHP Standard
ElevateDB PHP Standard with Source
ElevateDB PHP Trial
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image