@@ -1709,37 +1709,35 @@ function validateDisjunctiveFilterElements(
1709
1709
/**
1710
1710
* Given an operator, returns the set of operators that cannot be used with it.
1711
1711
*
1712
+ * Operators in a query must adhere to the following set of rules:
1713
+ * 1. Only one array operator is allowed.
1714
+ * 2. Only one disjunctive operator is allowed.
1715
+ * 3. NOT_EQUAL cannot be used with another NOT_EQUAL operator.
1716
+ * 4. NOT_IN cannot be used with array, disjunctive, or NOT_EQUAL operators.
1717
+ *
1712
1718
* Array operators: ARRAY_CONTAINS, ARRAY_CONTAINS_ANY
1713
1719
* Disjunctive operators: IN, ARRAY_CONTAINS_ANY, NOT_IN
1714
1720
*/
1715
1721
function conflictingOps ( op : Operator ) : Operator [ ] {
1716
1722
switch ( op ) {
1717
1723
case Operator . NOT_EQUAL :
1718
- // No other NOT_EQUAL or NOT_IN operator can be used with NOT_EQUAL.
1719
1724
return [ Operator . NOT_EQUAL , Operator . NOT_IN ] ;
1720
1725
case Operator . ARRAY_CONTAINS :
1721
1726
return [
1722
- // Only 1 ARRAY operator can be used.
1723
1727
Operator . ARRAY_CONTAINS ,
1724
1728
Operator . ARRAY_CONTAINS_ANY ,
1725
- // NOT_IN cannot be used with any array operators.
1726
1729
Operator . NOT_IN
1727
1730
] ;
1728
1731
case Operator . IN :
1729
- // Only one disjunctive operator can be used.
1730
1732
return [ Operator . ARRAY_CONTAINS_ANY , Operator . IN , Operator . NOT_IN ] ;
1731
1733
case Operator . ARRAY_CONTAINS_ANY :
1732
1734
return [
1733
- // Only one ARRAY operator can be used.
1734
1735
Operator . ARRAY_CONTAINS ,
1735
- // Only one disjunctive operator can be used.
1736
1736
Operator . ARRAY_CONTAINS_ANY ,
1737
1737
Operator . IN ,
1738
1738
Operator . NOT_IN
1739
1739
] ;
1740
1740
case Operator . NOT_IN :
1741
- // NOT_IN cannot be used with another array, disjunctive, or NOT_EQUAL
1742
- // operator.
1743
1741
return [
1744
1742
Operator . ARRAY_CONTAINS ,
1745
1743
Operator . ARRAY_CONTAINS_ANY ,
0 commit comments