Filtering vs ProjectionFiltering

<filterings> and <projectionsFilterings> have different semantics. This is to disambiguate where the filter should be applied: the driving table or a joined table.

For example, we want to create a query for the following model: Requisition -> CieLocation. This is an N relation where there are many CieLocation for one Requisition.

We create a query for Requisition and add a projection for CieLocation. If we have a <filtering> on CieLocation, it filters out Requisition that doesn’t satisfy the filter. If we have a <projectionfiltering> on CieLocation, it filters out CieLocation that doesn’t satisfy the filter.

In other words, <filtering> is a filter on an inner join and <projectionfiltering> is a filter on an outer join.