<?xml version="1.0"?>
<!-- Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. -->
<miv>

<miv_schemas type="SQLStatement" default="true">
        SELECT rtrim(schemaname) schemaname
        FROM syscat.schemata  
</miv_schemas>

<miv_tables type="SQLStatement" default="true">
        SELECT rtrim(tabname) table_name 
        FROM syscat.tables  
        WHERE tabschema = <Parameter name="owner"/> 
                AND type = 'T'   
                AND status = 'N'   
        ORDER BY table_name
</miv_tables>

<miv_views type="SQLStatement" default="true">
	SELECT rtrim(viewname) view_name,
	       rtrim(viewname) business_name,
               '' description,
               text view_definition        
	FROM syscat.views
	WHERE viewschema = <Parameter name="owner"/> 
	ORDER BY view_name
</miv_views>

<miv_sequences type="SQLStatement" default="true">
	SELECT rtrim(seqname) sequence_name,
	       rtrim(seqname) business_name,
               '' description
	FROM syscat.sequences
	WHERE seqschema = <Parameter name="owner"/> 
	ORDER BY sequence_name
</miv_sequences>

<miv_columns type="SQLStatement" default="true">
        SELECT rtrim(col.tabname) entity_name, 
               col.colno position, 
               rtrim(col.colname), 
               col.typename, 
               col.length, 
               col.length, 
               col.scale, 
               col.remarks, 
               col.nulls,
               '' datatypeowner,
               col.default,
               CHAR(col.codepage) charset,
               1 bytes_per_char,
               'N' use_char_semantics
        FROM syscat.columns col
        WHERE col.tabschema = <Parameter name="owner"/>
</miv_columns>

<miv_unique_keys type="SQLStatement" default="true">
       SELECT rtrim(tabname) entity_name, 
              rtrim(constname) key_name,
              rtrim(constname) business_name,
              remarks description,
              rtrim(type)
      FROM    syscat.tabconst
      WHERE   upper(type) IN ('U', 'P', 'K')
      AND     tabschema = <Parameter name="owner"/> 
      ORDER BY key_name
</miv_unique_keys>

<miv_foreign_keys type="SQLStatement" default="true">
      SELECT rtrim(fkkey.tabname) entity_name, 
             rtrim(fkkey.constname) key_name, 
             rtrim(fkkey.constname) business_name, 
             '' description, 
             fkkey.refkeyname 
      FROM   syscat.references fkkey 
      WHERE  fkkey.tabschema = <Parameter name="owner"/>
      ORDER BY key_name
</miv_foreign_keys>

<miv_key_columns type="SQLStatement" default="true">
      SELECT rtrim(col.constname) key_name, 
             rtrim(col.colname) column_name, 
             col.colseq position 
      FROM   syscat.keycoluse col, 
             syscat.keycoluse refcol 
      WHERE  col.tabname = refcol.tabname 
      AND    col.colname = refcol.colname 
      AND    col.tabschema = refcol.tabschema 
      AND    col.constname = refcol.constname
      AND    col.tabschema = <Parameter name="owner"/> 
</miv_key_columns>

<miv_fk_tables type="SQLStatement" default="true">
      SELECT  rtrim(refkey.tabname) orig_table_name,
              rtrim(refkey.reftabname) foreign_table_name,
              fktable.remarks foreign_table_description
      FROM    syscat.references refkey,
              syscat.tables fktable,
              syscat.tabconst const
      WHERE   refkey.tabname = fktable.tabname
      AND     refkey.tabschema = fktable.tabschema
      AND     upper(const.type) = 'F'
      AND     const.tabname = fktable.tabname
      AND     const.tabschema = fktable.tabschema
      AND     refkey.tabschema = <Parameter name="owner"/>
</miv_fk_tables>

<miv_functions type="SQLStatement" default="true">
      SELECT   b.ROUTINENAME, a.SPECIFICNAME, b.PARMNAME,
               b.TYPENAME, b.ROWTYPE, b.ORDINAL
      FROM     SYSCAT.ROUTINES a, SYSCAT.ROUTINEPARMS b
      WHERE    a.ROUTINESCHEMA = <Parameter name="owner"/>
      AND      a.FUNCTIONTYPE = 'S'
      AND      a.LANGUAGE = 'SQL'
      AND      a.SPECIFICNAME = b.SPECIFICNAME 
      AND      a.ROUTINESCHEMA = b.ROUTINESCHEMA
      AND      a.ROUTINENAME LIKE <Parameter name="filter"/>
      ORDER BY a.SPECIFICNAME
</miv_functions>

<miv_parameters type="SQLStatement" default="true">
      SELECT   ROUTINENAME, PARMNAME, TYPENAME, ROWTYPE, ORDINAL 
      FROM     SYSCAT.ROUTINEPARMS 
      WHERE    SPECIFICNAME = <Parameter name="object"/>
</miv_parameters>

<miv_implementations type="SQLStatement" default="true">
      SELECT   ROUTINENAME, TEXT  
      FROM     SYSCAT.ROUTINES 
      WHERE    SPECIFICNAME = <Parameter name="object"/>
</miv_implementations>

<miv_function_overloading_supported type="SQLStatement" default="true">true</miv_function_overloading_supported>

<miv_capabilities type="ResultSet">
	<table_supported>true</table_supported>
	<view_supported>true</view_supported>
	<sequence_supported>true</sequence_supported>
	<table_name_filter_supported>true</table_name_filter_supported>
	<view_name_filter_supported>true</view_name_filter_supported>
	<sequence_name_filter_supported>true</sequence_name_filter_supported>
	<business_area_supported>false</business_area_supported>	
	<business_area_table_supported>false</business_area_table_supported>	
	<business_area_view_supported>false</business_area_view_supported>	
	<business_area_sequence_supported>false</business_area_sequence_supported>	
	<application_owner_supported>true</application_owner_supported>
	<table_fklevel_supported>true</table_fklevel_supported>
	<reimport_supported>true</reimport_supported>
	<data_object_at_leaf_levels>true</data_object_at_leaf_levels>
	<multiple_tree_supported>false</multiple_tree_supported>
        <function_supported>true</function_supported>
        <function_name_filter_supported>true</function_name_filter_supported>
</miv_capabilities>

</miv>
