* Creates a basic object_id op_expr for a given collection var. */
| 3888 | * Creates a basic object_id <op> <value> op_expr for a given collection var. |
| 3889 | */ |
| 3890 | Expr * |
| 3891 | MakeSimpleIdExpr(const bson_value_t *filterValue, Index collectionVarno, Oid operatorId) |
| 3892 | { |
| 3893 | pgbson *qualValue = BsonValueToDocumentPgbson(filterValue); |
| 3894 | Const *documentIdConst = makeConst(BsonTypeId(), -1, InvalidOid, -1, |
| 3895 | PointerGetDatum(qualValue), |
| 3896 | false, false); |
| 3897 | |
| 3898 | /* _id is always the second column in our data tables */ |
| 3899 | AttrNumber documentIdAttnum = 2; |
| 3900 | Var *documentIdVar = makeVar(collectionVarno, documentIdAttnum, BsonTypeId(), -1, |
| 3901 | InvalidOid, 0); |
| 3902 | |
| 3903 | /* construct object_id <operator> <value> expression */ |
| 3904 | Expr *documentIdFilter = make_opclause(operatorId, BOOLOID, false, |
| 3905 | (Expr *) documentIdVar, |
| 3906 | (Expr *) documentIdConst, InvalidOid, |
| 3907 | InvalidOid); |
| 3908 | return documentIdFilter; |
| 3909 | } |
| 3910 | |
| 3911 | |
| 3912 | Expr * |
no test coverage detected