1 --- mongodb-src-r2.2.4/src/mongo/util/concurrency/threadlocal.h~ 2013-04-01 04:41:49.000000000 +0200
2 +++ mongodb-src-r2.2.4/src/mongo/util/concurrency/threadlocal.h 2017-04-14 17:05:17.819748109 +0200
4 * along with this program. If not, see <http://www.gnu.org/licenses/>.
7 -#include "mongo/client/undef_macros.h"
8 +//#include "mongo/client/undef_macros.h"
9 #include <boost/thread/tss.hpp>
10 #include <boost/bind.hpp>
11 -#include "mongo/client/redef_macros.h"
12 +//#include "mongo/client/redef_macros.h"
16 --- mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.h~ 2013-04-01 04:41:49.000000000 +0200
17 +++ mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.h 2017-04-14 17:12:49.282347360 +0200
19 _keyFieldsOnly( queryPlan.keyFieldsOnly() ),
20 _scanAndOrderRequired( queryPlan.scanAndOrderRequired() ) {
22 - bool valid() const { return _fieldRangeSetMulti; }
23 + bool valid() const { return _fieldRangeSetMulti != NULL; }
24 shared_ptr<FieldRangeSet> _fieldRangeSetMulti;
25 shared_ptr<Projection::KeyOnly> _keyFieldsOnly;
26 bool _scanAndOrderRequired;
27 --- mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.cpp~ 2013-04-01 04:41:49.000000000 +0200
28 +++ mongodb-src-r2.2.4/src/mongo/db/queryoptimizer.cpp 2017-04-14 17:22:59.293485280 +0200
30 if ( _explainPlanInfo ) {
31 _explainPlanInfo.reset( new ExplainPlanInfo() );
32 _explainPlanInfo->notePlan( *_c, _queryPlan->scanAndOrderRequired(),
33 - _queryPlan->keyFieldsOnly() );
34 + _queryPlan->keyFieldsOnly() != NULL );
35 shared_ptr<ExplainClauseInfo> clauseInfo( new ExplainClauseInfo() );
36 clauseInfo->addPlanInfo( _explainPlanInfo );
37 _mps->addClauseInfo( clauseInfo );
38 --- mongodb-src-r2.2.4/src/mongo/db/queryoptimizercursorimpl.cpp~ 2013-04-01 04:41:49.000000000 +0200
39 +++ mongodb-src-r2.2.4/src/mongo/db/queryoptimizercursorimpl.cpp 2017-04-14 17:24:01.807612099 +0200
41 // The query plan must have a matcher. The matcher's constructor performs some aspects
42 // of query validation that should occur as part of this class's init() if not handled
44 - fassert( 16249, queryPlan().matcher() );
45 + fassert( 16249, queryPlan().matcher() != NULL );
47 // All candidate cursors must support yields for QueryOptimizerCursorImpl's
48 // prepareToYield() and prepareToTouchEarlierIterate() to work.
51 _explainPlanInfo.reset( new ExplainPlanInfo() );
52 _explainPlanInfo->notePlan( *_c, queryPlan().scanAndOrderRequired(),
53 - queryPlan().keyFieldsOnly() );
54 + queryPlan().keyFieldsOnly() != NULL );
55 return _explainPlanInfo;
57 shared_ptr<ExplainPlanInfo> explainInfo() const { return _explainPlanInfo; }
58 --- mongodb-src-r2.2.4/src/mongo/db/ops/query.cpp~ 2013-04-01 04:41:49.000000000 +0200
59 +++ mongodb-src-r2.2.4/src/mongo/db/ops/query.cpp 2017-04-14 17:25:35.475055105 +0200
61 shared_ptr<ExplainRecordingStrategy> ret
62 ( new SimpleCursorExplainStrategy( ancillaryInfo, _cursor ) );
63 ret->notePlan( queryPlan.valid() && queryPlan._scanAndOrderRequired,
64 - queryPlan._keyFieldsOnly );
65 + queryPlan._keyFieldsOnly != NULL );