Icon View Incident Report

Serious Serious
Reported By: Franco Fustini
Reported On: 8/17/2010
For: Version 2.04 Build 1
# 3288 Placing a RETURN Statement Inside of a Nested SQL/PSM Block Causes AV

The following procedure raises an AV (005D07E3 in module 'edbmgr.exe'. Read of address 00000094).

CREATE FUNCTION "TEST_NUM" ()
RETURNS INTEGER
BEGIN
DECLARE I INTEGER DEFAULT -1;

START TRANSACTION ON TABLES COUNTER;
BEGIN
  
  EXECUTE IMMEDIATE 
    'SELECT CNT INTO ? FROM COUNTER;'
    USING I;

  SET I = I + 1;

  EXECUTE IMMEDIATE
    'UPDATE COUNTER SET CNT = ?;'
    USING I;

  COMMIT;                         

  RETURN I;

EXCEPTION
  ROLLBACK;
  RAISE ERROR CODE 10000 MESSAGE 'ROLLBACK' + #13 + ERRORMSG();
END;

END



Comments Comments and Workarounds
ElevateDB was expecting the RETURN statement to always reside in the outer BEGIN..END block. The workaround it to put the RETURN statement there instead of in the nested block.


Resolution Resolution
Fixed Problem on 8/18/2010 in version 2.04 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 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