<?xml version="1.0"?>
  <gstructs xmlns:attr="http://www.mysql.com/grt/struct-attribute">    
      <requires file="structs.db.xml"/>    

      <gstruct name="db.maxdb.Catalog" parent="db.Catalog">      
          <members>        
              <member content-struct-name="db.maxdb.Schema" content-type="object" name="schemata" overrides="db.Schema" type="list" owned="1"/>
          </members>      
      </gstruct>    

      <gstruct name="db.maxdb.Schema" parent="db.Schema">      
          <members>        
              <member content-struct-name="db.maxdb.Table" content-type="object" name="tables" overrides="db.Table" type="list" owned="1"/>
              <member content-struct-name="db.maxdb.View" content-type="object" name="views" overrides="db.View" type="list" owned="1"/>
              <member content-struct-name="db.maxdb.Routine" content-type="object" name="routines" overrides="db.Routine" type="list" owned="1"/>
              <member content-struct-name="db.maxdb.RoutineGroup" content-type="object" name="routineGroups" overrides="db.RoutineGroup" type="list" owned="1"/>
              <member content-struct-name="db.maxdb.Synonym" content-type="object" name="synonyms" overrides="db.Synonym" type="list" owned="1"/>
              <member content-struct-name="db.maxdb.StructuredDatatype" content-type="object" name="structuredTypes" overrides="db.StructuredDatatype" type="list" owned="1"/>
              <member content-struct-name="db.maxdb.Sequence" content-type="object" name="sequences" overrides="db.Sequence" type="list" owned="1"/>
          </members>      
      </gstruct>    

      <gstruct name="db.maxdb.Table" parent="db.Table">      
          <members>        
              <!--
      no way to reverse engineer this :-( 
      <member name="ignoreRollback" type="string" attr:desc="Disables ROLLBACK actions on temporary tables. Applied only to temporary tables." />
      -->        
              <member attr:desc="Forces the usage of variable length style storage for all columns no matter what their data type is." name="noFixedLengthColumn" type="int"/>        
              <member attr:desc="Sample size definitions used to update statistics." name="sample" type="string"/>        
              <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Date of last UPDATE STATISTICS statement for table" name="updStatDate" type="string"/>        
              <member attr:desc="Time of last UPDATE STATISTICS statement for table" name="updStatTime" type="string"/>        
              <member attr:desc="Change date of table" name="alterDate" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Change time of table" name="alterTime" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Table is unloaded (YES | NO)" name="unloaded" type="string"/>        
              <member attr:desc="Privileges that current user has for the table" name="privileges" type="string"/>        		 
              <member attr:desc="Comment about table" name="comment" type="string"/>        
              <member attr:desc="Table ID in hexadecimal format" name="tableid" type="string"/>              
              <member attr:desc="Table was defined with FOR ARCHIVE option (YES|NO)" name="archive" type="string"/>        
              <member attr:desc="Columns stored with variable length (YES|NO); see CREATE TABLE Statement in the MaxDB Library" name="variableColumns" type="string"/>        
          </members>      
      </gstruct>    

      <gstruct name="db.maxdb.Column" parent="db.Column">      
         <members>        
             <member name="defaultFunction" type="string"/>        
             <member attr:desc="Code attribute of column (ASCII | BYTE | UNICODE)" name="codeType" type="string"/>        
             <member attr:desc="Privileges of current user for column" name="privileges" type="string"/>        
             <member attr:desc="Name of domain owner" name="domainOwner" type="string"/>        
             <member attr:desc="Name of domain" name="domainName" type="string"/>        
             <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Change date of column" name="alterDate" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Change time of column" name="alterTime" type="string" attr:dontdiff="1"/>        
         </members>      
      </gstruct>    

      <gstruct name="db.maxdb.SimpleDatatype" parent="db.SimpleDatatype"/>    

      <gstruct attr:caption="MaxDB Structured Datatype" attr:desc="a MaxDB structured datatype object" name="db.maxdb.StructuredDatatype" parent="db.StructuredDatatype"/>    

      <gstruct name="db.maxdb.Index" parent="db.Index">      
	      <members>        
	            <member attr:desc="" name="comment" type="string"/>        
		          <member attr:desc="" name="fileid" type="string"/>        
		          <member attr:desc="" name="filestate" type="string"/>        
		          <member attr:desc="" name="disabled" type="int"/>        		  
		          <member attr:desc="Has this index be accessed in the past?" name="indexUsed" type="int"/>        
		          <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="Page number of the root of the B* tree" name="rootPage" type="int"/>        
		          <member attr:desc="Type of the B* tree" name="filetype" type="string"/>        
		          <member attr:desc="Indicates how many pages are used by the index" name="usedPages" type="int"/>        
		          <member attr:desc="Indicates how many pages are used by the index in the B* tree index" name="indexPages" type="int"/>        
		          <member attr:desc="Indicates how many leaf pages are used by the index" name="leafPages" type="int"/>        
		          <member attr:desc="Number of index levels in the B* tree" name="indexLevels" type="int"/>        
		          <member attr:desc="Space used of all pages in the B* tree (as a percentage)" name="totalSpaceUsed" type="int"/>        
		          <member attr:desc="Space used of the root page in the B* tree (as a percentage)" name="rootPageSpace" type="int"/>        
		          <member attr:desc="Space used of the index pages in the B* tree (as a percentage)" name="indexPagesSpace" type="int"/>        
		          <member attr:desc="Contains the minimum used space of the index pages in the B* tree (as a percentage)" name="indexPageSpaceMin" type="int"/>        
		          <member attr:desc="Contains the maximum used space of the index pages in the B* tree (as a percentage)" name="indexPageSpaceMax" type="int"/>        
		          <member attr:desc="Contains the used space of the leaf pages in the B* tree (as a percentage)" name="leafPagesSpace" type="int"/>        
		          <member attr:desc="Contains the minimum used space of the leaf pages in the B* tree (as a percentage)" name="leafPagesSpaceMin" type="int"/>        
		          <member attr:desc="Contains the maximum used space of the leaf pages in the B* tree (as a percentage)" name="leafPagesSpaceMax" type="int"/>        
		          <member attr:desc="Only for secondary keys: number of different values of the indexed columns" name="numDistinctValues" type="int"/>        
		          <member attr:desc="Contains the average length of an index value" name="averageSkLength" type="int"/>        
		          <member attr:desc="Contains the minimum length of an index value" name="minSkLength" type="int"/>        
		          <member attr:desc="Contains the maximum length of an index value" name="maxSkLength" type="int"/>        
		          <member dec="Contains contains the minimum length of a separator" name="minSeperatorLength" type="int"/>        
		          <member dec="Contains the average length of a separator in the B* tree" name="avgSeperatorLength" type="int"/>        
		          <member dec="Contains the maximum length of a separator" name="maxSeperatorLength" type="int"/>        
		          <member attr:desc="Primary key: contains the number of rows in the table" name="numRowsPk" type="int"/>        
		          <member attr:desc="Primary key: contains the average number of keys for each invert list" name="avgNumPkPerList" type="int"/>        
		          <member attr:desc="Primary key: contains the minimum number of keys for each invert list" name="minNumPkPerList" type="int"/>        
		          <member attr:desc="Primary key: contains the maximum number of keys for each invert list" name="maxNumPkPerList" type="int"/>        
		          <member attr:desc="Values with selectivity &lt;= 1%, selectivity less or equal 1%" name="selectivityLess1Percent" type="int"/>        
		          <member attr:desc="Values with selectivity &lt;= 5%, selectivity between 1% and 5%" name="selectivityLess5Percent" type="int"/>        
		          <member attr:desc="Values with selectivity &lt;= 10%, selectivity between 5% and 10%" name="selectivityLess10Percent" type="int"/>        
		          <member attr:desc="Values with selectivity %lt;= 25%, selectivity between 10% and 25%" name="selectivityLess25Percent" type="int"/>        
		          <member attr:desc="Values with selectivity &gt; 25%" name="selectivityGreater25Percent" type="int"/>        
	        </members>       	 
      </gstruct>    

      <gstruct name="db.maxdb.IndexColumn" parent="db.IndexColumn">      
	        <members>        
		          <member attr:desc="" name="fileid" type="string"/>        
		          <member attr:desc="" name="filestate" type="string"/>        
		          <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
	        </members>      
      </gstruct>    

      <gstruct name="db.maxdb.ForeignKey" parent="db.ForeignKey">      
	        <members>        	      
		          <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
	        </members>      
      </gstruct>    
  
      <gstruct name="db.maxdb.Trigger" parent="db.Trigger">      
	        <members>        	      
		          <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="SQL definition" name="definition" type="string"/>        
		          <member name="comment" type="string"/>        
	        </members>      
      </gstruct>    

      <gstruct name="db.maxdb.View" parent="db.View">      
          <members>        
		         <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
		         <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
		         <member attr:desc="Date of last UPDATE STATISTICS statement for view table" name="updStatDate" type="string"/>        
		         <member attr:desc="Time of last UPDATE STATISTICS statement for view table" name="updStatTime" type="string"/>        
		         <member attr:desc="Change date of view table" name="alterDate" type="string" attr:dontdiff="1"/>        
		         <member attr:desc="Change time of view table" name="alterTime" type="string" attr:dontdiff="1"/>        
		         <member attr:desc="View table is unloaded (YES | NO)" name="unloaded" type="string"/>        
		         <member attr:desc="Privileges of user for view table" name="privileges" type="string"/>        		 
		         <member name="comment" type="string"/>        
          </members>      
      </gstruct>    
  
      <gstruct attr:caption="MaxDB Routine Group" attr:desc="a MaxDB routine group" name="db.maxdb.RoutineGroup" parent="db.RoutineGroup"/>    

      <gstruct attr:caption="MaxDB Routine" attr:desc="a MaxDB Stored Procedure or Stored Function" name="db.maxdb.Routine" parent="db.Routine">      
          <members>        
               <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
               <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
               <member name="comment" type="string"/>               
          </members>      
      </gstruct>    
  
      <gstruct attr:caption="MaxDB Synonym" attr:desc="a MaxDB database synonym object" name="db.maxdb.Synonym" parent="db.Synonym">      
	        <members>        	      
		          <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
		          <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        		
		          <member name="comment" type="string"/>        
	        </members>      
      </gstruct>    
  
      <gstruct attr:caption="MaxDB Sequence" attr:desc="a MaxDB database sequence object" name="db.maxdb.Sequence" parent="db.Sequence">      
          <members>              
              <member attr:desc="Creation date" name="createDate" type="string" attr:dontdiff="1"/>        
              <member attr:desc="Creation time" name="createTime" type="string" attr:dontdiff="1"/>        
              <member name="comment" type="string"/>        
          </members>      
      </gstruct>    

  </gstructs>
