2.2.3.8 CPMCreateQueryIn

The CPMCreateQueryIn message creates a new query. The format of the CPMCreateQueryIn message that follows the header is shown in the following diagram.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Size

CColumnSetPresent

paddingCColumnSetPresent (variable)

ColumnSet (variable)

...

CRestrictionPresent

paddingCRestrictionPresent (variable)

Restriction (variable)

...

CSortSetPresent

paddingCSortSetPresent (variable)

SortSet (variable)

...

CCategorizationSetPresent

paddingCCategorizationSetPresent (variable)

CCategorizationSet (variable)

...

RowSetProperties (20 bytes)

...

...

PidMapper (variable)

...

Size (4 bytes): A 32-bit unsigned integer indicating the number of bytes from the beginning of this field to the end of the message.

CColumnSetPresent (1 byte): A byte field indicating if the ColumnSet field is present. This field MUST be set to one of the following values.

Value

Meaning

0x00

The ColumnSet field MUST be absent.

0x01

The ColumnSet field MUST be present.

paddingCColumnSetPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, its length is nonzero), the value that it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent in CColumnSetPresent is set to 0x00.

ColumnSet (variable): A CColumnSet structure containing the property offsets for properties in CPidMapper that are returned as acolumn.

CRestrictionPresent (1 byte): A byte field indicating if the Restriction field is present.

Note If set to any nonzero value, the Restriction field MUST be present. If set to 0x00, Restriction MUST be absent.

paddingCRestrictionPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, its length is nonzero), the value that it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent in CRestrictionPresent is set to 0x00.

Restriction (variable): A CRestriction structure containing the command tree of the query.

CSortSetPresent (1 byte): A byte field indicating if the SortSet field is present.

Note If set to any nonzero value, the SortSet field MUST be present. If set to 0x00, SortSet MUST be absent.

paddingCSortSetPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, the length is nonzero), the value that it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent if CSortSetPresent is set to 0x00.

SortSet (variable): A CSortSet structure indicating the sort order of the query.

CCategorizationSetPresent (1 byte): A byte field indicating if the CCategorizationSet field is present.

Note If set to any nonzero value, the CCategorizationSet field MUST be present. If set to 0x00, CCategorizationSet MUST be absent.

paddingCCategorizationSetPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, the length is nonzero), the value that it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent if CCategorizationSetPresent is set to 0x00.

CCategorizationSet (variable): A CCategorizationSet structure that contains the groups for the query.

RowSetProperties (20 bytes): A CRowsetProperties structure providing configuration information for the query.

PidMapper (variable): A CPidMapper structure that maps from property offsets to full property descriptions.