Skip to main content
diagram

Predicate Types


Binary Predicates

A binary predicate compares one entity property against a value using a comparison operator.

Syntax

Full form:
Shorthand equality form (equivalent to eq):

Comparison Operators

The gt, ge, lt, and le operators work with Integer, Double, and Long values. They are not applicable to string or boolean properties.

Examples

Equality — exact match on a property value:
Shorthand form produces the same result:
Both translate to the Lucene query title:"System Requirement 1". Inequality — exclude a specific value:
Numeric comparison — range filtering on numeric properties:
Inclusive upper bound:
String contains — substring search (case-sensitive):

Null Predicates

Null checks test whether a property has a value or is empty. Use eq or ne with a null value.
Null predicates (eq: null and ne: null) are currently non-functional in this release. The syntax below describes the intended behavior, but predicates that compare against a null value will not produce correct query results until this is resolved. Avoid relying on null predicates in production sheet configurations. Track this limitation through your support channel for status updates.
Property has no value (intended behavior):
Property has a value (intended behavior):
The HAS_VALUE pseudo-field is a Polarion-specific Lucene construct for checking property existence. When the null predicate feature is operational, the server API translates null predicates into this syntax automatically.

Composite Predicates

Composite predicates combine multiple sub-predicates using logical AND or OR operators.

AND Predicate

All sub-predicates must match. Wrap conditions in an and array:
Translates to Lucene: (status:"approved") AND (priority:{2 TO *})

OR Predicate

Any sub-predicate may match. Wrap conditions in an or array:
Translates to Lucene: (status:"draft") OR (status:"in_review")

Nested Composites

AND and OR predicates can be nested to build complex filtering logic:
Resulting Lucene: (priority:[3 TO *]) AND ((status:"approved") OR (status:"in_review"))
AND binds more tightly than OR. Each operand in composite predicates is parenthesized during Lucene translation to maintain correct evaluation order. Use explicit nesting when combining AND and OR to ensure predictable results.

Collection Quantifiers

Collection quantifiers evaluate predicates against multi-valued navigation properties (related entity collections). any uses short-circuit evaluation — it stops at the first match for performance. all returns false at the first non-match. It is used in validation rules and completeness checks.
Collection quantifiers are used for filtering across related entity collections. The exact query syntax for any and all with nested property conditions depends on the entity type metadata and the relationship configuration in the data model.

ObjectId Predicates

Query a specific entity by its Polarion work item ID:
With project prefix:
The project prefix format project/id expands to a compound query: project.id:"myProject" AND id:"UN-001".

Data Property Predicates

Predicates on entity data properties are validated against the entity type schema before execution. Only scalar (non-navigation) properties are supported in direct predicates. The server API processes the where clause by:
  1. Extracting all property names from the predicate
  2. Matching each property against the entity type metadata
  3. Rejecting predicates that reference unknown or navigation properties
  4. Combining validated predicates with AND logic
If a predicate references a property that does not exist in the entity type metadata, the query will fail with a validation error. Always use property names exactly as defined in the data model.
For navigation property filtering (document or project scoping), use the dedicated constraint system. See Document Filtering and Query Context.

Document and Project Predicates

Document and project predicates filter by navigation properties and are extracted separately from data property predicates. Document filtering:
Project filtering:
Cross-project queries are not supported. All queries execute within a single project scope. The project predicate is used to specify which project to query, not to query across multiple projects simultaneously.
When the project predicate contains only an id field, the server API uses a simplified Lucene query (project.id:value). More complex project predicates undergo full predicate evaluation against the Project entity type metadata.

Where Clause Merging

When multiple filter conditions are combined (for example, from user-applied filters and sheet configuration constraints), Powersheet merges them using these rules:

Lucene Translation Summary

Predicates are translated to Polarion Lucene query syntax before execution against the data store.

Complete YAML Example

A source configuration with predicates applied through the where clause:
This query:
  • Targets UserNeed entities
  • Requires title to contain the substring Safety
  • Limits results to approved or in_review status
  • Requires priority of 3 or higher
  • Expands the systemRequirements navigation property
  • Scopes results to the current document

Predicate Type Compatibility

The following table summarizes which Polarion custom field types are compatible with each operator:

Last modified on July 10, 2026