123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: relmd
- (C) Copyright IBM Corp. 2008, 2015
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.YY
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- DB2 metadata extraction rules
- -->
- <relmd:vendorRules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:relmd="http://www.ibm.com/xmlns/prod/cognos/relmd/1/0" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/cognos/relmd/1/0 ../../webcontent/relmd/vendor/relmdVendorRules.xsd">
- <relmd:caseSensitivityRules relmd:storage="upper"/>
- <relmd:defaultCatalogSchemaQueryRules>
- <relmd:sql/>
- </relmd:defaultCatalogSchemaQueryRules>
- <relmd:tablesImportRules>
- <relmd:sql>SELECT '' CATALOG_NAME, RTRIM( base_schema ) SCHEMA_NAME, name TABLE_NAME, TYPE TABLE_TYPE, '' DESCRIPTION
- from(select A.creator, A.name,A.type,A.status,A.base_schema,base_name from sysibm.tables A, sysibm.tables B
- WHERE A.TYPE IN ('A')
- AND B.TYPE IN ('V','T','S','A')
- AND A.TBSCHEMA = B.TBSCHEMA
- AND A.BASE_TBNAME = B.NAME
- ORDER BY base_schema, name)</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="B.TYPE IN ('V','T','S','A')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TBSCHEMA" relmd:objectExpression="A.BASE_TBNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:tablesImportRules>
- <relmd:viewsImportRules>
- <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(creator) SCHEMA_NAME, name TABLE_NAME, TYPE TABLE_TYPE, '' DESCRIPTION
- from (select creator, name, type from qsys2.systables t WHERE t.TYPE IN ('V') order by creator,name)</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="t WHERE t.TYPE IN ('V')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:viewsImportRules>
- <relmd:columnsImportRules>
- <relmd:sql>SELECT '' CATALOG_NAME, RTRIM(AA.TABLE_SCHEMA) SCHEMA_NAME, AA.TABLE_NAME TABLE_NAME, AA.COLUMN_NAME COLUMN_NAME, AA.DATA_TYPE DATATYPE, AA.CHARACTER_MAXIMUM_LENGTH LENGTH, '' PRECISION, AA.SCALE SCALE,
- CASE WHEN AA.IS_NULLABLE = 'Y' THEN 'true' ELSE 'false' END NULLABLE_FLAG, AA.COLUMN_DEFAULT DEFAULT_VALUE, '' collationSequence, '' DESCRIPTION
- from
- (select
- c.TABLE_SCHEMA,
- c.TABLE_NAME,
- c.COLUMN_NAME,
- c.ORDINAL_POSITION,
- c.CHARACTER_MAXIMUM_LENGTH,
- c.NUMERIC_SCALE AS SCALE,
- c.COLUMN_DEFAULT,
- c.IS_NULLABLE,
- c.TABLE_SCHEMA SOURCE_SCHEMA,
- c.TABLE_NAME SOURCE_TABLE,
- c.DATA_TYPE
- from sysibm.columns c ORDER BY TABLE_SCHEMA,
- TABLE_NAME,
- ORDINAL_POSITION) AS AA</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="SYSCAT.COLUMNS A" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:columnsImportRules>
- <relmd:uniqueKeysImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.CONSTNAME = B.CONSTNAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:uniqueKeysImportRules>
- <relmd:foreignKeysImportRules>
- <relmd:sql>SELECT '' parentCatalog, RTRIM(FKR_reftbcreator) parentSchema, FRK_TBNAME parentQueryObject, FRK_relname foreignKeyName, FKRC_COLNAME exportedColumn, FKRC_COLSEQ columnSequence, '' importedCatalog,
- RTRIM(FKR_reftbcreator) importedSchema, reftbname importedTable, refkeyname importedUniqueKey, PKRC_COLNAME importedColumn, '' description
- from (
- SELECT FRK.CONSTRAINT_NAME FRK_RELNAME,
- FRK.CONSTRAINT_SCHEMA FRK_refcreator,
- FRKC.TABLE_NAME FRK_TBNAME,
- FRK.CONSTRAINT_SCHEMA definer,
- '' FKR_definertype,
- FRKP.UNIQUE_CONSTRAINT_NAME refkeyname,
- FRKP.CONSTRAINT_SCHEMA FKR_reftbcreator,
- FRKCP.TABLE_NAME reftbname,
- FRK.COLUMN_COUNT,
- FRK.DELETE_RULE,
- FRK.UPDATE_RULE,
- '' A,
- '' B,
- FRKC.COLUMN_NAME FKRC_COLNAME,
- FRKCP.COLUMN_NAME PKRC_COLNAME,
- FRKC.ORDINAL_POSITION FKRC_COLSEQ
- from qsys2.SYSREFCST FRK, qsys2.SYSKEYCST FRKC, qsys2.SYSREFCST FRKP, qsys2.SYSKEYCST FRKCP
- where FRK.CONSTRAINT_NAME = FRKC.CONSTRAINT_NAME
- AND FRK.CONSTRAINT_SCHEMA = FRKC.CONSTRAINT_SCHEMA
- AND FRKP.UNIQUE_CONSTRAINT_NAME = FRKCP.CONSTRAINT_NAME
- AND FRKP.CONSTRAINT_SCHEMA = FRKCP.CONSTRAINT_SCHEMA
- AND FRKP.UNIQUE_CONSTRAINT_NAME = FRK.UNIQUE_CONSTRAINT_NAME
- AND FRK.CONSTRAINT_SCHEMA = FRKP.CONSTRAINT_SCHEMA
- AND FRKP.CONSTRAINT_NAME = FRK.CONSTRAINT_NAME
- )</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND PKR.REFTABSCHEMA = FKR.TABSCHEMA AND FKR.CONSTNAME = PKR.CONSTNAME AND FKRC.COLSEQ = PKRC.COLSEQ" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="FKR.REFTABSCHEMA" relmd:objectExpression="FKR.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:foreignKeysImportRules>
- <relmd:indexesImportRules>
- <relmd:sql>SELECT '' tableCatalog, RTRIM( k_creator) tableSchema, k_tbname tableName, name objectName,
- CASE UNIQUERULE WHEN 'P' THEN '1' WHEN 'U' THEN '1' ELSE '0' END isUnique,
- CASE INDEXTYPE WHEN 'REG' THEN '1' WHEN 'CLUS' THEN '3' ELSE '0' END storageType, '' parentCatalog,
- RTRIM(k_tbcreator) parentSchema, colseq refColumnSequence, colname refColumnName, 'A' /*B.COLORDER*/ sortOrder, '' description
- from (select k.INDEX_OWNER k_creator,k.INDEX_NAME name,k.TABLE_OWNER k_tbcreator,k.TABLE_NAME k_tbname,k.IS_UNIQUE uniquerule,k.IS_UNIQUE made_unique,'' indextype,'' entrytype,i.INDEX_SCHEMA indschema,i.INDEX_NAME indname,
- i.COLUMN_NAME colname,i.ORDINAL_POSITION colseq,i.ORDERING colorder from qsys2.SYSINDEXES as k,qsys2.SYSKEYS as i
- where k.INDEX_OWNER = i.INDEX_SCHEMA
- and k.INDEX_NAME = i.INDEX_NAME
- ORDER BY k.INDEX_OWNER, k.TABLE_NAME, k.INDEX_NAME, i.ORDINAL_POSITION) AS DD</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND A.INDNAME = B.INDNAME" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.INDSCHEMA"/>
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:indexesImportRules>
- <relmd:synonymsImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="A.TYPE IN ('A', 'N')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:synonymsImportRules>
- <relmd:routinesImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('F','P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:routinesImportRules>
- <relmd:proceduresImportRules>
- <relmd:sql>SELECT '' parentCatalog, RTRIM(ROUTINE_SCHEMA) parentSchema, ROUTINE_NAME procedureName,'' description, ROUTINE_TYPE procedureType
- from
- (SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE FROM qsys2.SYSROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_SCHEMA NOT IN ('SYSIBM') ) AS SS
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:proceduresImportRules>
- <relmd:functionsImportRules>
- <relmd:sql>SELECT DISTINCT '' parentCatalog, RTRIM(ROUTINE_SCHEMA) parentSchema, ROUTINE_NAME procedureName,'' description, ROUTINE_TYPE procedureType
- from
- (SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE FROM qsys2.SYSROUTINES WHERE ROUTINE_TYPE = 'FUNCTION' ) </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.ROUTINETYPE IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:functionsImportRules>
- <relmd:routineArgumentsImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('F','P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:routineArgumentsImportRules>
- <relmd:procedureRoutineArgusImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('P')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:procedureRoutineArgusImportRules>
- <relmd:functionRoutineArgusImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:sqlFragment=" AND B.ROUTINETYPE IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="NOT IN ( SELECT B.ROUTINESCHEMA, B.ROUTINENAME, B.SPECIFICNAME FROM SYSCAT.ROUTINEPARMS B)" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.ROUTINESCHEMA" relmd:objectExpression="A.ROUTINENAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:functionRoutineArgusImportRules>
- <relmd:sqlObjectImportRules>
- <relmd:sql/>
- <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="A.TYPE IN ('V','T','S')" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="B.TYPE IN ('V','T','S','A')" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.TABSCHEMA" relmd:objectExpression="A.TABNAME"/>
- </relmd:objectSelectionsInclusion>
- </relmd:sqlObjectImportRules>
- <relmd:schemasBrowseRules>
- <relmd:sql>
- </relmd:sql>
- <relmd:systemObjectFilter relmd:insertPrefix="WHERE" relmd:sqlFragment="FROM SYSCAT.TABLES A" relmd:insertLocation="after" relmd:objectExpression="RTRIM(A.TABSCHEMA)">
- <relmd:systemObject relmd:name="SQLJ"/>
- <relmd:systemObject relmd:name="SYSCAT"/>
- <relmd:systemObject relmd:name="SYSFUN"/>
- <relmd:systemObject relmd:name="SYSIBM"/>
- <relmd:systemObject relmd:name="SYSIBMADM"/>
- <relmd:systemObject relmd:name="SYSIBMINTERNAL"/>
- <relmd:systemObject relmd:name="SYSIBMTS"/>
- <relmd:systemObject relmd:name="SYSPROC"/>
- <relmd:systemObject relmd:name="SYSSTAT"/>
- <relmd:systemObject relmd:name="SYSTOOLS"/>
- </relmd:systemObjectFilter>
- </relmd:schemasBrowseRules>
- <relmd:tablesBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.TABNAME objectName, '' description
- FROM SYSCAT.TABLES A
- WHERE A.TYPE IN ('T','S')
- AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:tablesBrowseRules>
- <relmd:viewsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.TABNAME objectName, '' description
- FROM SYSCAT.TABLES A
- WHERE A.TYPE IN ('V')
- AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:viewsBrowseRules>
- <relmd:columnsBrowseRules>
- <relmd:objectGrainSql>
- SELECT A.COLNAME objectName, '' description
- FROM SYSCAT.COLUMNS A
- WHERE A.TABSCHEMA = '<relmd:schemaSubstitution/> '
- AND A.TABNAME = '<relmd:objectSubstitution/>'
- ORDER BY A.COLNO
- </relmd:objectGrainSql>
- </relmd:columnsBrowseRules>
- <relmd:synonymsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.TABNAME objectName, '' description
- FROM SYSCAT.TABLES A
- WHERE A.TYPE IN ('A', 'N')
- AND A.TABSCHEMA = '<relmd:schemaSubstitution/>'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:synonymsBrowseRules>
- <relmd:proceduresBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.ROUTINENAME objectName,'' description
- FROM SYSCAT.ROUTINES A
- WHERE A.ROUTINETYPE = 'P'
- AND A.ROUTINESCHEMA = '<relmd:schemaSubstitution/>'
- GROUP BY A.ROUTINENAME
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:proceduresBrowseRules>
- <relmd:functionsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT A.ROUTINENAME objectName,'' description
- FROM SYSCAT.ROUTINES A
- WHERE A.ROUTINETYPE = 'F'
- AND A.ROUTINESCHEMA = '<relmd:schemaSubstitution/>'
- GROUP BY A.ROUTINENAME
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:functionsBrowseRules>
- <relmd:objectListingsRules>
- <relmd:sql>SELECT '' parentCatalog, RTRIM(A.TABSCHEMA) parentSchema, A.TABNAME objectName, A.TYPE objectType, '' description
- FROM SYSCAT.TABLES A WHERE A.TYPE IN ('V','T','S','A', 'N')
- UNION
- SELECT '' parentCatalog, RTRIM(A.ROUTINESCHEMA) parentSchema, A.ROUTINENAME objectName, a.routinetype objectType, '' description
- FROM SYSCAT.ROUTINES A WHERE A.ROUTINETYPE IN ('F', 'P')
- ORDER BY parentSchema, objectName</relmd:sql>
- </relmd:objectListingsRules>
- <relmd:driverClass relmd:className="com.ibm.db2.jcc.DB2Driver"/>
- <relmd:driverClass relmd:className="COM.ibm.db2.jdbc.net.DB2Driver"/>
- <relmd:driverClass relmd:className="COM.ibm.db2.jdbc.app.DB2Driver"/>
- </relmd:vendorRules>
|