Skip to content

Commit 2b1f322

Browse files
author
Dave Bartolomeo
committed
Fix computation of result sizes in IN_LAYER events
1 parent 841f1d3 commit 2b1f322

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

extensions/ql-vscode/src/log-insights/join-order.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)