Skip to content

Commit 1dc69a1

Browse files
authored
Merge pull request #1848 from github/nora/db-module-initialization
Initialize DbManager when newQueryRun is enabled
2 parents 794e874 + e7bab92 commit 1dc69a1

File tree

3 files changed

+17
-20
lines changed

3 files changed

+17
-20
lines changed

extensions/ql-vscode/src/databases/db-module.ts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { window } from "vscode";
2-
import { App, AppMode } from "../common/app";
3-
import { isCanary, isNewQueryRunExperienceEnabled } from "../config";
2+
import { App } from "../common/app";
43
import { extLogger } from "../common";
54
import { DisposableObject } from "../pure/disposable-object";
65
import { DbConfigStore } from "./config/db-config-store";
@@ -19,18 +18,7 @@ export class DbModule extends DisposableObject {
1918
this.dbManager = new DbManager(app, this.dbConfigStore);
2019
}
2120

22-
public async initialize(app: App): Promise<void> {
23-
if (
24-
app.mode !== AppMode.Development ||
25-
!isCanary() ||
26-
!isNewQueryRunExperienceEnabled()
27-
) {
28-
// Currently, we only want to expose the new database panel when we
29-
// are in development and canary mode and the developer has enabled the
30-
// new query run experience.
31-
return;
32-
}
33-
21+
public async initialize(): Promise<void> {
3422
void extLogger.log("Initializing database module");
3523

3624
await this.dbConfigStore.initialize();
@@ -49,6 +37,6 @@ export class DbModule extends DisposableObject {
4937

5038
export async function initializeDbModule(app: App): Promise<DbModule> {
5139
const dbModule = new DbModule(app);
52-
await dbModule.initialize(app);
40+
await dbModule.initialize();
5341
return dbModule;
5442
}

extensions/ql-vscode/src/extension.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {
3838
CliConfigListener,
3939
DistributionConfigListener,
4040
isCanary,
41+
isNewQueryRunExperienceEnabled,
4142
isVariantAnalysisLiveResultsEnabled,
4243
joinOrderWarningThreshold,
4344
MAX_QUERIES,
@@ -138,6 +139,7 @@ import { VariantAnalysisResultsManager } from "./remote-queries/variant-analysis
138139
import { initializeDbModule } from "./databases/db-module";
139140
import { ExtensionApp } from "./common/vscode/vscode-app";
140141
import { RepositoriesFilterSortStateWithIds } from "./pure/variant-analysis-filter-sort";
142+
import { AppMode } from "./common/app";
141143

142144
/**
143145
* extension.ts
@@ -623,9 +625,15 @@ async function activateWithInstalledDistribution(
623625

624626
void extLogger.log("Initializing variant analysis manager.");
625627

626-
const app = new ExtensionApp(ctx);
627-
const dbModule = await initializeDbModule(app);
628-
ctx.subscriptions.push(dbModule);
628+
// We only want to initialize the new db panel when the newQueryRunExperience is enabled
629+
let dbModule;
630+
if (isCanary() && isNewQueryRunExperienceEnabled()) {
631+
const app = new ExtensionApp(ctx);
632+
if (app.mode === AppMode.Development) {
633+
dbModule = await initializeDbModule(app);
634+
ctx.subscriptions.push(dbModule);
635+
}
636+
}
629637

630638
const variantAnalysisStorageDir = join(
631639
ctx.globalStorageUri.fsPath,
@@ -636,12 +644,13 @@ async function activateWithInstalledDistribution(
636644
cliServer,
637645
extLogger,
638646
);
647+
639648
const variantAnalysisManager = new VariantAnalysisManager(
640649
ctx,
641650
cliServer,
642651
variantAnalysisStorageDir,
643652
variantAnalysisResultsManager,
644-
dbModule.dbManager,
653+
dbModule ? dbModule.dbManager : undefined, // the dbModule is only needed when the newQueryRunExperience is enabled
645654
);
646655
ctx.subscriptions.push(variantAnalysisManager);
647656
ctx.subscriptions.push(variantAnalysisResultsManager);

extensions/ql-vscode/src/remote-queries/variant-analysis-manager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export class VariantAnalysisManager
101101
private readonly cliServer: CodeQLCliServer,
102102
private readonly storagePath: string,
103103
private readonly variantAnalysisResultsManager: VariantAnalysisResultsManager,
104-
private readonly dbManager: DbManager,
104+
private readonly dbManager?: DbManager, // the dbManager is only needed when the newQueryRunExperience is enabled
105105
) {
106106
super();
107107
this.variantAnalysisMonitor = this.push(

0 commit comments

Comments
 (0)