Icon View Incident Report

Serious Serious
Reported By: Jeff Dunlop
Reported On: 12/14/2010
For: Version 2.04 Build 4
# 3361 Using RIGHT OUTER JOIN Can Cause AV If ElevateDB Tries to Flip Join for Optimization

You should be able to reproduce this AV. Create the table below, and then run the query, it is fine with the time table as a left join, but not as a right.

SELECT   false as HireExtensionFlag
FROM SaleDetail  
INNER JOIN Sale ON (SaleDetail.BusinessCode,SaleDetail.SaleCode) = (Sale.BusinessCode,Sale.SaleCode)
INNER JOIN Product ON SaleDetail.ProductCode = Product.ProductCode  
RIGHT OUTER JOIN MinfosTime ON MinfosTime.TheTimeIs = Sale.SaleTime
WHERE (Sale.SaleDate BETWEEN DATE '2010-11-16' AND DATE '2010-11-16' AND Sale.SaleStatus <> '1' 
AND SaleTime BETWEEN TIME '08:00' AND TIME '21:00' AND ProductType IN (1,2,3,4,7)) 
--GROUP BY TimeGroup
--ORDER BY TimeGroup
JOINOPTIMIZECOSTS



Comments Comments and Workarounds
The problem was due to an error in the way that the internal ROJ expression flipping was occurring.


Resolution Resolution
Fixed Problem on 12/15/2010 in version 2.05 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

Image