Icon View Incident Report

Serious Serious
Reported By: Rolf Frei
Reported On: 5/21/2017
For: Version 2.25 Build 5
# 4527 Queries with Sensitive Result Sets Improperly Evaluating SELECT Expressions During WHERE Execution

I have wrote an external function which work very well from a normal Select without any WHERE clause. If there is a WHERE clause, I get very strange behaviours as follow.

I have the following queries.

The first query runs as expected and retursn 40'000 records imediatly (0.0 sec.).This is fine so far.

The second query is extremly slow and nees to run about 45 seconds and returns something about 700 records.

If I now remove the function from the Select list, it runs fine and brings a result as expected after 0.7 seconds. As soon I have a function in the select field liest and there is Where condition, it gets extremly slow.

select partno, description_l1, eesFilterWords(Description_l1, true) from parts;

select partno, description_l1, eesFilterWords(Description_l1, true) from parts
where upper(description_l1) like '%WINDOWS%';

Comments Comments
This bug wasn't due to EDB being designed to work this way. What was going on was that the code that accommodates queries on derived tables with expressions that return sensitive result sets was being triggered for normal queries that *didn't* use derived tables, but also returned sensitive result sets.

This is essentially how EDB was executing the query, and was the source of the bug:

select partno, description_l1
FROM (Select *, eesFilterWords(Description_l1, true) from parts) Test where maingroup = 'Tinte';

Resolution Resolution
Fixed Problem on 5/24/2017 in version 2.26 build 1

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