3.1.1.3 Table Definitions

The following sections specify the schemas and other information for the tables used by COMA. These definitions cover all catalog versions, but when differences exist between versions, these differences are called out. Each table definition has the following information:

Table identifier: The GUID for the table.

AuxiliaryGuid: An additional GUID that is returned by IClientTableInfo::GetClientTableInfo (section 3.1.4.7.1), if this table specifies such a value.

Defined in catalog version: The catalog versions for which the table is defined.

Prerequisites: Restrictions, other than catalog version, on when the table is defined.

Hidden bitness property: Specifies whether the table defines a hidden bitness property.

Supported query templates: A set of templates from which supported queries can be constructed. Each template is a list of cells, with parameters supplied by the client indicated by <A>, <B>, etc. Empty queries (no query cells) are listed as "Empty query". See QueryCellArray (section 2.2.1.5) and QueryComparisonData (section 2.2.1.6) for more details about how queries are represented.

Primary key: The set of properties in the primary key.

Other referential constraints: Referential constraints on table entries besides the primary key constraint (nonreferential constraints are specified in the individual property definitions).

Write restrictions: Specifies which types of writes (add, update, remove), if any, are supported by the table, and optionally additional restrictions on which entries can be legally modified.

Cascade: Specifies the cascade that MUST be performed when an entry is removed from the table.

Populate: Specifies the populate that MAY be performed when an entry is added to the table.

Properties: The table's schema, as returned by IClientTableInfo::GetClientTableInfo, and additional information about its properties. This is specified in a tabular format similar to the following example, followed by descriptions of each of the properties.

 Index (3.00)

 Index (4.00/.500)

 Property name

 Type

 Size

 Flags

 Meta

0

0

ExampleProp1

eDT_GUID

16

0x00000003

RO

-

1

ExampleProp2

eDT_LPWSTR

variable

0x00000000

IN, NT

1

2

ExampleProp3

eDT_ULONG

4

0x00000002

TR

Index (versions): The zero-based index of a property in the table for a particular catalog version or set of catalog versions. The index values specify the order in which properties are exchanged with the reads from the table or the writes to the table. They are additionally used as unique identifiers for properties in QueryCell (section 2.2.1.4) structures and TableDetailedError (section 2.2.1.16) records. If a property has a dash in the index column for a catalog version, this indicates that the property is not defined for that version.

Property name: A descriptive identifier for the property. These identifiers are used throughout this document to refer to a particular property in a table, but they are not used on the wire.

Type: The eDataType (section 2.2.1.2) value that specifies the type of the property. This value MUST be used for the dataType field of the PropertyMeta (section 2.2.1.7) structure for this property.

Size: The size of the property (fixed size or maximum size). See PropertyMeta for more details about the meaning of this size and how it is represented.

Flags: The value that MUST be used in the Flags field of the PropertyMeta structure for this property. See PropertyMeta for more details about these flags.

Meta: A list of meta properties that are not implied by Flags. The following mnemonics are used.

 Mnemonic

 Meaning

IN

The property is an internal property (section 3.1.1.2.7).

RO

The property is read-only (section 3.1.1.2.8).

TR

The property can be triggered (section 3.1.1.2.9).

NT

The property requires the NoTouch bit (section 2.2.1.8) to be set for writes to the table.