Icon View Incident Report

Serious Serious
Reported By: Fernando Dias
Reported On: 6/10/2008
For: Version 2.00 Build 1
# 2653 Joins that Have Multiple Dependencies Can Cause Incorrect Results

The following join statement is returning 2 wrong rows. The result has 8 rows, but it should have only 6.

SELECT
  A.IdA, B.IdB, C.IdC
FROM
  A
  INNER JOIN B ON (B.IdA = A.IdA) or (B.IdA is null)
  INNER JOIN C ON ((C.IdB = B.IdB) or (C.IdB is null)) and ((C.IdA = 
A.IdA) or (C.IdA is null))
ORDER BY
  IdA, IdB ,IdC



Comments Comments
The issue was the internal join "pushing" algorithm in EDB that attempts to push joins as high as possible in the FROM table order to improve the join performance.


Resolution Resolution
Fixed Problem on 6/14/2008 in version 2.00 build 2


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