--- mongodb-src-r2.2.4/src/mongo/util/concurrency/threadlocal.h~ 2013-04-01 04:41:49.000000000 +0200
+++ mongodb-src-r2.2.4/src/mongo/util/concurrency/threadlocal.h 2017-04-14 17:05:17.819748109 +0200
@@ -16,10 +16,10 @@
* along with this program. If not, see .
*/
-#include "mongo/client/undef_macros.h"
+//#include "mongo/client/undef_macros.h"
#include
#include
-#include "mongo/client/redef_macros.h"
+//#include "mongo/client/redef_macros.h"
namespace mongo {
--- mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.h~ 2013-04-01 04:41:49.000000000 +0200
+++ mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.h 2017-04-14 17:12:49.282347360 +0200
@@ -170,7 +170,7 @@
_keyFieldsOnly( queryPlan.keyFieldsOnly() ),
_scanAndOrderRequired( queryPlan.scanAndOrderRequired() ) {
}
- bool valid() const { return _fieldRangeSetMulti; }
+ bool valid() const { return _fieldRangeSetMulti != NULL; }
shared_ptr _fieldRangeSetMulti;
shared_ptr _keyFieldsOnly;
bool _scanAndOrderRequired;
--- mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.cpp~ 2013-04-01 04:41:49.000000000 +0200
+++ mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.cpp 2017-04-14 17:22:59.293485280 +0200
@@ -1419,7 +1419,7 @@
if ( _explainPlanInfo ) {
_explainPlanInfo.reset( new ExplainPlanInfo() );
_explainPlanInfo->notePlan( *_c, _queryPlan->scanAndOrderRequired(),
- _queryPlan->keyFieldsOnly() );
+ _queryPlan->keyFieldsOnly() != NULL );
shared_ptr clauseInfo( new ExplainClauseInfo() );
clauseInfo->addPlanInfo( _explainPlanInfo );
_mps->addClauseInfo( clauseInfo );
--- mongodb-src-r2.2.4/src/mongo/db/queryoptimizercursorimpl.cpp~ 2013-04-01 04:41:49.000000000 +0200
+++ mongodb-src-r2.2.4/src/mongo/db/queryoptimizercursorimpl.cpp 2017-04-14 17:24:01.807612099 +0200
@@ -96,7 +96,7 @@
// The query plan must have a matcher. The matcher's constructor performs some aspects
// of query validation that should occur as part of this class's init() if not handled
// already.
- fassert( 16249, queryPlan().matcher() );
+ fassert( 16249, queryPlan().matcher() != NULL );
// All candidate cursors must support yields for QueryOptimizerCursorImpl's
// prepareToYield() and prepareToTouchEarlierIterate() to work.
@@ -221,7 +221,7 @@
}
_explainPlanInfo.reset( new ExplainPlanInfo() );
_explainPlanInfo->notePlan( *_c, queryPlan().scanAndOrderRequired(),
- queryPlan().keyFieldsOnly() );
+ queryPlan().keyFieldsOnly() != NULL );
return _explainPlanInfo;
}
shared_ptr explainInfo() const { return _explainPlanInfo; }
--- mongodb-src-r2.2.4/src/mongo/db/ops/query.cpp~ 2013-04-01 04:41:49.000000000 +0200
+++ mongodb-src-r2.2.4/src/mongo/db/ops/query.cpp 2017-04-14 17:25:35.475055105 +0200
@@ -584,7 +584,7 @@
shared_ptr ret
( new SimpleCursorExplainStrategy( ancillaryInfo, _cursor ) );
ret->notePlan( queryPlan.valid() && queryPlan._scanAndOrderRequired,
- queryPlan._keyFieldsOnly );
+ queryPlan._keyFieldsOnly != NULL );
return ret;
}