(
  IN p_fieldID INTEGER,
  IN p_direction SMALLINT
)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
 BEGIN
            DECLARE v_fieldID INTEGER;
            DECLARE v_direction SMALLINT; 
            
            SET v_fieldID =  p_fieldID;            
            SET v_direction = p_direction; -- 1 -> only forward; 2 -> only backward; 0 -> both directions
            

            BEGIN
		    DECLARE crs CURSOR WITH RETURN FOR
		    SELECT  *
		    FROM
		         (
		          SELECT 
				            v.VarID,
				            sf.SqlFieldID,
				            s.Description,
				            os.startrow,
				            pth.PathStr,
				            pt.ProgramType
				     FROM Variables v
				          INNER JOIN StatementReferenceEX srx ON v.VarID = srx.WrittenResourceID
				          INNER JOIN SqlFields sf ON sf.SqlFieldID = srx.ReadResourceID
				          INNER JOIN SqlTables st ON st.SqlTableID = sf.SqlTableID
				          INNER JOIN OccurrencesStmt os ON srx.OccurID = os.OccurID
				          INNER JOIN Statements s ON os.StatementType = s.StatementType
				          INNER JOIN Paths pth ON pth.PathID = os.PathID
				          LEFT OUTER JOIN ProgramTypes pt ON pt.ProgramTypeID = os.SourceType
				     WHERE (0 = v_direction OR 1 = v_direction)
				     		AND srx.ReadResourceType = 187
				            AND sf.SqlFieldID = v_fieldID
				            AND v.VarID IN (SELECT * FROM SESSION.numeric_param_temp)

				     UNION
				
				     SELECT 
				            v.VarID,
				            sf.SqlFieldID,
				            s.Description,
				            os.startrow,
				            pth.PathStr,
				            pt.ProgramType
				     FROM StatementReferenceEX srx
				          INNER JOIN SqlFields sf ON srx.WrittenResourceID = sf.SqlFieldID
				          INNER JOIN Variables v ON srx.ReadResourceID = v.VarID
				          INNER JOIN OccurrencesStmt os ON srx.OccurID = os.OccurID
				          INNER JOIN Statements s ON os.StatementType = s.StatementType
				          INNER JOIN SqlTables st ON sf.SqlTableID = st.SqlTableID
				          INNER JOIN Paths pth ON pth.PathID = os.PathID
				          LEFT OUTER JOIN ProgramTypes pt ON pt.ProgramTypeID = os.SourceType
				     WHERE (0 = v_direction OR 2 = v_direction)
				     		AND srx.WrittenResourceType = 187
				            AND sf.SqlFieldID = v_fieldID
				            AND v.VarID IN (SELECT * FROM SESSION.numeric_param_temp)

		         )src
		     ORDER BY  src.VarID,
			   src.SqlFieldID,
			   src.startrow;    			           						

		    OPEN crs;
			
        END;
END	
