@@ -54,7 +54,7 @@ namespace BitFunnel
5454 // way SimplePlanner is connected.
5555 std::vector<DocId> Factories::RunQueryPlanner (TermMatchNode const & tree,
5656 ISimpleIndex const & index,
57- IDiagnosticStream* diagnosticStream)
57+ IDiagnosticStream& diagnosticStream)
5858 {
5959 // TODO: this really shouldn't create its own allocator.
6060 Allocator allocator (4096 *16 );
@@ -92,18 +92,18 @@ namespace BitFunnel
9292 ISimpleIndex const & index,
9393 // IThreadResources& threadResources,
9494 IAllocator& allocator,
95- IDiagnosticStream* diagnosticStream)
95+ IDiagnosticStream& diagnosticStream)
9696 // bool generateNonBodyPlan,
9797 // unsigned maxIterationsScannedBetweenTerminationChecks)
9898 : m_resultsProcessor(Factories::CreateSimpleResultsProcessor())
9999 // : // m_x64FunctionGeneratorWrapper(threadResources),
100100 // m_maxIterationsScannedBetweenTerminationChecks(maxIterationsScannedBetweenTerminationChecks)
101101 {
102- if (diagnosticStream != nullptr && diagnosticStream-> IsEnabled (" planning/term" ))
102+ if (diagnosticStream. IsEnabled (" planning/term" ))
103103 {
104- std::ostream& out = diagnosticStream-> GetStream ();
104+ std::ostream& out = diagnosticStream. GetStream ();
105105 std::unique_ptr<IObjectFormatter>
106- formatter (Factories::CreateObjectFormatter (diagnosticStream-> GetStream ()));
106+ formatter (Factories::CreateObjectFormatter (diagnosticStream. GetStream ()));
107107
108108 out << " --------------------" << std::endl;
109109 out << " Term Plan:" << std::endl;
@@ -117,11 +117,11 @@ namespace BitFunnel
117117 // generateNonBodyPlan,
118118 allocator);
119119
120- if (diagnosticStream != nullptr && diagnosticStream-> IsEnabled (" planning/row" ))
120+ if (diagnosticStream. IsEnabled (" planning/row" ))
121121 {
122- std::ostream& out = diagnosticStream-> GetStream ();
122+ std::ostream& out = diagnosticStream. GetStream ();
123123 std::unique_ptr<IObjectFormatter>
124- formatter (Factories::CreateObjectFormatter (diagnosticStream-> GetStream ()));
124+ formatter (Factories::CreateObjectFormatter (diagnosticStream. GetStream ()));
125125
126126 out << " --------------------" << std::endl;
127127 out << " Row Plan:" << std::endl;
@@ -131,11 +131,11 @@ namespace BitFunnel
131131
132132 m_planRows = &rowPlan.GetPlanRows ();
133133
134- if (diagnosticStream != nullptr && diagnosticStream-> IsEnabled (" planning/planrows" ))
134+ if (diagnosticStream. IsEnabled (" planning/planrows" ))
135135 {
136- std::ostream& out = diagnosticStream-> GetStream ();
136+ std::ostream& out = diagnosticStream. GetStream ();
137137 std::unique_ptr<IObjectFormatter>
138- formatter (Factories::CreateObjectFormatter (diagnosticStream-> GetStream ()));
138+ formatter (Factories::CreateObjectFormatter (diagnosticStream. GetStream ()));
139139
140140 out << " --------------------" << std::endl;
141141 out << " IPlanRows:" << std::endl;
@@ -161,11 +161,11 @@ namespace BitFunnel
161161 allocator);
162162
163163
164- if (diagnosticStream != nullptr && diagnosticStream-> IsEnabled (" planning/rewrite" ))
164+ if (diagnosticStream. IsEnabled (" planning/rewrite" ))
165165 {
166- std::ostream& out = diagnosticStream-> GetStream ();
166+ std::ostream& out = diagnosticStream. GetStream ();
167167 std::unique_ptr<IObjectFormatter>
168- formatter (Factories::CreateObjectFormatter (diagnosticStream-> GetStream ()));
168+ formatter (Factories::CreateObjectFormatter (diagnosticStream. GetStream ()));
169169
170170 out << " --------------------" << std::endl;
171171 out << " Rewritten Plan:" << std::endl;
@@ -178,11 +178,11 @@ namespace BitFunnel
178178 compiler.Compile (rewritten);
179179 CompileNode const & compileTree = compiler.CreateTree (c_maxRankValue);
180180
181- if (diagnosticStream != nullptr && diagnosticStream-> IsEnabled (" planning/compile" ))
181+ if (diagnosticStream. IsEnabled (" planning/compile" ))
182182 {
183- std::ostream& out = diagnosticStream-> GetStream ();
183+ std::ostream& out = diagnosticStream. GetStream ();
184184 std::unique_ptr<IObjectFormatter>
185- formatter (Factories::CreateObjectFormatter (diagnosticStream-> GetStream ()));
185+ formatter (Factories::CreateObjectFormatter (diagnosticStream. GetStream ()));
186186
187187 out << " --------------------" << std::endl;
188188 out << " Compile Nodes:" << std::endl;
@@ -223,14 +223,16 @@ namespace BitFunnel
223223 size_t sliceCount = sliceBuffers.size ();
224224
225225 // Iterations per slice calculation.
226- auto iterationsPerSlice = shard.GetSliceCapacity () >> 6 >> c_maxRankValue;
226+ const int c_horribleRankHack = 3 ;
227+ auto iterationsPerSlice = shard.GetSliceCapacity () >> 6 >> c_horribleRankHack;
227228
228229 ByteCodeInterpreter intepreter (m_code,
229230 *m_resultsProcessor,
230231 sliceCount,
231232 reinterpret_cast <char * const *>(sliceBuffers.data ()),
232233 iterationsPerSlice,
233- rowSet.GetRowOffsets (c_shardId));
234+ rowSet.GetRowOffsets (c_shardId),
235+ diagnosticStream);
234236
235237 intepreter.Run ();
236238
0 commit comments