LANGUAGE SQL
sp:BEGIN   

-- clean-up temporary tables / session tables
	BEGIN
		DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
		BEGIN END;
		
		COMMIT;
		DROP TABLE SESSION.sr;
		DROP TABLE SESSION.ddcl;
		
	END;

-- declare temp tables
   DECLARE GLOBAL TEMPORARY TABLE session.sr
   (
    IdmsSchemaID INTEGER ,
	IdmsSchemaName VARCHAR(250) ,
	IdmsSubschemaID INTEGER ,
	IdmsSubschemaName VARCHAR(250) ,
	SetOrRecordID INTEGER ,
	SetOrRecordName VARCHAR(250) ,
	StatementTypeId INTEGER ,
	StatementTypeName VARCHAR(50) ,
	ResourceType INTEGER ,
	ResourceTypeName VARCHAR(50) ,
	ResourceTypeGroup1 INTEGER ,
	ResourceTypeGroup2 INTEGER ,
	StmtPathStr VARCHAR(250) ,
	StatementStartRow INTEGER ,
	StatementStartColumn INTEGER ,
	StatementEndRow INTEGER ,
	StatementEndColumn INTEGER ,
	ProgramID INTEGER ,
	ProgramName VARCHAR(256) ,
	ProgramTypeID INTEGER ,
	ProgramPath VARCHAR(250) ,
	ProgStartRow INTEGER ,
	ProgStartCol INTEGER ,
	ProgEndRow INTEGER ,
	ProgEndCol INTEGER ,
	Ancestor VARCHAR(256) ,
	AncestorID INTEGER ,
	AncestorTypeID INTEGER ,
	AncestorStartRow INTEGER ,
	AncestorStartCol INTEGER ,
	AncestorEndRow INTEGER ,
	AncestorEndCol INTEGER ,
	DDCLElementPath VARCHAR(250) ,
	ID INTEGER ,
	DDCLElemCategory INTEGER ,
	DDCLElementName VARGRAPHIC(400) ,
	DDCLElemInfoStartRow INTEGER ,
	DDCLElemInfoEndRow INTEGER ,
	DDCLElemInfoStartCol INTEGER ,
	DDCLElemInfoEndCol INTEGER ,
	SetOrRecordRecordInDDCLID INTEGER 
    ) 
	CCSID UNICODE
	ON COMMIT PRESERVE ROWS NOT LOGGED ;


    DECLARE GLOBAL TEMPORARY TABLE session.ddcl
   (
	IdmsSchemaID INTEGER ,
	IdmsSchemaName VARGRAPHIC(400) ,
	IdmsSubschemaID INTEGER ,
	IdmsSubschemaName VARGRAPHIC(400) ,
	SetOrRecordID INTEGER ,
	SetOrRecordName VARGRAPHIC(512) ,
	StatementTypeId INTEGER ,
	StatementTypeName VARGRAPHIC(256) ,
	ResourceType INTEGER ,
	ResourceTypeName VARCHAR(50) ,
	ResourceTypeGroup1 INTEGER ,
	ResourceTypeGroup2 INTEGER ,
	StmtPathStr VARCHAR(250) ,
	StatementStartRow INTEGER ,
	StatementStartColumn INTEGER ,
	StatementEndRow INTEGER ,
	StatementEndColumn INTEGER ,
	ProgramId INTEGER ,
	ProgramName VARCHAR(256) ,
	ProgramTypeID INTEGER ,
	ProgramPath VARCHAR(250) ,
	ProgStartRow INTEGER ,
	ProgStartCol INTEGER ,
	ProgEndRow INTEGER ,
	ProgEndCol INTEGER ,
	Ancestor VARCHAR(256) ,
	AncestorID INTEGER ,
	AncestorTypeID INTEGER ,
	AncestorStartRow INTEGER ,
	AncestorStartCol INTEGER ,
	AncestorEndRow INTEGER ,
	AncestorEndCol INTEGER ,
	DDCLElementPath VARCHAR(250) ,
	Id INTEGER ,
	DDCLElemCategory INTEGER ,
	DDCLElementName VARGRAPHIC(400) ,
	DDCLElemInfoStartRow INTEGER ,
	DDCLElemInfoEndRow INTEGER ,
	DDCLElemInfoStartCol INTEGER ,
	DDCLElemInfoEndCol INTEGER ,
	SetOrRecordRecordInDDCLID INTEGER 
	 ) 
	 CCSID UNICODE
	 ON COMMIT PRESERVE ROWS NOT LOGGED ;


-- SET + RECORD Area 
   INSERT INTO session.sr
   SELECT isc.ID AS IdmsSchemaID,
		isc.SchemaName AS IdmsSchemaName,
		isub.ID AS IdmsSubschemaID,
		isub.SubschemaName AS IdmsSubschemaName,
		SetOrRecord.SetOrRecordID,
		SetOrRecord.SetOrRecordName,
		st.StatementType AS StatementTypeId,
		st.Description AS StatementTypeName,
		sr.ResourceType ,
		rt.Name AS ResourceTypeName,
		 CASE WHEN sr.ResourceType = 77  THEN 1 
			 WHEN sr.ResourceType = 78  THEN 2 
			 END AS ResourceTypeGroup1,
		1 AS ResourceTypeGroup2,
		pstmt.PathStr AS StmtPathStr,
		os.StartRow AS StatementStartRow,
		os.StartCol AS StatementStartColumn,
		os.EndRow AS StatementEndRow,
		os.EndCol AS StatementEndColumn,
		p.ProgramID,
		p.ProgramName,
		p.ProgramTypeID,
		pth.PathStr AS ProgramPath,
		occ1.StartRow AS ProgStartRow,
		occ1.StartCol AS ProgStartCol,
		occ1.EndRow AS ProgEndRow,
		occ1.EndCol AS ProgEndCol,
		p.Ancestor AS Ancestor,
		pa.ProgramID AS AncestorID,
		pa.ProgramTypeID AS AncestorTypeID,
		occ2.StartRow AS AncestorStartRow,
		occ2.StartCol AS AncestorStartCol,
		occ2.EndRow AS AncestorEndRow,
		occ2.EndCol AS AncestorEndCol,
		ddc.DDCLElementPath,
		ddc.ID,
		ddc.DDCLElemCategory, 
		ddc.DDCLElementName, 
		ddc.DDCLElemInfoStartRow, 
		ddc.DDCLElemInfoEndRow, 
		ddc.DDCLElemInfoStartCol, 
		ddc.DDCLElemInfoEndCol,
	    ddc.SetOrRecordRecordInDDCLID 
   FROM StatementReference sr
	   INNER JOIN ResourceTypes rt ON rt.ResourceID = sr.ResourceType
	   INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
	   INNER JOIN 
                    (   
                         SELECT pg.ProgramID,
			                    pg.Ancestor,
			                    UPPER(pg.Ancestor) AS AncestorU,
					            pg.ProgramTypeID,
					            pg.OccurID,
			                    pa.AliasName AS ProgramName
			              FROM Programs pg
			                   INNER JOIN ProgramAliases pa ON pg.ProgramID = pa.ProgramId AND pa.AliasType = 0
			              WHERE   pg.ProgramTypeID IN (1, 2, 3, 10, 15, 16) 
			          ) p ON os.ProgID = p.ProgramID 
	   INNER JOIN Statements st ON sr.StatementType = st.StatementType
	   INNER JOIN
			    (
				   SELECT 78 AS ResourceType, ID AS SetOrRecordID, SetName AS SetOrRecordName, UPPER(SetName) AS SetOrRecordNameU,   SubschemaID
				   FROM IdmsSubschemaSets
				   UNION
				   SELECT 77 AS ResourceType, ID AS SetOrRecordID, RecordName AS SetOrRecordName, UPPER(RecordName)  AS SetOrRecordNameU, SubschemaID
				   FROM IdmsSubschemaRecords
			    ) SetOrRecord ON sr.ResourceType = SetOrRecord.ResourceType
							 AND sr.ResourceID = SetOrRecord.SetOrRecordID
	   INNER JOIN IdmsSubschema isub ON SetOrRecord.SubschemaId = isub.ID
	   INNER JOIN IdmsSchema isc ON isub.SchemaId = isc.ID
	   INNER JOIN Paths pstmt ON os.PathID = pstmt.PathID
	   INNER JOIN Occurrences occ1 ON p.OccurID = occ1.OccurID
	   INNER JOIN Paths pth ON pth.PathID = occ1.PathID
	   LEFT OUTER JOIN 
	                (   
                        SELECT DISTINCT
						        pg.ProgramID,
					            pg.ProgramTypeID,
					            pg.OccurID,
			                    pga.AliasName AS ProgramName,
			                    UPPER(pga.AliasName) AS ProgramNameU
			              FROM Programs pg
			                   INNER JOIN ProgramAliases pga ON pg.ProgramID = pga.ProgramId 
			                                                    AND pga.AliasType = 0
			                                                    AND pg.ProgramTypeID = 8
			          ) pa ON pa.ProgramNameU = p.AncestorU 
	   LEFT OUTER JOIN Occurrences occ2 ON pa.OccurID = occ2.OccurID
	   LEFT OUTER JOIN (
								SELECT   ddclepa.PathStr as DDCLElementPath,
									      CASE WHEN ddsTypeid = 3 THEN NULL
										         ELSE  ddcle.id
									       END AS ID,
										    ddcle.ddsTypeid AS DDCLElemCategory, 
                                           CASE  ddcle.ddsTypeid 
				                                 WHEN 3 THEN 77
				                                 ELSE 78 
                                                END ResourceTypeFtl, 
										    ddcle.Name AS DDCLElementName, 
										    UPPER(ddcle.Name) AS DDCLElementNameU, 
										    ddclesi.StartRow as DDCLElemInfoStartRow, 
										    ddclesi.EndRow as DDCLElemInfoEndRow, 
										    ddclesi.StartCol as DDCLElemInfoStartCol, 
										    ddclesi.EndCol as DDCLElemInfoEndCol,
										    ddcle.id as SetOrRecordRecordInDDCLID         
								  FROM  DDCLElement ddcle 
										LEFT OUTER JOIN DDCLSourceInfo ddclesi on ddclesi.Id = ddcle.SourceInfo
										LEFT OUTER JOIN Programs ddclep on ddclep.ProgramId = ddclesi.ProgramId
										LEFT OUTER JOIN Occurrences ddcleo on ddcleo.OccurId = ddclep.OccurId
										LEFT OUTER JOIN Paths ddclepa on ddclepa.PathId = ddcleo.PathId
								  WHERE ddcle.ddstypeid IN ( 3, 10)
					) ddc ON SetOrRecord.ResourceType = ddc.ResourceTypeFtl AND SetOrRecord.SetOrRecordNameU = ddc.DDCLElementNameU
   WHERE  sr.ResourceType IN (77, 78); 
   COMMIT;
-- End SET + RECORD Area 


--- DDCL Area
       INSERT INTO session.ddcl
       SELECT  --DISTINCT
			    IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName, 
			    SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName, 
			    ResourceType, ResourceTypeName, 
			    CASE WHEN ResourceType = 3  THEN 1 
				    WHEN ResourceType = 10 THEN 2 
				    END AS ResourceTypeGroup1,
			   	2 AS ResourceTypeGroup2,
			    StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn, 
			    ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol, 
			    Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol, 
			    DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, 
			    DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
		 FROM (
                  SELECT --f1.ID AS f1ID,
						 --f2.ID AS f2ID,
						CASE WHEN ddclv1.ReferenceDdsTypeId = 3 and  (f1.ID IS NOT NULL OR f2.ID IS NOT NULL)   THEN 1
						    ELSE 0
						END AS chk1,
						CASE WHEN ddclv1.ReferenceDdsTypeId = 10 and  (f1.ID IS NOT NULL OR f2.ID IS NOT NULL) THEN 1
							   ELSE 0
						 END AS chk2,
						 SchemaElem.Id AS IdmsSchemaID, 
						 SchemaElem.Name AS IdmsSchemaName,
						 SubschemaElem.Id AS IdmsSubschemaID, 
						 CASE WHEN SubschemaElem.Name is null  THEN 'NO SUBSCHEMA' 
							     ELSE SubschemaElem.Name 
						  END AS IdmsSubschemaName,
							CAST(NULL AS INT)  AS SetOrRecordID, 
							ddclv1.ReferenceName AS SetOrRecordName,
							ddclp1.Id AS StatementTypeId,
							ddclp1.Name AS StatementTypeName, 
							ddclv1.ReferenceDdsTypeId as ResourceType, 
							rt.Name AS ResourceTypeName,
							pth1.PathStr as StmtPathStr, 
							StmtInfo.StartRow AS StatementStartRow, 
							StmtInfo.StartCol AS StatementStartColumn, 
							StmtInfo.EndRow AS StatementEndRow, 
							StmtInfo.EndCol AS StatementEndColumn, 
							StmtInfo.ProgramId AS ProgramId, 
							prg1.ProgramName AS ProgramName, 
							prg1.ProgramTypeID AS ProgramTypeID, 
							pth1.PathStr AS ProgramPath,
							DDCLElemInfo.StartRow as ProgStartRow, 
							DDCLElemInfo.EndRow as ProgEndRow, 
							DDCLElemInfo.StartCol as ProgStartCol, 
							DDCLElemInfo.EndCol as ProgEndCol, 
							CAST(NULL AS VARCHAR(256)) AS Ancestor, 
							CAST(NULL AS INT) AS AncestorID, 
							CAST(NULL AS INT) AS AncestorTypeID, 
							CAST(NULL AS INT) AS AncestorStartRow, 
							CAST(NULL AS INT) AS AncestorStartCol, 
							CAST(NULL AS INT) AS AncestorEndRow, 
							CAST(NULL AS INT) AS AncestorEndCol, 
							recpa.PathStr as DDCLElementPath,
							ddcle1.Id as Id,
							ddcle1.DdsTypeId as DDCLElemCategory,
							ddcle1.Name AS DDCLElementName, 
							RecordInfo.StartRow AS DDCLElemInfoStartRow, 
							RecordInfo.EndRow AS DDCLElemInfoEndRow, 
							RecordInfo.StartCol AS DDCLElemInfoStartCol, 
							RecordInfo.EndCol AS DDCLElemInfoEndCol,
							DDCLElement_1.Id as SetOrRecordRecordInDDCLID
				   FROM  DDCLElement ddcle1
				      INNER JOIN DDCLSourceInfo AS DDCLElemInfo on ddcle1.SourceInfo = DDCLElemInfo.Id
					    INNER JOIN  DDCLValue ddclv1 ON ddclv1.ElementId = ddcle1.Id 
											  AND ddclv1.ValueTypeId IN (2,4) 
											  AND ddclv1.ReferenceDdsTypeId IN (3,10)
            INNER JOIN ResourceTypes rt ON rt.ResourceID = ddclv1.ReferenceDdsTypeId          
						  INNER JOIN DDCLProperty  ddclp1 ON ddclp1.ID = ddclv1.PropertyId
						  INNER JOIN DDCLSourceInfo AS StmtInfo on ddclp1.SourceInfo = StmtInfo.Id
						  INNER JOIN  (   
                                           SELECT pg.ProgramID,
          								                    --pg.Ancestor,
          										                  pg.ProgramTypeID,
          										                  pg.OccurID,
          								                      pa.AliasName AS ProgramName
          								              FROM Programs pg
          								                   INNER JOIN ProgramAliases pa ON pg.ProgramID = pa.ProgramId AND pa.AliasType = 0
							          ) prg1 on StmtInfo.ProgramId = prg1.ProgramID
						INNER JOIN Occurrences occ on prg1.OccurID = occ.OccurID
						INNER JOIN Paths pth1 on pth1.PathID = occ.PathID
          INNER JOIN DDCLRelationV drv on ddcle1.Id=drv.FromElementId
						INNER JOIN DDCLElement as SubschemaElem on drv.ToElementId=SubschemaElem.Id
						LEFT OUTER JOIN DDCLElement AS DDCLElement_1 ON ddclv1.ReferenceDdsTypeId = DDCLElement_1.DdsTypeId AND UPPER(ddclv1.ReferenceName) = UPPER(DDCLElement_1.Name) 
          LEFT OUTER JOIN DDCLSourceInfo AS RecordInfo on DDCLElement_1.SourceInfo = RecordInfo.Id
						LEFT OUTER JOIN Programs recp on recp.ProgramId = RecordInfo.ProgramId
						LEFT OUTER JOIN Occurrences reco on reco.OccurId = recp.OccurId
						LEFT OUTER JOIN Paths recpa on recpa.PathID = reco.PathID     
          LEFT OUTER JOIN DDCLProperty as SubschemaElemProperty on SubschemaElemProperty.ElementId = SubschemaElem.Id AND UPPER(SubschemaElemProperty.Name) = 'SCHEMA' 
						LEFT OUTER JOIN DDCLValue as SubschemaDDCLVal ON  SubschemaDDCLVal.ValueTypeId IN (2,4) AND SubschemaDDCLVal.PropertyId = SubschemaElemProperty.Id  
						LEFT OUTER JOIN DDCLElement as SchemaElem ON SchemaElem.DdsTypeId = 6  AND SchemaElem.Name = SubschemaDDCLVal.ReferenceName AND UPPER(SchemaElem.Name) = UPPER(SubschemaDDCLVal.ReferenceName) 
          		 --remove false records (called by clause 'SAME AS IN')
						LEFT OUTER JOIN DDCLValue as parent on parent.Id = ddclv1.ParentValueId 
           -- next joins are implemented for filter purpose
						LEFT OUTER JOIN (
    											 SELECT ssp.Id, ssp.ElementId, UPPER(rrv.ReferenceName) AS ReferenceNameU , rrv.ReferenceDdsTypeId 
    											 FROM DDCLProperty ssp
    												    INNER JOIN DDCLValue ssv on ssv.ValueTypeId = 1 AND ssp.id = ssv.PropertyId AND UPPER(ssv.Name) = 'ALL' AND UPPER(ssv.Value) = 'TRUE'
    												    INNER JOIN DDCLValue srv on srv.ReferenceDdsTypeId = 6 AND srv.ValueTypeId = 2 AND ssp.id = srv.PropertyId  
    												    INNER JOIN DDCLElement se on se.DdsTypeId = 6 AND se.Name = srv.ReferenceName
    												    INNER JOIN DDCLValue rrv on rrv.ReferenceDdsTypeId IN (3, 10) AND rrv.ElementId = se.Id 
    											 WHERE  UPPER(ssp.Name) =  'SCHEMA' 
									           )f1 ON f1.ElementId = SubschemaElem.Id AND f1.ReferenceDdsTypeId = ddclv1.ReferenceDdsTypeId AND f1.ReferenceNameU = UPPER(ddclv1.ReferenceName) 
						 LEFT OUTER JOIN (
    											  SELECT ssp.Id, ssp.ElementId , UPPER(ssv.ReferenceName) AS ReferenceNameU, ssav.Id AS ssavID,
                                          CASE UPPER(ssp.Name)
                                               WHEN 'SETS' THEN 10
															                   ELSE 3
															              END AS ReferenceDdsTypeId
    											  FROM DDCLProperty ssp
    													   LEFT OUTER JOIN DDCLValue  ssv ON ssv.ValueTypeId = 2  AND ssv.ReferenceDdsTypeId IN (3, 10) AND ssp.id = ssv.PropertyId
    													   LEFT OUTER JOIN DDCLValue ssav ON ssav.ValueTypeId = 1 AND ssp.id = ssav.PropertyId AND UPPER(ssav.Name) = 'ALL' and UPPER(ssav.Value) = 'TRUE'
    											  WHERE UPPER(ssp.Name) IN ( 'RECORD-MAP' , 'SETS')
									            )f2 ON  f2.ElementId = SubschemaElem.Id
											                 AND f2.ReferenceDdsTypeId  = ddclv1.ReferenceDdsTypeId 
											                 AND (f2.ReferenceNameU = UPPER(ddclv1.ReferenceName) OR f2.ssavID IS NOT NULL)	

          WHERE  ddcle1.DdsTypeId in (11,12,16,27,28,29) 
				  AND ddcle1.islocal = 0 --'false'
                  AND (  
      								   (
      								    ddclv1.referenceddstypeid=10 AND  ddcle1.DdsTypeId IN (11, 16) AND UPPER(ddclp1.name) IN ('CHANGES', 'SINGULAR-VIEW') 
      	 							    ) 
                          
							           OR 
							             (
									          ddclv1.ReferenceDdsTypeId = 3
									          AND (parent.ComplexValueTypeId IS NULL OR parent.ComplexValueTypeId <> 32) 
      										AND (
      	 										   (ddcle1.DdsTypeId=11 AND UPPER(ddclp1.name) IN ('CHANGES', 'OUTPUT', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW') )
      	 										   OR
      	 										   (ddcle1.DdsTypeId=16 AND UPPER(ddclp1.name)  IN ('CHANGES', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW') )
      	 										   OR
      	 										   (ddcle1.DdsTypeId=29 AND UPPER(ddclp1.name) = 'STRUCTURE' )
      	 										   OR
      	 										   (ddcle1.DdsTypeId in (27,28) AND UPPER(ddclp1.name) IN ('PROCESSING-STRUCTURE', 'VIEW', 'SELECTION') )
      	 										   OR
      	 										   (ddcle1.DdsTypeId=12 AND  UPPER(ddclp1.name) IN ('STRUCTURE', 'RECORDS'))
      											 )
								             )

                        )
           )ddcl
		 WHERE (chk1 = 1 OR chk2=1) ;
		 COMMIT;
		 -- END DDCL

		 
        BEGIN
	      COMMIT; 
          TRUNCATE TABLE cacheEZViewer_Usage_IDMSX ;
        END;
	            

        LOCK TABLE cacheEZViewer_Usage_IDMSX IN EXCLUSIVE MODE ;-- lock table 
		INSERT INTO cacheEZViewer_Usage_IDMSX 
		SELECT IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
		       SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName, 
			  ResourceType, ResourceTypeName, ResourceTypeGroup1, ResourceTypeGroup2, 
			  StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn, 
			  ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol, 
			  Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol, 
			  DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
		FROM
		    (    
				SELECT 
				     IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
					SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName, 
					ResourceType, ResourceTypeName, ResourceTypeGroup1, ResourceTypeGroup2, 
					StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn, 
					ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol, 
					Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol, 
					DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
				FROM session.sr
				
				UNION
		
		          SELECT  
				     IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
					SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName, 
					ResourceType, ResourceTypeName, ResourceTypeGroup1, ResourceTypeGroup2, 
					StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn, 
					ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol, 
					Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol, 
					DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
				FROM session.ddcl
			)x;
		    COMMIT;
		    
END 