DMA Well Known Query Operators

Name

Result Type

Min # of Opnds

Max # of Opnds

Operand Type(s)

Safe to Eliminate

Define

And

Boolean

2

-1

Boolean

No

dmaQueryOperator_And

Or

Boolean

2

-1

Boolean

No

dmaQueryOperator_Or

Not

Boolean

1

1

Boolean

Yes

dmaQueryOperator_Not

Equal Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_EqualBinary

Unequal Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_UnequalBinary

Greater Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_GreaterBinary

Greater Or Equal Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_GreaterOrEqualBinary

Less Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_LessBinary

Less Or Equal Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_LessOrEqualBinary

Equal String

Boolean

2

2

String

Yes

dmaQueryOperator_EqualString

Unequal String

Boolean

2

2

String

Yes

dmaQueryOperator_UnequalString

Greater String

Boolean

2

2

String

Yes

dmaQueryOperator_GreaterString

Greater Or Equal String

Boolean

2

2

String

Yes

dmaQueryOperator_GreaterOrEqualString

Less String

Boolean

2

2

String

Yes

dmaQueryOperator_LessString

Less Or Equal String

Boolean

2

2

String

Yes

dmaQueryOperator_LessOrEqualString

Equal Boolean

Boolean

2

2

Boolean

Yes

dmaQueryOperator_EqualBoolean

Unequal Boolean

Boolean

2

2

Boolean

Yes

dmaQueryOperator_UnequalBoolean

Equal Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_EqualInteger32

Unequal Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_UnequalInteger32

Greater Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_GreaterInteger32

Greater Or Equal Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_GreaterOrEqualInteger32

Less Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_LessInteger32

Less Or Equal Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_LessOrEqualInteger32

Equal Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_EqualFloat64

Unequal Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_UnequalFloat64

Greater Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_GreaterFloat64

Greater Or Equal Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_GreaterOrEqualFloat64

Less Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_LessFloat64

Less Or Equal Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_LessOrEqualFloat64

Equal Date Time

Boolean

2

2

DateTime

Yes

dmaQueryOperator_EqualDateTime

Unequal Date Time

Boolean

2

2

DateTime

Yes

dmaQueryOperator_UnequalDateTime

Greater Date Time

Boolean

2

2

DateTime

Yes

dmaQueryOperator_GreaterDateTime

Greater Or Equal Date Time

Boolean

2

2

DateTime

Yes

dmaQueryOperator_GreaterOrEqualDateTime

Less DateTime

Boolean

2

2

DateTime

Yes

dmaQueryOperator_LessDateTime

Less Or Equal Date Time

Boolean

2

2

DateTime

Yes

dmaQueryOperator_LessOrEqualDateTime

Equal Id

Boolean

2

2

ID

Yes

dmaQueryOperator_EqualId

Unequal Id

Boolean

2

2

ID

Yes

dmaQueryOperator_UnequalId

Equal Object

Boolean

2

2

Object

Yes

dmaQueryOperator_EqualObject

Is Defined

Boolean

1

1

Any

No

dmaQueryOperator_IsDefined

Is Null

Boolean

1

1

Any

Yes

dmaQueryOperator_IsNull

Like

Boolean

3

3

String

Yes

dmaQueryOperator_Like

Is Class

Boolean

2

2

Int32; ID

Yes

dmaQueryOperator_IsClass

Add Integer32

Int32

2

-1

Int32

Yes

dmaQueryOperator_AddInteger32

Subtract Integer32

Int32

2

2

Int32

Yes

dmaQueryOperator_SubtractInteger32

Negate Integer32

Int32

1

1

Int32

Yes

dmaQueryOperator_NegateInteger32

Absolute Value Integer32

Int32

1

1

Int32

Yes

dmaQueryOperator_AbsoluteValueInteger32

Multiply Integer32

Int32

2

-1

Int32

Yes

dmaQueryOperator_MultiplyInteger32

Divide Integer32

Int32

2

2

Int32

Yes

dmaQueryOperator_DivideInteger32

Add Float64

Float64

2

-1

Float64

Yes

dmaQueryOperator_AddFloat64

Subtract Float64

Float64

2

2

Float64

Yes

dmaQueryOperator_SubtractFloat64

Negate Float64

Float64

1

1

Float64

Yes

dmaQueryOperator_NegateFloat64

Absolute Value Float64

Float64

1

1

Float64

Yes

dmaQueryOperator_AbsoluteValueFloat64

Multiply Float64

Float64

2

-1

Float64

Yes

dmaQueryOperator_MultiplyFloat64

Divide Float64

Float64

2

2

Float64

Yes

dmaQueryOperator_DivideFloat64

Integer32 To Float64

Float64

1

1

Int32

Yes

dmaQueryOperator_Integer32ToFloat32

Float64 To Integer32 Round

Int32

1

1

Float64

Yes

dmaQueryOperator_Float64ToInteger32Round

Float64 To Integer32 Truncate

Int32

1

1

Float64

Yes

dmaQueryOperator_Float64ToInteger32Truncate

Exists

Boolean

1

1

Class

Yes

dmaQueryOperator_Exists

In Binary

Boolean

2

2

Binary

Yes

dmaQueryOperator_InBinary

In Boolean

Boolean

2

2

Boolean

Yes

dmaQueryOperator_InBoolean

In String

Boolean

2

2

String

Yes

dmaQueryOperator_InString

In Integer32

Boolean

2

2

Int32

Yes

dmaQueryOperator_InInteger32

In Float64

Boolean

2

2

Float64

Yes

dmaQueryOperator_InFloat64

In Date Time

Boolean

2

2

DateTime

Yes

dmaQueryOperator_InDateTime

In Id

Boolean

2

2

ID

Yes

dmaQueryOperator_InId

dmaQueryOperator_And

Computes the logical AND of its Boolean operands. The AND operator must allow any operand to be constant.

dmaQueryOperator_Or

Computes the logical inclusive OR of its Boolean operands. The OR operator must allow any operand to be constant.

dmaQueryOperator_Not

Computes the logical negation of its Boolean operand

dmaQueryOperator_EqualBinary

Returns True if and only if the two Binary operands are equal

dmaQueryOperator_UnequalBinary

Returns True if and only if the two Binary operands are unequal

dmaQueryOperator_GreaterBinary

Returns True if and only if the first operand is greater than the second

dmaQueryOperator_GreaterOrEqualBinary

Returns True if and only if the first operand is greater than or equal to the second

dmaQueryOperator_LessBinary

Returns True if and only if the first operand is less than the second

dmaQueryOperator_LessOrEqualBinary

Returns True if and only if the first is less than or equal to the second

dmaQueryOperator_EqualString

Returns True if and only if the two string operands are equal

dmaQueryOperator_UnequalString

Returns True if and only if the two string operands are unequal

dmaQueryOperator_GreaterString

Returns True if and only if the first operand is greater than the second

dmaQueryOperator_GreaterOrEqualString

Returns True if and only if the first operand is greater than or equal to the second

dmaQueryOperator_LessString

Returns True if and only if the first operand is less than the second

dmaQueryOperator_LessOrEqualString

Returns True if and only if the first is less than or equal to the second

dmaQueryOperator_EqualBoolean

Returns True if and only if the two boolean operands are equal

dmaQueryOperator_UnequalBoolean

Returns True if and only if the two boolean operands are unequal

dmaQueryOperator_EqualInteger32

Returns True if and only if the two integer operands are equal

dmaQueryOperator_UnequalInteger32

Returns True if and only if the two integer operands are unequal

dmaQueryOperator_GreaterInteger32

Returns True if and only if the first operand is greater than the second

dmaQueryOperator_GreaterOrEqualInteger32

Returns True if and only if the first operand is greater than or equal to the second

dmaQueryOperator_LessInteger32

Returns True if and only if the first operand is less than the second

dmaQueryOperator_LessOrEqualInteger32

Returns True if and only if the first is less than or equal to the second

dmaQueryOperator_EqualFloat64

Returns True if and only if the first operand is equal to the second

dmaQueryOperator_UnequalFloat64

Returns True if and only if the two operands are unequal

dmaQueryOperator_GreaterFloat64

Returns True if and only if the first operand is greater than the second

dmaQueryOperator_GreaterOrEqualFloat64

Returns True if and only if the first operand is greater than or equal to the second

dmaQueryOperator_LessFloat64

Returns True if and only if the first operand is less than the second

dmaQueryOperator_LessOrEqualFloat64

Returns True if and only if the first is less than or equal to the second

dmaQueryOperator_EqualDateTime

Returns True if and only if the first operand is equal to the second

dmaQueryOperator_UnequalDateTime

Returns True if and only if the two operands are unequal

dmaQueryOperator_GreaterDateTime

Returns True if and only if the first operand is greater than the second

dmaQueryOperator_GreaterOrEqualDateTime

Returns True if and only if the first operand is greater than or equal to the second

dmaQueryOperator_LessDateTime

Returns True if and only if the first operand is less than the second

dmaQueryOperator_LessOrEqualDateTime

Returns True if and only if the first is less than or equal to the second

dmaQueryOperator_EqualId

Returns True if and only if the first operand is equal to the second

dmaQueryOperator_UnequalId

Returns True if and only if the two operands are unequal

dmaQueryOperator_EqualObject

This operator evaluates to DMA_TRUE if and only if the two operands are the same persistent object. This operator can be used, for example, for equi-joins on single-object-valued navigation properties, e.g., dmaProp_This, dmaProp_Head, dmaProp_Tail, etc.

dmaQueryOperator_IsDefined

The operand must be a property of a persistent object, not a constant or query parameter or operator or etc. Return True if the property is defined in the current scope, else False. It is used to help refine searches across multiple repositories when the rules of three valued logic are not sufficient to achieve the desired result

dmaQueryOperator_IsNull

The operand must be a property of a persistent object, not a constant or query parameter or operator or etc. The property must be defined in the current scope, or else DMARC_UNKNOWN is returned. If the property is defined, the operator returns True if the value of the property is NULL, else False.

dmaQueryOperator_Like

The first operand is the string under examination. The second operand is the pattern string, which may contain wildcard characters. The widlcard character "%" represents zero or more characters. The wildcard character "_" (underscore) represents exactly one character. The third operand is a single character string designating the escape character used in the pattern string. Return True if the pattern match is successful, else False. If the first operand is not defined or is NULL, return DMARC_UNKNOWN

dmaQueryOperator_IsClass

This operator can be used to refine 'include subclasses' searches so that fewer than all subclasses of the ancestor class are returned by the query. The first parameter is the searchable class occurrence number of a searchable class in the current query. This searchable class occurrence must have dmaProp_IsInclSubclasses set to True. The second parameter is the ID of the searchable class or one of its subclasses. Return True if the searchable class ID of the current row under scan corresponding to the designated searchable class occurrence is equal to the second operand, else False.

dmaQueryOperator_AddInteger32

Return the sum of the operands

dmaQueryOperator_SubtractInteger32

Subtract the second operand from the first and return the difference

dmaQueryOperator_NegateInteger32

Return the negation of the operand

dmaQueryOperator_AbsoluteValueInteger32

Return the absolute value of the operand

dmaQueryOperator_MultiplyInteger32

Return the product of the operands

dmaQueryOperator_DivideInteger32

Divide the first operand by the second and return the quotient

dmaQueryOperator_AddFloat64

Return the sum of the operands

dmaQueryOperator_SubtractFloat64

Subtract the second operand from the first and return the difference

dmaQueryOperator_NegateFloat64

Return the negation of the operand

dmaQueryOperator_AbsoluteValueFloat64

Return the absolute value of the operand

dmaQueryOperator_MultiplyFloat64

Return the product of the operands

dmaQueryOperator_DivideFloat64

Divide the first operand by the second and return the quotient

dmaQueryOperator_Integer32ToFloat32

Convert the integer32 operand's value to a float64 and return the result

dmaQueryOperator_Float64ToInteger32Round

Convert the float64 operand's value to an integer32 by rounding it and return the result

dmaQueryOperator_Float64ToInteger32Truncate

Convert the float64 operand's value to an integer32 by truncating it and return the result

dmaQueryOperator_Exists

The subquery operand must be of type Query Root. It must have an empty Selections List, and therefore be of data type Class. If the subquery finds any result rows, True is returned, else False

dmaQueryOperator_InBinary

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type Binary. Hence, the data type of the subquery will be Binary. The value of the first operand is compared against the list of Binary values returned by the subquery. True is returned if it is amongst them, else False

dmaQueryOperator_InBoolean

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type Boolean. Hence, the data type of the subquery will be Boolean. The value of the first operand is compared against the list of Boolean values returned by the subquery. True is returned if it is amongst them, else False

dmaQueryOperator_InString

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type String. Hence, the data type of the subquery will be String. The value of the first operand is compared against the list of String values returned by the subquery. True is returned if it is amongst them, else False

dmaQueryOperator_InInteger32

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type Int32. Hence, the data type of the subquery will be Int32. The value of the first operand is compared against the list of Int32 values returned by the subquery. True is returned if it is amongst them, else False

dmaQueryOperator_InFloat64

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type Float64. Hence, the data type of the subquery will be Float64. The value of the first operand is compared against the list of Float64 values returned by the subquery. True is returned if it is amongst them, else False

dmaQueryOperator_InDateTime

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type Date Time. Hence, the data type of the subquery will be Date Time. The value of the first operand is compared against the list of Date Time values returned by the subquery. True is returned if it is amongst them, else False

dmaQueryOperator_InId

The operand must be a query property node, a query constant node, or a subquery node. If the operand is of type Query Root, the subquery must have exactly one property in its Selections List, and it must be of type ID. Hence, the data type of the subquery will be ID. The value of the first operand is compared against the list of ID values returned by the subquery. True is returned if it is amongst them, else False