@@ -56,6 +56,9 @@ export interface PerformanceComparisonDataFromLog {
56
56
* All the pipeline runs seen for the `i`th predicate from the `names` array.
57
57
*/
58
58
pipelineSummaryList : Array < Record < string , PipelineSummary > > ;
59
+
60
+ /** All dependencies of the `i`th predicate from the `names` array, encoded as a list of indices in `names`. */
61
+ dependencyLists : number [ ] [ ] ;
59
62
}
60
63
61
64
export class PerformanceOverviewScanner implements EvaluationLogScanner {
@@ -157,8 +160,10 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner {
157
160
iterationCounts,
158
161
evaluationCounts,
159
162
pipelineSummaryList,
163
+ dependencyLists,
160
164
} = this . data ;
161
165
const pipelineSummaries = pipelineSummaryList [ index ] ;
166
+ const dependencyList = dependencyLists [ index ] ;
162
167
for ( const { counts, raReference } of event . pipelineRuns ?? [ ] ) {
163
168
// Get or create the pipeline summary for this RA
164
169
const pipelineSummary = ( pipelineSummaries [ raReference ] ??= {
@@ -178,6 +183,12 @@ export class PerformanceOverviewScanner implements EvaluationLogScanner {
178
183
totalTuplesPerStep [ i ] += count ;
179
184
}
180
185
}
186
+ for ( const dependencyHash of Object . values ( event . dependencies ?? { } ) ) {
187
+ const dependencyIndex = this . raToIndex . get ( dependencyHash ) ;
188
+ if ( dependencyIndex != null ) {
189
+ dependencyList . push ( dependencyIndex ) ;
190
+ }
191
+ }
181
192
timeCosts [ index ] += totalTime ;
182
193
tupleCosts [ index ] += totalTuples ;
183
194
iterationCounts [ index ] += event . pipelineRuns ?. length ?? 0 ;
0 commit comments