RFC Errata
RFC 7644, "System for Cross-domain Identity Management: Protocol", September 2015
Source of RFC: scim (sec)
Errata ID: 4670
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Vassilis Michalitsis
Date Reported: 2016-04-15
Section 3.4.2.2 says:
Filters MUST be evaluated using the following order of operations, in order of precedence: 1. Grouping operators 2. Logical operators - where "not" takes precedence over "and", which takes precedence over "or" 3. Attribute operators
It should say:
Filters MUST be evaluated using the following order of operations, in order of precedence: 1. Grouping operators 2. Attribute operators 3. Logical operators - where "not" takes precedence over "and", which takes precedence over "or"
Notes:
It seems that the precedence of logical and attribute precedence is reversed? The filter filter=title sw "M" and userType eq "Employee" is meant to be interpreted as filter=(title sw "M") and (userType eq "Employee").
This is also the "expected" behaviour consistent with most other languages - with the notable exception of unary "or" which in SCIM is disambiguated as it can only apply to a parenthesized filter expression.