The Common Query Language (CQL) is used to define expressions and filters in several parts of HALE. It can be used to define conditions on schema elements or to filter instances.
In a filter, you can refer to a property value by the property name. If you want to refer to a nested property, use a dot to separate the property names on the property's path. Encapsulating a property path in double quotes ensures that it is correctly recognized, even if a property name happens to be equal to a reserved expression in CQL.
For this example schema...
...the following are valid references to a property:
If a schema contains groups, you can ignore them in your filter. Just treat the group's properties as if they were directly associated to the group's parent.
Stating the namespace associated to a property name is optional, though it may be useful to differentiate between properties with the same local name. A namespace is specified by encapsulating it in curly brackets and using it as a prefix for the corresponding property name. When specifying a namespace it is mandatory to use double quotes for the property reference. Following is an example:
Following are some example filters. You can test them with the example project provided in the Get started with HALE guide, using the Transformed Data view.
name = 'Yoda'
details.age > (10 + (4 / 2) * 3)
details.age >= 16 AND details.age <= 50
details.age BETWEEN 16 AND 50
name LIKE 'Tom%'
name NOT LIKE '%Snow'
details.address.city IS NULL
details.address.city IS NOT NULL