123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <?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.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- relational metadata extraction rules for teradata.
- -->
- <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:conversionType="java"/>
- <relmd:defaultCatalogSchemaQueryRules>
- <relmd:sql>SELECT DISTINCT '' catalogName, trim(A.DatabaseName) schemaName FROM dbc.tablesV A WHERE A.databasename = DATABASE</relmd:sql>
- </relmd:defaultCatalogSchemaQueryRules>
- <relmd:tablesImportRules>
- <relmd:sql>select '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) tableName, CASE A.TableKind WHEN 'T' then 'table' END tabletype, '' description from dbc.tablesV A where A.TableKind in ('T') order by parentSchema, tableName</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="where A.TableKind in ('T')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:tablesImportRules>
- <relmd:viewsImportRules>
- <relmd:sql>select '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) tableName, CASE A.TableKind WHEN 'V' THEN 'view' END tabletype, '' description from dbc.tablesV A where A.TableKind in ('V') order by parentSchema, tableName</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="where A.TableKind in ('V')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:viewsImportRules>
- <relmd:columnsImportRules relmd:extractionFailureFallback="com.ibm.cognos.internal.relmd.metadata.import_.functions.TeradataGetColumnsFunction">
- <relmd:sql>
- SELECT '' parentCatalog, TRIM(A.DatabaseName) parentSchema, TRIM(A.TableName) parentTable, TRIM(A.ColumnName) parentColumn
- , TRIM(A.ColumnType)
- || CASE WHEN A.CharType IS NULL THEN '' WHEN A.CharType = 0 THEN '' ELSE ' ' || TRIM(A.CharType) END
- || CASE WHEN A.ColumnFormat IS NULL THEN '' ELSE ' ' || TRIM(A.ColumnFormat) END
- , CASE WHEN A.ColumnType='D' THEN A.DecimalTotalDigits ELSE A.ColumnLength END "length"
- , 10 "precision", A.DecimalFractionalDigits scale, TRIM(A.Nullable) nullableFlag, TRIM(A.DefaultValue) defaultValue
- , '' collationSequence, '' description
- FROM DBC.ColumnsV A, dbc.tablesV B
- WHERE A.DatabaseName = B.DatabaseName AND A.TableName = B.TableName AND B.TableKind IN ('V','T')
- ORDER BY parentSchema, parentTable, A.ColumnId
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND B.TableKind IN ('V','T')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName" relmd:columnExpression="A.ColumnName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:columnsImportRules>
- <relmd:uniqueKeysImportRules>
- <relmd:sql>select '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) parentTable, trim(A.IndexName) keyName, trim(A.ColumnName) refColumnName, A.ColumnPosition refColumnSequence, '' description from dbc.IndicesV A WHERE A.IndexType = 'K' and A.IndexName is not null order by parentSchema, parentTable, keyName, refColumnSequence</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.IndexType = 'K'" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:uniqueKeysImportRules>
- <relmd:foreignKeysImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(FK.ChildDB) parentSchema, trim(FK.ChildTable) parentTable, trim(FK.IndexName) foreignKeyName, trim(FK.ChildKeyColumn) exportedColumn, IMPKEY.ColumnPosition columnSequence, '' importedCatalog, trim(IMPTAB.DatabaseName) importedSchema, trim(IMPTAB.TableName) importedTable, trim(IMPKEY.IndexName) importedKey , trim(FK.ChildKeyColumn), '' description
- FROM "DBC"."All_RI_ParentsV" FK, "DBC"."TablesV" IMPTAB, "DBC"."IndicesV" IMPKEY
- WHERE FK.ParentDB = IMPTAB.DatabaseName
- AND FK.ParentTable = IMPTAB.TableName
- AND FK.ParentDB = IMPKEY.DatabaseName
- AND FK.ParentTable = IMPKEY.TableName
- AND FK.ParentKeyColumn = IMPKEY.ColumnName
- AND IMPKEY.DatabaseName = IMPTAB.DatabaseName
- AND IMPKEY.TableName = IMPTAB.TableName
- AND IMPKEY.IndexType IN ('K')
- ORDER BY parentSchema, parentTable, foreignKeyName, columnSequence
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND IMPKEY.IndexType IN ('K')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="FK.ChildDB" relmd:objectExpression="FK.ChildTable"/>
- <relmd:objectSelectionsCondition relmd:schemaExpression="IMPTAB.DatabaseName" relmd:objectExpression="IMPTAB.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:foreignKeysImportRules>
- <relmd:indexesImportRules>
- <relmd:sql>
- SELECT '' tableCatalog, trim(IDX.DatabaseName) tableSchema, trim(IDX.TableName) refTable, trim(IDX.IndexName) indexName
- , trim(IDX.UniqueFlag) isUnique, CASE IDX.IndexType WHEN 'N' THEN 'hash' WHEN 'H' THEN 'hash' ELSE 'regular' END indexType
- , '' parentCatalog, trim(IDX.DatabaseName) parentSchema, IDX.ColumnPosition refColumnSequence, trim(IDX.ColumnName) refColumnName
- , 'A' sortOrder, '' description
- FROM DBC.IndicesV IDX
- WHERE IDX.IndexType NOT IN ('K')
- ORDER BY parentSchema, indexName, refTable, refColumnSequence</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE IDX.IndexType NOT IN ('K')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="IDX.DatabaseName" relmd:objectExpression="IDX.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:indexesImportRules>
- <relmd:synonymsImportRules>
- <relmd:sql>TBD</relmd:sql>
- </relmd:synonymsImportRules>
- <relmd:routinesImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) tableName, '' description
- , CASE A.TableKind WHEN 'M' then 'procedure' WHEN 'P' then 'procedure' WHEN 'F' THEN 'function' END proceduretype
- FROM dbc.tablesV A
- WHERE A.TableKind IN ('P','F','M')
- ORDER BY parentCatalog, parentSchema, tableName
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.TableKind IN ('P','F','M')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:routinesImportRules>
- <relmd:proceduresImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) tableName, '' description
- , CASE A.TableKind WHEN 'M' then 'procedure' WHEN 'P' then 'procedure' END proceduretype
- FROM dbc.tablesV A
- WHERE A.TableKind IN ('P','M')
- ORDER BY parentCatalog, parentSchema, tableName
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.TableKind IN ('P','M')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:proceduresImportRules>
- <relmd:functionsImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) tableName, '' description
- , CASE A.TableKind WHEN 'F' THEN 'function' END proceduretype
- FROM dbc.tablesV A
- WHERE A.TableKind IN ('F')
- ORDER BY parentCatalog, parentSchema, tableName
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE A.TableKind IN ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:functionsImportRules>
- <relmd:routineArgumentsImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) parentTable, trim(A.ColumnName) parentColumn
- , TRIM(A.ColumnType)
- || CASE WHEN A.CharType IS NULL THEN '' WHEN A.CharType = 0 THEN '' ELSE ' ' || TRIM(A.CharType) END
- || CASE WHEN A.ColumnFormat IS NULL THEN '' ELSE ' ' || TRIM(A.ColumnFormat) END
- , CASE WHEN A.ColumnType='D' THEN A.DecimalTotalDigits ELSE A.ColumnLength END "length"
- , 10 "precision", A.DecimalFractionalDigits scale, TRIM(A.Nullable) nullableFlag, TRIM(A.DefaultValue) defaultValue
- , '' collationSequence, '' description, '0' signatureIndex, 'in' parameterMode, '0' occurs, '0' ordinal, '0' parameterSequence, '0' dataLevel, '0' dataLeveLPosition
- FROM DBC.ColumnsV A, dbc.tablesV B
- WHERE A.DatabaseName = B.DatabaseName and A.TableName = B.TableName
- AND B.TableKind in ('P','F','M')
- ORDER BY parentSchema, parentTable, A.ColumnId
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND B.TableKind in ('P','F','M')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:routineArgumentsImportRules>
- <relmd:procedureRoutineArgusImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) parentTable, trim(A.ColumnName) parentColumn
- , TRIM(A.ColumnType)
- || CASE WHEN A.CharType IS NULL THEN '' WHEN A.CharType = 0 THEN '' ELSE ' ' || TRIM(A.CharType) END
- || CASE WHEN A.ColumnFormat IS NULL THEN '' ELSE ' ' || TRIM(A.ColumnFormat) END
- , CASE WHEN A.ColumnType='D' THEN A.DecimalTotalDigits ELSE A.ColumnLength END "length"
- , 10 "precision", A.DecimalFractionalDigits scale, TRIM(A.Nullable) nullableFlag, TRIM(A.DefaultValue) defaultValue
- , '' collationSequence, '' description, '0' signatureIndex, 'in' parameterMode, '0' occurs, '0' ordinal, '0' parameterSequence, '0' dataLevel, '0' dataLeveLPosition
- FROM DBC.ColumnsV A, dbc.tablesV B
- WHERE A.DatabaseName = B.DatabaseName and A.TableName = B.TableName
- AND B.TableKind in ('P','M')
- ORDER BY parentSchema, parentTable, A.ColumnId
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND B.TableKind in ('P','M')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:procedureRoutineArgusImportRules>
- <relmd:functionRoutineArgusImportRules>
- <relmd:sql>
- SELECT '' parentCatalog, trim(A.DatabaseName) parentSchema, trim(A.TableName) parentTable, trim(A.ColumnName) parentColumn
- , TRIM(A.ColumnType)
- || CASE WHEN A.CharType IS NULL THEN '' WHEN A.CharType = 0 THEN '' ELSE ' ' || TRIM(A.CharType) END
- || CASE WHEN A.ColumnFormat IS NULL THEN '' ELSE ' ' || TRIM(A.ColumnFormat) END
- , CASE WHEN A.ColumnType='D' THEN A.DecimalTotalDigits ELSE A.ColumnLength END "length"
- , 10 "precision", A.DecimalFractionalDigits scale, TRIM(A.Nullable) nullableFlag, TRIM(A.DefaultValue) defaultValue
- , '' collationSequence, '' description, '0' signatureIndex, 'in' parameterMode, '0' occurs, '0' ordinal, '0' parameterSequence, '0' dataLevel, '0' dataLeveLPosition
- FROM DBC.ColumnsV A, dbc.tablesV B
- WHERE A.DatabaseName = B.DatabaseName and A.TableName = B.TableName
- AND B.TableKind in ('F')
- ORDER BY parentSchema, parentTable, A.ColumnId
- </relmd:sql>
- <relmd:objectSelectionsInclusion relmd:sqlFragment="AND B.TableKind in ('F')" relmd:insertLocation="after" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="A.DatabaseName" relmd:objectExpression="A.TableName"/>
- </relmd:objectSelectionsInclusion>
- </relmd:functionRoutineArgusImportRules>
- <relmd:sqlObjectImportRules>
- <relmd:sql>SELECT '' parentCatalog, TRIM(A.DatabaseName) parentSchema, TRIM(A.TableName) tableName, A.TableKind objectType, '' targetHostRef, '' targetCatalogRef, '' targetSchemaRef, '' targetObjectName, '' targetObjectType, '' description
- FROM dbc.tablesV A WHERE A.TableKind IN ('V','T') ORDER BY parentSchema, tableName</relmd:sql>
- <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="A.TableKind IN ('V','T')" relmd:insertPrefix="AND">
- <relmd:objectSelectionsCondition relmd:schemaExpression="trim(A.DatabaseName)" relmd:objectExpression="trim(A.TableName)"/>
- </relmd:objectSelectionsInclusion>
- </relmd:sqlObjectImportRules>
- <relmd:schemasBrowseRules>
- <relmd:sql>
- SELECT trim(A.DatabaseName) objectName, '' description
- FROM dbc.tablesV A
- GROUP BY A.DatabaseName
- ORDER BY objectName
- </relmd:sql>
- <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="FROM dbc.tablesV A" relmd:insertPrefix="WHERE" relmd:objectExpression="A.DatabaseName">
- <relmd:systemObject relmd:name="td12"/>
- <relmd:systemObject relmd:name="DBC"/>
- <relmd:systemObject relmd:name="Crashdumps"/>
- <relmd:systemObject relmd:name="SysCalendar"/>
- <relmd:systemObject relmd:name="SysAdmin"/>
- <relmd:systemObject relmd:name="SYSDBA"/>
- <relmd:systemObject relmd:name="SystemFe"/>
- </relmd:systemObjectFilter>
- </relmd:schemasBrowseRules>
- <relmd:tablesBrowseRules>
- <relmd:schemaGrainSql>
- SELECT trim(A.TableName) objectName, '' description
- FROM dbc.tablesV A
- WHERE A.DatabaseName = '<relmd:schemaSubstitution/>'
- AND A.TableKind = 'T'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:tablesBrowseRules>
- <relmd:viewsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT trim(A.TableName) objectName, '' description
- FROM dbc.tablesV A
- WHERE A.DatabaseName = '<relmd:schemaSubstitution/>'
- AND A.TableKind = 'V'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:viewsBrowseRules>
- <relmd:columnsBrowseRules>
- <relmd:objectGrainSql>
- SELECT trim(A.ColumnName) objectName, '' description
- FROM DBC.ColumnsV A, dbc.tablesV B
- WHERE A.DatabaseName = '<relmd:schemaSubstitution/>'
- AND A.TableName = '<relmd:objectSubstitution/>'
- AND A.DatabaseName = B.DatabaseName
- AND A.TableName = B.TableName
- AND B.TableKind in ('V','M','T')
- ORDER BY A.ColumnId
- </relmd:objectGrainSql>
- </relmd:columnsBrowseRules>
- <relmd:synonymsBrowseRules>
- <relmd:schemaGrainSql>TBD<relmd:schemaSubstitution/>
- </relmd:schemaGrainSql>
- </relmd:synonymsBrowseRules>
- <relmd:proceduresBrowseRules>
- <relmd:schemaGrainSql>
- SELECT trim(A.TableName) objectName, '' description
- FROM dbc.tablesV A
- WHERE A.DatabaseName = '<relmd:schemaSubstitution/>'
- AND A.TableKind IN ('P','M')
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:proceduresBrowseRules>
- <relmd:functionsBrowseRules>
- <relmd:schemaGrainSql>
- SELECT trim(A.TableName) objectName, '' description
- FROM dbc.tablesV A
- WHERE A.DatabaseName = '<relmd:schemaSubstitution/>'
- AND A.TableKind = 'F'
- ORDER BY objectName
- </relmd:schemaGrainSql>
- </relmd:functionsBrowseRules>
- <relmd:objectListingsRules>
- <relmd:sql>select '' parentCatalog, A.DatabaseName parentSchema, A.TableName objectName, CASE A.TableKind WHEN 'T' then 'table' WHEN 'M' then 'table' WHEN 'V' THEN 'view' WHEN 'P' then 'procedure' WHEN 'F' THEN 'function' END objectType, '' description from dbc.tablesV A WHERE A.TableKind in ('V','M', 'T', 'P', 'F')
- order by parentSchema, objectName</relmd:sql>
- </relmd:objectListingsRules>
- <relmd:driverClass relmd:className="com.ncr.teradata.TeraDriver"/>
- </relmd:vendorRules>
|