SELECT Statement ISA Operator

[This is preliminary documentation and subject to change.]

The ISA operator occurs within the WHERE clause in the same place as any other relational operator. This operator is used to assert that an instance is a member of a particular class hierarchy. For example, the following statement requests notification of instance notification events for all instances that are members of any class deriving from the LogicalDisk class:

select * from __InstanceModificationEvent 
where TargetInstance isa LogicalDisk
 

Using this SELECT statement differs from using an identical statement that replaces the ISA operator with an equal sign (=). The statement with the equal sign only returns instances that are members of the LogicalDisk class. No instances from derived classes are included in the result set. When requesting a hierarchy of event classes, using the ISA operator eliminates the need to keep track of new derived classes. Subclasses of LogicalDisk that appear after the SELECT statement has been submitted are automatically included in the result set if they satisfy the criteria specified by the WHERE clause.

When a modifier such as TargetInstance is used with a property, the property can be applied to the target class and to any of its subclasses. Because weak typing is used, CIMOM cannot detect an invalid property name at the time the query is submitted:

Select * from __InstanceModificationEvent within 10.0 
    where TargetInstance isa "Win32_LogicalDisk" 
    and   TargetInstance.FreeSpace < 1000000
 

The ISA operator can also be used in a SELECT statement with a property that is an embedded object. The result set will include all instances of classes that are derived from the embedded object class.