# Class CIM_SqlUserDefinedType
extends CIM_SqlObject

A user-defined type is a schema object, identified by a <user -defined type name>. The definition of a userdefined type specifies a number of components, including in particular a list of attribute definitions. Although the attribute definitions are said to define the representation of the user-defined type, in fact they implicitly define certain functions (observers and mutators) that are part of the interface of the user-defined type; physical representations of user-defined type values are implementation-dependent. The representation of a user-defined type is expressed either as a single data type (some predefined data type, called the source type), in which case the user-defined type is said to be a distinct type, or as a list of attribute definitions, in which case it is said to be a structured type. A user-defined type is described by a user-defined type descriptor. A user-defined type descriptor contains: - The name of the user-defined type (<user-defined type name>). This is the type designator of that type, used in type precedence lists. - An indication of whether the user-defined type is a structured type or a distinct type. - The ordering form for the user-defined type (EQUALS, FULL, or NONE). - The ordering category for the user-defined type (RELATIVE, MAP, or STATE). - A <specific routine designator> identifying the ordering function, depending on the ordering category. - If the user-defined type is a direct subtype of another user -defined type, then the name of that user-defined type. - If the representation is a predefined data type, then the descriptor of that type; otherwise the attribute descriptor of every originally-defined attribute and every inherited attribute of the user-defined type. - An indication of whether the user-defined type is instantiable or not instantiable. - An indication of whether the user-defined type is final or not final. - The transform descriptor of the user-defined type. - If the user-defined type is a structured type, then: - Whether the referencing type of the structured type has a user -defined representation, a derived representation, or a system -defined representation. - If user-defined representation is specified, then the type descriptor of the representation type of the referencing type of the structured type; otherwise, if derived representation is specified, then the list of attributes. - If the <method specification list> is specified, then for each <method specification> contained in <method specification list>, a method specification descriptor that includes: - The <method name>. - The <specific method name>. - The <SQL parameter declaration list> augmented to include the implicit first parameter with parameter name SELF. - The <language name>. - If the <language name> is not SQL, then the <parameter style>. - The <returns data type>. - The <result cast from type>, if any. - An indication as to whether the <method specification> is an <original method specification> or an <overriding method specification>. - If the <method specification> is an <original method specification>, then an indication of whether STATIC or CONSTRUCTOR is specified. - An indication whether the method is deterministic. - An indication whether the method possibly writes SQL data, possibly reads SQL data, possibly contains SQL, or does not possibly contain SQL. - An indication whether the method should not be invoked if any argument is the null value, in which case the value of the method is the null value.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_SqlObject
|
+--CIM_SqlUserDefinedType

## Direct Known Subclasses

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | A user-defined type is a schema object, identified by a <user -defined type name>. The definition of a userdefined type specifies a number of components, including in particular a list of attribute definitions. Although the attribute definitions are said to define the representation of the user-defined type, in fact they implicitly define certain functions (observers and mutators) that are part of the interface of the user-defined type; physical representations of user-defined type values are implementation-dependent. The representation of a user-defined type is expressed either as a single data type (some predefined data type, called the source type), in which case the user-defined type is said to be a distinct type, or as a list of attribute definitions, in which case it is said to be a structured type. A user-defined type is described by a user-defined type descriptor. A user-defined type descriptor contains: - The name of the user-defined type (<user-defined type name>). This is the type designator of that type, used in type precedence lists. - An indication of whether the user-defined type is a structured type or a distinct type. - The ordering form for the user-defined type (EQUALS, FULL, or NONE). - The ordering category for the user-defined type (RELATIVE, MAP, or STATE). - A <specific routine designator> identifying the ordering function, depending on the ordering category. - If the user-defined type is a direct subtype of another user -defined type, then the name of that user-defined type. - If the representation is a predefined data type, then the descriptor of that type; otherwise the attribute descriptor of every originally-defined attribute and every inherited attribute of the user-defined type. - An indication of whether the user-defined type is instantiable or not instantiable. - An indication of whether the user-defined type is final or not final. - The transform descriptor of the user-defined type. - If the user-defined type is a structured type, then: - Whether the referencing type of the structured type has a user -defined representation, a derived representation, or a system -defined representation. - If user-defined representation is specified, then the type descriptor of the representation type of the referencing type of the structured type; otherwise, if derived representation is specified, then the list of attributes. - If the <method specification list> is specified, then for each <method specification> contained in <method specification list>, a method specification descriptor that includes: - The <method name>. - The <specific method name>. - The <SQL parameter declaration list> augmented to include the implicit first parameter with parameter name SELF. - The <language name>. - If the <language name> is not SQL, then the <parameter style>. - The <returns data type>. - The <result cast from type>, if any. - An indication as to whether the <method specification> is an <original method specification> or an <overriding method specification>. - If the <method specification> is an <original method specification>, then an indication of whether STATIC or CONSTRUCTOR is specified. - An indication whether the method is deterministic. - An indication whether the method possibly writes SQL data, possibly reads SQL data, possibly contains SQL, or does not possibly contain SQL. - An indication whether the method should not be invoked if any argument is the null value, in which case the value of the method is the null value.
Experimental | boolean | true
UMLPackagePath | string | CIM::Database::Sql
Version | string | 2.12.0

## Class Properties

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationTime | datetime | CIM_SqlObject
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
Generation | uint64 | CIM_ManagedElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_SqlObject
Name | string | CIM_ManagedSystemElement
OperatingStatus | uint16 | CIM_ManagedSystemElement
PrimaryStatus | uint16 | CIM_ManagedSystemElement
Status | string | CIM_ManagedSystemElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods