Icon View Incident Report

Serious Serious
Reported By: Tim Young
Reported On: 9/12/2008
For: Version 2.01 Build 5
# 2788 Using a RANGE Clause with Multiple Correlated Sub-Queries Can Cause Incorrect Results

While executing the following query I noticed that there's a bug in the latest EDB (2.01 B5) when you use the RANGE clause in a correlated sub-query. The range doesn't get refreshed for multiple executions, so it will return incorrect data.

CREATE TABLE Client
(
ClientID INTEGER,
ClientName VARCHAR(30),
DateOfBirth DATE,
Gender CHAR(1)
)

CREATE TABLE Glucose
(
ClientID INTEGER,
GlucoseDate DATE,
GlucoseValue INTEGER
)

CREATE TABLE BP
(
ClientID INTEGER,
BPDate DATE,
SystolicBP INTEGER,
DiastolicBP INTEGER
)

SELECT ClientID,
ClientName,
DateOfBirth,
(SELECT SystolicBP
FROM BP
WHERE BP.ClientID=Client.ClientID
ORDER BY BPDate DESC
RANGE 1 TO 1) AS SystolicBP,
(SELECT DiastolicBP
FROM BP
WHERE BP.ClientID=Client.ClientID
ORDER BY BPDate DESC
RANGE 1 TO 1) AS DiastolicBP,
(SELECT GlucoseValue
FROM Glucose
WHERE Glucose.ClientID=Client.ClientID
ORDER BY GlucoseDate DESC
RANGE 1 TO 1) AS GlucoseValue
FROM Client
ORDER BY ClientID



Resolution Resolution
Fixed Problem on 9/14/2008 in version 2.02 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 VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image