| 3929 | |
| 3930 | |
| 3931 | Expr * |
| 3932 | MakeUpperBoundIdExpr(const bson_value_t *filterValue, Index collectionVarno) |
| 3933 | { |
| 3934 | /* Since btree doesn't do type bracketing - apply type bracketing here */ |
| 3935 | bool isUpperBoundInclusive = false; |
| 3936 | bson_value_t maxBound = { 0 }; |
| 3937 | if (filterValue->value_type == BSON_TYPE_MINKEY) |
| 3938 | { |
| 3939 | isUpperBoundInclusive = true; |
| 3940 | maxBound.value_type = BSON_TYPE_MAXKEY; |
| 3941 | } |
| 3942 | else |
| 3943 | { |
| 3944 | maxBound = GetUpperBound(filterValue->value_type, |
| 3945 | &isUpperBoundInclusive); |
| 3946 | } |
| 3947 | return MakeSimpleIdExpr(&maxBound, collectionVarno, |
| 3948 | isUpperBoundInclusive ? |
| 3949 | BsonLessThanEqualOperatorId() : BsonLessThanOperatorId()); |
| 3950 | } |
| 3951 | |
| 3952 | |
| 3953 | /* |
no test coverage detected