Status ParsedUpdate::parseQuery() { dassert(!_canonicalQuery.get()); if (!_driver.needMatchDetails() && CanonicalQuery::isSimpleIdQuery(_request->getQuery())) { return Status::OK(); } return parseQueryToCQ(); }
Status ParsedDelete::parseRequest() { dassert(!_canonicalQuery.get()); if (CanonicalQuery::isSimpleIdQuery(_request->getQuery())) { return Status::OK(); } return parseQueryToCQ(); }
Status ParsedDelete::parseRequest() { dassert(!_canonicalQuery.get()); // It is invalid to request that the DeleteStage return the deleted document during a // multi-remove. invariant(!(_request->shouldReturnDeleted() && _request->isMulti())); // It is invalid to request that a ProjectionStage be applied to the DeleteStage if the // DeleteStage would not return the deleted document. invariant(_request->getProj().isEmpty() || _request->shouldReturnDeleted()); if (CanonicalQuery::isSimpleIdQuery(_request->getQuery())) { return Status::OK(); } return parseQueryToCQ(); }
Status ParsedDelete::parseRequest() { dassert(!_canonicalQuery.get()); // It is invalid to request that the DeleteStage return the deleted document during a // multi-remove. invariant(!(_request->shouldReturnDeleted() && _request->isMulti())); // It is invalid to request that a ProjectionStage be applied to the DeleteStage if the // DeleteStage would not return the deleted document. invariant(_request->getProj().isEmpty() || _request->shouldReturnDeleted()); // TODO SERVER-23611: Create decision logic for idhack when the query has no collation, but // there may be a collection default collation. if (_request->getCollation().isEmpty() && CanonicalQuery::isSimpleIdQuery(_request->getQuery())) { return Status::OK(); } return parseQueryToCQ(); }