@@ -237,8 +237,6 @@ class JoinOrderScanner implements EvaluationLogScanner {
237237
238238 case 'COMPUTE_RECURSIVE' : {
239239 // Compute the badness metric for a recursive predicate for each ordering.
240- // See https://github.com/github/codeql-coreql-team/issues/1289#issuecomment-1007237055 for
241- // the definition.
242240 const sccMetricInput = this . badnessInputsForRecursiveDelta ( event ) ;
243241 // Loop through each predicate in the SCC
244242 sccMetricInput . forEach ( ( buckets , predicate ) => {
@@ -398,8 +396,8 @@ class JoinOrderScanner implements EvaluationLogScanner {
398396 ) ;
399397 }
400398
401- const resultSizes = inLayerEvent . resultSize ;
402- return { dependentPredicateSizes, resultSizes } ;
399+ const deltaSize = inLayerEvent . deltaSizes [ iteration ] ;
400+ return { dependentPredicateSizes, deltaSize } ;
403401 }
404402
405403 /**
@@ -425,7 +423,7 @@ class JoinOrderScanner implements EvaluationLogScanner {
425423 } ) ;
426424 }
427425
428- const { resultSizes , dependentPredicateSizes } = this . badnessInputsForLayer (
426+ const { dependentPredicateSizes , deltaSize } = this . badnessInputsForLayer (
429427 event ,
430428 inLayerEvent ,
431429 raReference ,
@@ -439,15 +437,15 @@ class JoinOrderScanner implements EvaluationLogScanner {
439437 new Int32Array ( run . counts ) ,
440438 this . problemReporter
441439 ) ;
442- const newResultSizes = bucket . resultSize + resultSizes ! ;
440+ const resultSize = bucket . resultSize + deltaSize ;
443441 // Pointwise sum the deltas.
444442 const newDependentPredicateSizes = bucket . dependentPredicateSizes . mergeWith (
445443 ( oldSize , newSize ) => oldSize + newSize ,
446444 dependentPredicateSizes
447445 ) ;
448446 orderTobucket . set ( raReference , {
449447 tupleCounts : newTupleCounts ,
450- resultSize : newResultSizes ,
448+ resultSize : resultSize ,
451449 dependentPredicateSizes : newDependentPredicateSizes
452450 } ) ;
453451 } ) ;
0 commit comments