dmaClass_Scope

A Scope object provides access to the query capabilities of a document space or collection of document spaces.

Class ID: dmaClass_Scope
Superclass: DMA

Interfaces

IUnknown
IdmaObject
IdmaProperties
IdmaObjectFactory
IdmaScope

Properties

Name

Impl. Required

System Gen'ed

Read-Only

Value Required

Type

Cardinality

Required Class

OIID

-

Yes

Yes

-

String

Scalar

Class Description

Yes

Yes

Yes

Yes

Object

Scalar

Class Description

This

-

Yes

Yes

Yes

Object

Scalar

Scope

Create Pending

-

Yes

Yes

Yes

Boolean

Scalar

Update Pending

-

Yes

Yes

Yes

Boolean

Scalar

Delete Pending

-

Yes

Yes

Yes

Boolean

Scalar

Searchable Class Descriptions

Yes

Yes

Yes

Yes

Object

List

Class Description

Query Construction Class Descriptions

Yes

Yes

Yes

Yes

Object

List

Class Description

Operators

Yes

Yes

Yes

-

Object

List

Query Operator Description

Has Arbitrary Order By

Yes

Yes

Yes

Yes

Boolean

Scalar

Has Distinct

Yes

Yes

Yes

Yes

Boolean

Scalar

Component Scopes

-

Yes

Yes

-

Object

List

Scope

Collation Sequence Ids

Yes

Yes

Yes

-

ID

List

Has Elimination

Yes

Yes

Yes

Yes

Boolean

Scalar

Metadata Epoch

-

Yes

Yes

-

ID

Scalar

Detailed Description

The scope of a query may be a single Document Space, or span multiple Document Spaces. DMA distributes the query across the scope, resolves any differences among Document Spaces, and integrates the result set.

Property Descriptions

• OIID {dmaProp_OIID}
Property Inherited from DMA

• Class Description {dmaProp_ClassDescription}
Property Inherited from DMA

• This {dmaProp_This}
Property Inherited from DMA

• Create Pending {dmaProp_CreatePending}
Property Inherited from DMA

• Update Pending {dmaProp_UpdatePending}
Property Inherited from DMA

• Delete Pending {dmaProp_DeletePending}
Property Inherited from DMA

• Searchable Class Descriptions {dmaProp_SearchableClassDescriptions}

The value of this property is a list of Class Description objects, one for each class that can be referenced in queries using the current Scope.

• Query Construction Class Descriptions {dmaProp_QueryConstructionClassDescriptions}

This is a list of class descriptions for the infrastructure classes that can be used to construct a valid query parse tree for this scope.

When constructing a parse tree object for a query that will be submitted to the IdmaScope::ExecuteSearch method of the current scope object, the IdmaClassDescription::CreateInstance() method of the appropriate Class Description object in this list can always be used to create the object. It is a requirement on all Scope objects that the list of Class Description objects in this list include every class needed to build a valid query parse tree, and that the IdmaClassDescription::CreateInstance() method will succeed, resources permitting. For example, the root object of the parse tree is of class dmaClass_Query. There is always a class description for dmaClass_Query in this list, and the CreateInstance() method of that class description must succeed in creating an instance of the class.

• Operators {dmaProp_Operators}

The value of this property is a list of the Query Operator Description objects for every query operator supported by the current Scope object.

• Has Arbitrary Order By {dmaProp_HasArbitraryOrderBy}

This Boolean flag indicates whether this scope supports arbitrary OrderBy lists. This property should have the value DMA_TRUE if and only if all selectable properties in the scope are orderable, and the maximum permitted number of OrderBy list elements is greater than or equal to the maximum permitted number of Selections list elements.

This property gives information to the middleware software that implements merged scopes which can be useful if distinct query result rows are required. If the value of this property is TRUE for all component scopes of a merged scope, the middleware software is allowed to augment the Orderings list such that it specifies each property in the query's Selections list. This enables a merged scope to perform a merge instead of a sort of the result rows returned from its component scopes prior to returning its own result rows.

• Has Distinct {dmaProp_HasDistinct}

This Boolean flag indicates whether this scope supports dmaProp_DistinctRowsRequested on the QueryRoot object. If that flag is set, that indicates that duplicate result rows are to be suppressed. Normally, a sort of the result rows is required to accomplish duplicate result row suppression, and, if any string properties are involved, text collation sequences come into play.

• Component Scopes {dmaProp_ComponentScopes}

The list of Scope Objects from which the current Scope object was created.

A list of scope objects whose metadata was combined to create the current scope. If the Scope belongs to a Doc Space, then this property need not be supported, but if it is, the list will have zero elements.

• Collation Sequence Ids {dmaProp_CollationSequenceIds}

This property is the list of collation sequence Id’s supported by the scope. The first Id in the list, if any, is the default. This list may be empty if and only if there are no orderable string properties on any searchable class in the Scope.

DMA defines a number of well known collation sequences.

• Has Elimination {dmaProp_HasElimination}

If the value of this property is DMA_TRUE it indicates that, when requested to do so, the Scope is willing to apply the rules of three-valued logic to eliminate undefined elements from queries which are delivered to it, prior to executing the query. (An undefined element is a class, property or operator not present in the Scope's metadata). If the value of this property is DMA_FALSE, the Scope is not willing to perform such elimination, and will always generate an error if presented with a query containing undefined elements.

• Metadata Epoch {dmaProp_MetadataEpoch}

The Metadata Epoch is a unique identifier for a particular state of the metadata space of the object.

Two instances may deliver the same value for the Metadata Epoch only if their metadata spaces are identical.