netezza.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: relmd
  5. (C) Copyright IBM Corp. 2008, 2015
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. Netezza metadata extraction rules
  12. -->
  13. <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">
  14. <relmd:caseSensitivityRules relmd:storage="upper"/>
  15. <relmd:defaultCatalogSchemaQueryRules>
  16. <relmd:sql>SELECT DISTINCT '' catalogName, OWNER FROM ADMIN._V_RELATION_KEYDATA</relmd:sql>
  17. </relmd:defaultCatalogSchemaQueryRules>
  18. <relmd:tablesImportRules>
  19. <relmd:sql>
  20. SELECT X.parentCatalog, X.parentSchema, X.objectName, X.objectType, X.description FROM
  21. (SELECT t.DATABASE AS parentCatalog, t.OWNER AS parentSchema, t.OBJNAME AS objectName,
  22. 'T' AS objectType , td.DESCRIPTION AS description
  23. FROM ((ADMIN._V_OBJ_RELATION t
  24. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  25. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  26. WHERE t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE')) AS X
  27. ORDER BY X.parentCatalog, X.parentSchema, X.objectName
  28. </relmd:sql>
  29. <relmd:objectSelectionsInclusion relmd:sqlFragment="t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  30. <relmd:objectSelectionsCondition relmd:catalogExpression="t.DATABASE" relmd:schemaExpression="t.OWNER" relmd:objectExpression="t.OBJNAME"/>
  31. </relmd:objectSelectionsInclusion>
  32. </relmd:tablesImportRules>
  33. <relmd:viewsImportRules>
  34. <relmd:sql>
  35. SELECT X.parentCatalog, X.parentSchema, X.objectName, X.objectType, X.description FROM
  36. (SELECT v.DATABASE AS parentCatalog, v.OWNER AS parentSchema, v.OBJNAME AS objectName,
  37. 'V' AS objectType
  38. , vd.DESCRIPTION AS description
  39. FROM ((ADMIN._V_OBJ_RELATION v
  40. LEFT JOIN ADMIN._T_DESCRIPTION vd ON ((v.OBJID = vd.OBJOID)))
  41. LEFT JOIN ADMIN._T_CLASS vr ON ((v.OBJID = vr.OID)))
  42. WHERE v.OBJTYPE IN ('VIEW', 'SYSTEM VIEW') ) AS X
  43. ORDER BY X.parentCatalog, X.parentSchema, X.objectName
  44. </relmd:sql>
  45. <relmd:objectSelectionsInclusion relmd:sqlFragment="WHERE v.OBJTYPE IN ('VIEW', 'SYSTEM VIEW')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  46. <relmd:objectSelectionsCondition relmd:catalogExpression="v.DATABASE" relmd:schemaExpression="v.OWNER" relmd:objectExpression="v.OBJNAME"/>
  47. </relmd:objectSelectionsInclusion>
  48. </relmd:viewsImportRules>
  49. <relmd:columnsImportRules>
  50. <relmd:sql>
  51. SELECT o.DATABASE AS parentCatalog
  52. , o.OWNER AS parentSchema
  53. , o.NAME AS parentTable
  54. , o.ATTNAME AS columnName
  55. , o.FORMAT_SQL_TYPE(o.ATTTYPID) AS dataType
  56. , FORMAT_PREC(o.ATTTYPID, o.ATTTYPMOD, INT4(o.ATTLEN)) AS length
  57. , CASE WHEN ((((((((((o.ATTTYPID = 20)
  58. OR (o.ATTTYPID = 21)) OR (o.ATTTYPID = 23)) OR (o.ATTTYPID = 26)) OR (o.ATTTYPID = 700))
  59. OR (o.ATTTYPID = 701)) OR (o.ATTTYPID = 1186)) OR (o.ATTTYPID = 1266)) OR (o.ATTTYPID = 1700))
  60. OR (o.ATTTYPID = 2500))
  61. THEN 10 ELSE NULL::INT4 END AS precision_
  62. , FORMAT_SCALE(o.ATTTYPID, o.ATTTYPMOD) AS scale_
  63. , CASE WHEN (o.ATTNOTNULL = 't'::BOOL) THEN 0 ELSE 1 END AS nullableFlag
  64. , o.COLDEFAULT AS defaultValue
  65. , '' AS collationSequence
  66. , o.DESCRIPTION AS description
  67. FROM ADMIN._V_RELATION_COLUMN o
  68. ORDER BY parentCatalog, parentSchema, parentTable, o.ATTNUM
  69. </relmd:sql>
  70. <relmd:objectSelectionsInclusion relmd:sqlFragment="FROM ADMIN._V_RELATION_COLUMN o" relmd:insertLocation="after" relmd:insertPrefix="WHERE">
  71. <relmd:objectSelectionsCondition relmd:catalogExpression="o.DATABASE" relmd:schemaExpression="o.OWNER" relmd:objectExpression="o.NAME"/>
  72. </relmd:objectSelectionsInclusion>
  73. </relmd:columnsImportRules>
  74. <relmd:uniqueKeysImportRules>
  75. <relmd:sql>
  76. SELECT uk.DATABASE AS TABLE_CAT
  77. , uk.OWNER AS TABLE_SCHEM
  78. , uk.RELATION AS TABLE_NAME
  79. , uk.CONSTRAINTNAME AS PK_NAME
  80. , uk.ATTNAME AS COLUMN_NAME
  81. FROM ADMIN._V_RELATION_KEYDATA uk
  82. WHERE uk.CONTYPE = 'p'
  83. ORDER BY uk.DATABASE, uk.OWNER, uk.RELATION, uk.CONSEQ
  84. </relmd:sql>
  85. <relmd:objectSelectionsInclusion relmd:sqlFragment="uk.CONTYPE = 'p'" relmd:insertLocation="after" relmd:insertPrefix="AND">
  86. <relmd:objectSelectionsCondition relmd:catalogExpression="uk.DATABASE" relmd:schemaExpression="uk.OWNER" relmd:objectExpression="uk.RELATION"/>
  87. </relmd:objectSelectionsInclusion>
  88. </relmd:uniqueKeysImportRules>
  89. <relmd:foreignKeysImportRules>
  90. <relmd:sql>
  91. SELECT
  92. FK.DATABASE AS parentCatalog
  93. , FK.OWNER AS parentSchema
  94. , FK.RELATION AS parentTable
  95. , FK.CONSTRAINTNAME AS foreignKeyName
  96. , FK.ATTNAME AS exportedColumnRef
  97. , 0 AS exportedColumnSequence
  98. , FK.PKDATABASE AS importedCatalog
  99. , FK.PKOWNER AS importedSchema
  100. , FK.PKRELATION AS importedTable
  101. , PK.CONSTRAINTNAME AS importedKey
  102. , '' AS description
  103. FROM ADMIN._V_RELATION_KEYDATA FK, ADMIN._V_RELATION_KEYDATA PK
  104. WHERE (FK.CONTYPE = 'f'::"CHAR")
  105. AND FK.PKOBJID = PK.OBJID
  106. ORDER BY parentCatalog, parentSchema, parentTable, FK.CONSEQ
  107. </relmd:sql>
  108. <relmd:objectSelectionsInclusion relmd:sqlFragment="AND FK.PKOBJID = PK.OBJID" relmd:insertLocation="after" relmd:insertPrefix="AND">
  109. <relmd:objectSelectionsCondition relmd:catalogExpression="FK.DATABASE" relmd:schemaExpression="FK.OWNER" relmd:objectExpression="FK.RELATION"/>
  110. <relmd:objectSelectionsCondition relmd:catalogExpression="FK.PKDATABASE" relmd:schemaExpression="FK.PKOWNER" relmd:objectExpression="FK.PKRELATION"/>
  111. </relmd:objectSelectionsInclusion>
  112. </relmd:foreignKeysImportRules>
  113. <relmd:indexesImportRules>
  114. <relmd:sql>
  115. SELECT
  116. VRC.DATABASE AS tableCatalog
  117. , VRC.OWNER AS tableSchema
  118. , VTI.TABLENAME AS tableName
  119. , VTI.INDEXNAME AS indexName
  120. , CASE VTI.INDISUNIQUE WHEN 't' THEN 1 ELSE 0 END isUnique
  121. , 0 AS storageType
  122. , VRC.DATABASE AS parentCatalog
  123. , VRC.OWNER AS parentSchema
  124. , VRC.ATTNUM AS refColumnSequence
  125. , VRC.ATTNAME AS refColumnName
  126. , '' AS description
  127. FROM (ADMIN._V_RELATION_COLUMN VRC
  128. JOIN ADMIN._V_TABLE_INDEX VTI ON ((VRC.NAME = VTI.INDEXNAME)))
  129. WHERE VTI.INDISPRIMARY != 't'
  130. ORDER BY tableCatalog, tableSchema, tableName, indexName
  131. </relmd:sql>
  132. <relmd:objectSelectionsInclusion relmd:sqlFragment="VTI.INDISPRIMARY != 't'" relmd:insertLocation="after" relmd:insertPrefix="AND">
  133. <relmd:objectSelectionsCondition relmd:catalogExpression="VRC.DATABASE" relmd:schemaExpression="VRC.OWNER"/>
  134. </relmd:objectSelectionsInclusion>
  135. </relmd:indexesImportRules>
  136. <relmd:synonymsImportRules>
  137. <relmd:sql>
  138. SELECT o.DATABASE AS parentCatalog, o.OWNER AS parentSchema, s.SYNONYM_NAME AS synonymName
  139. , '' externalHostRef, s.REFDATABASE AS targetCatalog, CASE WHEN s.REFSCHEMA &lt;&gt; o.OWNER THEN s.REFSCHEMA ELSE '' END AS targetSchema, s.REFOBJNAME AS targetRef, s.description AS description
  140. FROM ADMIN._V_OBJ_RELATION o, ADMIN._V_SYNONYM s
  141. WHERE s.OBJID = o.OBJID
  142. ORDER BY parentCatalog, parentSchema, synonymName
  143. </relmd:sql>
  144. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="s.OBJID = o.OBJID" relmd:insertPrefix="AND">
  145. <relmd:objectSelectionsCondition relmd:catalogExpression="o.DATABASE" relmd:schemaExpression="o.SCHEMA" relmd:objectExpression="s.SYNONYM_NAME"/>
  146. </relmd:objectSelectionsInclusion>
  147. </relmd:synonymsImportRules>
  148. <relmd:routinesImportRules>
  149. <relmd:sql>TBD</relmd:sql>
  150. </relmd:routinesImportRules>
  151. <relmd:proceduresImportRules>
  152. <relmd:sql>SELECT X.parentCatalog, X.parentSchema, X.objectName, X.objectType, X.description FROM
  153. (SELECT t.DATABASE AS parentCatalog, t.OWNER AS parentSchema, t.OBJNAME AS objectName,
  154. 'P' AS objectType , td.DESCRIPTION AS description
  155. FROM ((ADMIN._V_OBJ_RELATION t
  156. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  157. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  158. WHERE t.OBJTYPE IN ('PROCEDURE')) AS X
  159. ORDER BY X.parentCatalog, X.parentSchema, X.objectName</relmd:sql>
  160. <relmd:objectSelectionsInclusion relmd:sqlFragment="t.OBJTYPE IN ('PROCEDURE')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  161. <relmd:objectSelectionsCondition relmd:catalogExpression="t.DATABASE" relmd:schemaExpression="t.OWNER" relmd:objectExpression="t.OBJNAME"/>
  162. </relmd:objectSelectionsInclusion>
  163. </relmd:proceduresImportRules>
  164. <relmd:functionsImportRules>
  165. <relmd:sql>SELECT X.parentCatalog, X.parentSchema, X.objectName, X.objectType, X.description FROM
  166. (SELECT t.DATABASE AS parentCatalog, t.OWNER AS parentSchema, t.OBJNAME AS objectName,
  167. 'F' AS objectType , td.DESCRIPTION AS description
  168. FROM ((ADMIN._V_OBJ_RELATION t
  169. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  170. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  171. WHERE t.OBJTYPE IN ('FUNCTION')) AS X
  172. ORDER BY X.parentCatalog, X.parentSchema, X.objectName</relmd:sql>
  173. <relmd:objectSelectionsInclusion relmd:sqlFragment="t.OBJTYPE IN ('FUNCTION')" relmd:insertLocation="after" relmd:insertPrefix="AND">
  174. <relmd:objectSelectionsCondition relmd:catalogExpression="t.DATABASE" relmd:schemaExpression="t.OWNER" relmd:objectExpression="t.OBJNAME"/>
  175. </relmd:objectSelectionsInclusion>
  176. </relmd:functionsImportRules>
  177. <relmd:routineArgumentsImportRules>
  178. <relmd:sql>TBD</relmd:sql>
  179. </relmd:routineArgumentsImportRules>
  180. <relmd:procedureRoutineArgusImportRules>
  181. <relmd:sql>TBD</relmd:sql>
  182. </relmd:procedureRoutineArgusImportRules>
  183. <relmd:functionRoutineArgusImportRules>
  184. <relmd:sql>TBD</relmd:sql>
  185. </relmd:functionRoutineArgusImportRules>
  186. <relmd:sqlObjectImportRules>
  187. <relmd:sql>SELECT parentCatalog, parentSchema, objectName, objectType, externalHostRef, targetCatalog, targetSchema, targetRef,
  188. CASE WHEN targetType = 'TABLE' OR targetType = 'MATERIALIZED VIEW' OR targetType = 'SYSTEM TABLE' THEN 'T'
  189. WHEN targetType = 'VIEW' OR targetType = 'SYSTEM VIEW' THEN 'V' ELSE SUBSTR(targetType,1,1) END
  190. AS targetType, description
  191. FROM
  192. (SELECT t.DATABASE AS parentCatalog, t.OWNER AS parentSchema, t.OBJNAME AS objectName, 'T' AS objectType, '' externalHostRef, '' AS targetCatalog, '' AS targetSchema, '' AS targetRef, ''AS targetType, '' AS description
  193. FROM (ADMIN._V_OBJ_RELATION t LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  194. WHERE t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE')
  195. UNION
  196. SELECT v.DATABASE AS parentCatalog, v.OWNER AS parentSchema, v.OBJNAME AS objectName, 'V' AS objectType, '' externalHostRef, '' AS targetCatalog, '' AS targetSchema, '' AS targetRef, ''AS targetType, '' AS description
  197. FROM (ADMIN._V_OBJ_RELATION v LEFT JOIN ADMIN._T_CLASS vr ON ((v.OBJID = vr.OID)))
  198. WHERE v.OBJTYPE IN ('VIEW', 'SYSTEM VIEW')
  199. UNION
  200. SELECT o.DATABASE AS parentCatalog, s.OWNER AS parentSchema, s.SYNONYM_NAME AS objectName, 'S' as objectType
  201. , '' externalHostRef, s.REFDATABASE AS targetCatalog, CASE WHEN s.REFSCHEMA &lt;&gt; o.OWNER THEN s.REFSCHEMA ELSE '' END AS targetSchema, s.REFOBJNAME AS targetRef, r.OBJTYPE AS targetType, '' AS description
  202. FROM ADMIN._V_OBJ_RELATION o
  203. , ADMIN._V_SYNONYM s
  204. , ADMIN._V_OBJ_RELATION r LEFT JOIN ADMIN._T_CLASS cr ON (r.OBJID = cr.OID)
  205. WHERE s.OBJID = o.OBJID
  206. AND s.REFDATABASE = r.DATABASE
  207. AND s.REFSCHEMA = r.OWNER
  208. AND s.REFOBJNAME = r.OBJNAME
  209. ) x
  210. ORDER BY x.parentCatalog, x.parentSchema, x.objectName</relmd:sql>
  211. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE')" relmd:insertPrefix="AND">
  212. <relmd:objectSelectionsCondition relmd:catalogExpression="t.DATABASE" relmd:schemaExpression="t.OWNER" relmd:objectExpression="t.OBJNAME"/>
  213. </relmd:objectSelectionsInclusion>
  214. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="v.OBJTYPE IN ('VIEW', 'SYSTEM VIEW')" relmd:insertPrefix="AND">
  215. <relmd:objectSelectionsCondition relmd:catalogExpression="v.DATABASE" relmd:schemaExpression="v.OWNER" relmd:objectExpression="v.OBJNAME"/>
  216. </relmd:objectSelectionsInclusion>
  217. <relmd:objectSelectionsInclusion relmd:insertLocation="after" relmd:sqlFragment="s.OBJID = o.OBJID" relmd:insertPrefix="AND">
  218. <relmd:objectSelectionsCondition relmd:catalogExpression="o.DATABASE" relmd:schemaExpression="o.OWNER" relmd:objectExpression="s.SYNONYM_NAME"/>
  219. </relmd:objectSelectionsInclusion>
  220. </relmd:sqlObjectImportRules>
  221. <relmd:catalogsBrowseRules>
  222. <relmd:sql>
  223. SELECT D.DATABASE AS catalogName, '' AS description
  224. FROM ADMIN._V_DATABASE as D
  225. ORDER BY catalogName
  226. </relmd:sql>
  227. <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="FROM ADMIN._V_DATABASE as D" relmd:insertPrefix="WHERE" relmd:objectExpression="D.DATABASE">
  228. <relmd:systemObject relmd:name="SYSTEM"/>
  229. </relmd:systemObjectFilter>
  230. </relmd:catalogsBrowseRules>
  231. <relmd:schemasBrowseRules>
  232. <relmd:catalogGrainSql>
  233. SELECT X.schemaName AS schemaName, '' AS description
  234. FROM
  235. (SELECT t.OWNER AS schemaName
  236. FROM ((ADMIN._V_OBJ_RELATION t
  237. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  238. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  239. WHERE t.DATABASE = '<relmd:catalogSubstitution/>'
  240. AND t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE', 'VIEW', 'SYSTEM VIEW')
  241. ) AS X
  242. GROUP BY schemaName
  243. </relmd:catalogGrainSql>
  244. <relmd:systemObjectFilter relmd:insertLocation="after" relmd:sqlFragment="t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE', 'VIEW', 'SYSTEM VIEW')" relmd:insertPrefix="AND" relmd:objectExpression="t.OWNER">
  245. <relmd:systemObject relmd:name="ADMIN"/>
  246. </relmd:systemObjectFilter>
  247. </relmd:schemasBrowseRules>
  248. <relmd:tablesBrowseRules>
  249. <relmd:schemaGrainSql>
  250. SELECT t.OBJNAME AS objectName, '' AS description
  251. FROM ((ADMIN._V_OBJ_RELATION t
  252. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  253. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  254. WHERE t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE')
  255. AND t.DATABASE = '<relmd:catalogSubstitution/>'
  256. AND t.OWNER = '<relmd:schemaSubstitution/>'
  257. ORDER BY objectName
  258. </relmd:schemaGrainSql>
  259. </relmd:tablesBrowseRules>
  260. <relmd:viewsBrowseRules>
  261. <relmd:schemaGrainSql>
  262. SELECT t.OBJNAME AS objectName, '' AS description
  263. FROM ((ADMIN._V_OBJ_RELATION t
  264. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  265. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  266. WHERE t.OBJTYPE IN ('VIEW', 'SYSTEM VIEW')
  267. AND t.DATABASE = '<relmd:catalogSubstitution/>'
  268. AND t.OWNER = '<relmd:schemaSubstitution/>'
  269. ORDER BY objectName
  270. </relmd:schemaGrainSql>
  271. </relmd:viewsBrowseRules>
  272. <relmd:columnsBrowseRules>
  273. <relmd:objectGrainSql>
  274. SELECT o.ATTNAME AS columnName
  275. , o.DESCRIPTION AS description
  276. FROM ADMIN._V_RELATION_COLUMN o
  277. WHERE o.DATABASE = '<relmd:catalogSubstitution/>'
  278. AND o.OWNER = '<relmd:schemaSubstitution/>'
  279. AND o.NAME = '<relmd:objectSubstitution/>'
  280. ORDER BY o.ATTNUM
  281. </relmd:objectGrainSql>
  282. </relmd:columnsBrowseRules>
  283. <relmd:synonymsBrowseRules>
  284. <relmd:schemaGrainSql>
  285. SELECT s.SYNONYM_NAME AS synonymName, s.description AS description
  286. FROM ADMIN._V_OBJ_RELATION o, ADMIN._V_SYNONYM s
  287. WHERE s.OBJID = o.OBJID
  288. AND o.DATABASE = '<relmd:catalogSubstitution/>'
  289. AND o.OWNER = '<relmd:schemaSubstitution/>'
  290. ORDER BY s.SYNONYM_NAME
  291. </relmd:schemaGrainSql>
  292. </relmd:synonymsBrowseRules>
  293. <relmd:proceduresBrowseRules>
  294. <relmd:schemaGrainSql>TBD
  295. <relmd:schemaSubstitution/>
  296. </relmd:schemaGrainSql>
  297. </relmd:proceduresBrowseRules>
  298. <relmd:functionsBrowseRules>
  299. <relmd:schemaGrainSql>TBD
  300. <relmd:schemaSubstitution/>
  301. </relmd:schemaGrainSql>
  302. </relmd:functionsBrowseRules>
  303. <relmd:objectListingsRules>
  304. <relmd:sql>SELECT X.parentCatalog, X.parentSchema, X.objectName, X.objectType, X.description FROM
  305. (SELECT t.DATABASE AS parentCatalog, t.OWNER AS parentSchema, t.OBJNAME AS objectName,
  306. 'T' AS objectType , td.DESCRIPTION AS description
  307. FROM ((ADMIN._V_OBJ_RELATION t
  308. LEFT JOIN ADMIN._T_DESCRIPTION td ON ((t.OBJID = td.OBJOID)))
  309. LEFT JOIN ADMIN._T_CLASS tr ON ((t.OBJID = tr.OID)))
  310. WHERE t.OBJTYPE IN ('TABLE', 'MATERIALIZED VIEW', 'SYSTEM TABLE')
  311. UNION
  312. SELECT v.DATABASE AS parentCatalog, v.OWNER AS parentSchema, v.OBJNAME AS objectName,
  313. 'V' AS objectType
  314. , vd.DESCRIPTION AS description
  315. FROM ((ADMIN._V_OBJ_RELATION v
  316. LEFT JOIN ADMIN._T_DESCRIPTION vd ON ((v.OBJID = vd.OBJOID)))
  317. LEFT JOIN ADMIN._T_CLASS vr ON ((v.OBJID = vr.OID)))
  318. WHERE v.OBJTYPE IN ('VIEW', 'SYSTEM VIEW')
  319. UNION
  320. SELECT o.DATABASE AS parentCatalog, o.OWNER AS parentSchema, s.SYNONYM_NAME AS objectName,
  321. 'S' AS objectType, s.description AS description
  322. FROM ADMIN._V_OBJ_RELATION o, ADMIN._V_SYNONYM s
  323. WHERE s.OBJID = o.OBJID
  324. ) AS X
  325. ORDER BY X.parentCatalog, X.objectName</relmd:sql>
  326. </relmd:objectListingsRules>
  327. <relmd:driverClass relmd:className="org.netezza.Driver"/>
  328. </relmd:vendorRules>