(
 p_Statement_limit INTEGER
)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

                DECLARE v_Statement_limit INTEGER;
           
	            BEGIN
              
			        DECLARE crs CURSOR WITH RETURN FOR
				    SELECT DISTINCT
						     ii.ProgId,
					        prgAlsxyz.AliasName AS ProgramName,
				            pth.PathStr,
				            os.StartRow,
				            CASE
				                WHEN pth.PathID = occ.PathID
				                THEN 0
				                ELSE -1
				            END AS IsCopy
				     FROM Programs prg
				          INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
						  INNER JOIN OccurrencesStmt os ON prg.ProgramID = os.ProgID
						  INNER JOIN IfInfo ii ON ii.OccurId = os.OccurID
					      INNER JOIN Paths pth ON os.PathID = pth.PathID 
						  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
								AND prgAlsxyz.AliasType = 0
					 WHERE (ii.NumberOfStatementsInElseBlock > v_Statement_limit OR ii.NumberOfStatementsInThenBlock > v_Statement_limit)
				           AND ii.ProgId IN (SELECT * FROM SESSION.numeric_param_temp)
				     ORDER BY prgAlsxyz.AliasName,
				              pth.PathStr,
				              os.StartRow;
            
                      SET v_Statement_limit = p_Statement_limit;

                      OPEN crs;
                        
                  END;       
 END ss	
 
 
 
