Icon View Incident Report

Minor Minor
Reported By: Tiago Ameller
Reported On: 9/28/2010
For: Version 2.04 Build 3
# 3323 Referencing an Outer Column in a Correlated Sub-Query SELECT List Can Cause AV

Executing the following script causes an AV.

SCRIPT ()
BEGIN
   EXECUTE IMMEDIATE 'CREATE TEMPORARY TABLE FHH AS SELECT DISTINCT
M.CODIGO, FECHAHORA FROM YCEVENTO
                      INNER JOIN YCVENDET D ON D.EVENTOINI = CODIGO
                      INNER JOIN YCVENMAS M ON M.CODIGO = D.VENTA
                      WHERE FECHAHORA < DATE ''2010-04-05'' WITH DATA';
   EXECUTE IMMEDIATE 'UPDATE YCVENMAS M SET FECHAHORAVENTA =
                      SELECT
IFNULL(FECHAHORA,M.FECHAHORAVENTA,FECHAHORA) FROM FHH
                      WHERE FHH.CODIGO = M.CODIGO';
END

Workaround:

SCRIPT ()
BEGIN
   BEGIN
      EXECUTE IMMEDIATE 'DROP TABLE FHH';
   EXCEPTION
   END;

   EXECUTE IMMEDIATE 'CREATE TEMPORARY TABLE FHH AS SELECT DISTINCT
M.CODIGO, FECHAHORA FROM YCEVENTO
                      INNER JOIN YCVENDET D ON D.EVENTOINI = CODIGO
                      INNER JOIN YCVENMAS M ON M.CODIGO = D.VENTA
                      WHERE FECHAHORA < DATE ''2010-04-05'' WITH DATA';
   EXECUTE IMMEDIATE 'UPDATE YCVENMAS M SET FECHAHORAVENTA =
IFNULL(SELECT FECHAHORA FROM FHH WHERE FHH.CODIGO = 
M.CODIGO,M.FECHAHORAVENTA,SELECT FECHAHORA FROM FHH WHERE FHH.CODIGO = 
M.CODIGO)';
END



Comments Comments and Workarounds
The issue was with the reference to the M.FECHAHORAVENTA column in the correlated sub-query's SELECT list. The workaround SQL is noted above.


Resolution Resolution
Fixed Problem on 9/29/2010 in version 2.04 build 4


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 VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image