Skip to content

Commit 131e72b

Browse files
author
Dave Bartolomeo
committed
Decouple join-order.ts from VS Code for testing purposes
1 parent 4b875e7 commit 131e72b

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

extensions/ql-vscode/src/extension.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
CliConfigListener,
3434
DistributionConfigListener,
3535
isCanary,
36+
joinOrderWarningThreshold,
3637
MAX_QUERIES,
3738
QueryHistoryConfigListener,
3839
QueryServerConfigListener
@@ -518,7 +519,7 @@ async function activateWithInstalledDistribution(
518519
void logger.log('Initializing evaluation log scanners.');
519520
const logScannerService = new LogScannerService(qhm);
520521
ctx.subscriptions.push(logScannerService);
521-
ctx.subscriptions.push(logScannerService.scanners.registerLogScannerProvider(new JoinOrderScannerProvider()));
522+
ctx.subscriptions.push(logScannerService.scanners.registerLogScannerProvider(new JoinOrderScannerProvider(() => joinOrderWarningThreshold())));
522523

523524
void logger.log('Reading query history');
524525
await qhm.readQueryHistory();

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as I from 'immutable';
2-
import { joinOrderWarningThreshold } from '../config';
32
import { EvaluationLogProblemReporter, EvaluationLogScanner, EvaluationLogScannerProvider } from './log-scanner';
43
import { InLayer, ComputeRecursive, SummaryEvent, PipelineRun, ComputeSimple } from './log-summary';
54

@@ -453,8 +452,11 @@ class JoinOrderScanner implements EvaluationLogScanner {
453452
}
454453

455454
export class JoinOrderScannerProvider implements EvaluationLogScannerProvider {
455+
constructor(private readonly getThreshdold: () => number) {
456+
}
457+
456458
public createScanner(problemReporter: EvaluationLogProblemReporter): EvaluationLogScanner {
457-
const threshold = joinOrderWarningThreshold();
459+
const threshold = this.getThreshdold();
458460
return new JoinOrderScanner(problemReporter, threshold);
459461
}
460462
}

extensions/ql-vscode/test/pure-tests/log-scanner.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class TestProblemReporter implements EvaluationLogProblemReporter {
3131
describe('log scanners', function() {
3232
it('should detect bad join orders', async function() {
3333
const scanners = new EvaluationLogScannerSet();
34-
scanners.registerLogScannerProvider(new JoinOrderScannerProvider());
34+
scanners.registerLogScannerProvider(new JoinOrderScannerProvider(() => 50));
3535
const summaryPath = path.join(__dirname, 'evaluator-log-summaries/bad-join-order.jsonl');
3636
const problemReporter = new TestProblemReporter();
3737
await scanners.scanLog(summaryPath, problemReporter);

0 commit comments

Comments
 (0)