Icon View Incident Report

Serious Serious
Reported By: Roy Lambert
Reported On: 7/18/2011
For: Version 2.05 Build 10
# 3488 LENGTH() Function Returning Incorrect Results for Compressed CLOB/BLOB Columns

My test case is the following query. There are two CLOB columns (_Notes and _AdditionalNotes). With both set to compression optimal I get three rows:

31524
31617
33124

Set compression for both to none and I get 1 row:

31495

Set compression for _Notes to optimal _AdditionalNotes to none I get the above three rows
Set compression for _Notes to none _AdditionalNotes to optimal I get just the one row as above

SELECT
*
FROM Calls
WHERE
LENGTH(_Notes) = 54
AND
_fkProjects = 148



Comments Comments
The LENGTH() function was using the low-level BLOB length in the rows as a performance optimization, but unfortunately that value isn't correct when the BLOB is compressed. So be aware that the performance will be slightly slower for the corrected version since EDB will now have to load and examine each BLOB instead of just using the length in the rows.


Resolution Resolution
Fixed Problem on 7/20/2011 in version 2.05 build 11


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