Skip to content

Commit 21aa7b8

Browse files
committed
Refactor query history to handle remote and local
This is a step on the way towards storing remote query history across restarts. This PR adds a `QueryHistoryInfo` type that is a union of two types: `LocalQueryInfo` and `RemoteQueryInfo`. `LocalQueryInfo` used to be called `FullQueryInfo` and `RemoteQueryInfo` is only a skeleton right now. The body will be added later. This PR only introduces it and changes types to make future PRs simpler. Also, `slurp` and `splat` have been moved to the `query-serialization.ts` module.
1 parent 5daab89 commit 21aa7b8

10 files changed

Lines changed: 286 additions & 208 deletions

File tree

extensions/ql-vscode/src/compare/compare-interface.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ import { DatabaseManager } from '../databases';
2020
import { getHtmlForWebview, jumpToLocation } from '../interface-utils';
2121
import { transformBqrsResultSet, RawResultSet, BQRSInfo } from '../pure/bqrs-cli-types';
2222
import resultsDiff from './resultsDiff';
23-
import { FullCompletedQueryInfo } from '../query-results';
23+
import { CompletedLocalQueryInfo } from '../query-results';
2424

2525
interface ComparePair {
26-
from: FullCompletedQueryInfo;
27-
to: FullCompletedQueryInfo;
26+
from: CompletedLocalQueryInfo;
27+
to: CompletedLocalQueryInfo;
2828
}
2929

3030
export class CompareInterfaceManager extends DisposableObject {
@@ -39,15 +39,15 @@ export class CompareInterfaceManager extends DisposableObject {
3939
private cliServer: CodeQLCliServer,
4040
private logger: Logger,
4141
private showQueryResultsCallback: (
42-
item: FullCompletedQueryInfo
42+
item: CompletedLocalQueryInfo
4343
) => Promise<void>
4444
) {
4545
super();
4646
}
4747

4848
async showResults(
49-
from: FullCompletedQueryInfo,
50-
to: FullCompletedQueryInfo,
49+
from: CompletedLocalQueryInfo,
50+
to: CompletedLocalQueryInfo,
5151
selectedResultSetName?: string
5252
) {
5353
this.comparePair = { from, to };
@@ -188,8 +188,8 @@ export class CompareInterfaceManager extends DisposableObject {
188188
}
189189

190190
private async findCommonResultSetNames(
191-
from: FullCompletedQueryInfo,
192-
to: FullCompletedQueryInfo,
191+
from: CompletedLocalQueryInfo,
192+
to: CompletedLocalQueryInfo,
193193
selectedResultSetName: string | undefined
194194
): Promise<[string[], string, RawResultSet, RawResultSet]> {
195195
const fromSchemas = await this.cliServer.bqrsInfo(

extensions/ql-vscode/src/extension.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ import { InterfaceManager } from './interface';
6969
import { WebviewReveal } from './interface-utils';
7070
import { ideServerLogger, logger, queryServerLogger } from './logging';
7171
import { QueryHistoryManager } from './query-history';
72-
import { FullCompletedQueryInfo, FullQueryInfo } from './query-results';
72+
import { CompletedLocalQueryInfo, LocalQueryInfo } from './query-results';
7373
import * as qsClient from './queryserver-client';
7474
import { displayQuickQuery } from './quick-query';
7575
import { compileAndRunQueryAgainstDatabase, createInitialQueryInfo } from './run-queries';
@@ -442,7 +442,7 @@ async function activateWithInstalledDistribution(
442442
void logger.log('Initializing query history manager.');
443443
const queryHistoryConfigurationListener = new QueryHistoryConfigListener();
444444
ctx.subscriptions.push(queryHistoryConfigurationListener);
445-
const showResults = async (item: FullCompletedQueryInfo) =>
445+
const showResults = async (item: CompletedLocalQueryInfo) =>
446446
showResultsForCompletedQuery(item, WebviewReveal.Forced);
447447
const queryStorageDir = path.join(ctx.globalStorageUri.fsPath, 'queries');
448448
await fs.ensureDir(queryStorageDir);
@@ -455,7 +455,7 @@ async function activateWithInstalledDistribution(
455455
ctx,
456456
queryHistoryConfigurationListener,
457457
showResults,
458-
async (from: FullCompletedQueryInfo, to: FullCompletedQueryInfo) =>
458+
async (from: CompletedLocalQueryInfo, to: CompletedLocalQueryInfo) =>
459459
showResultsForComparison(from, to),
460460
);
461461
await qhm.readQueryHistory();
@@ -479,8 +479,8 @@ async function activateWithInstalledDistribution(
479479
archiveFilesystemProvider.activate(ctx);
480480

481481
async function showResultsForComparison(
482-
from: FullCompletedQueryInfo,
483-
to: FullCompletedQueryInfo
482+
from: CompletedLocalQueryInfo,
483+
to: CompletedLocalQueryInfo
484484
): Promise<void> {
485485
try {
486486
await cmpm.showResults(from, to);
@@ -490,7 +490,7 @@ async function activateWithInstalledDistribution(
490490
}
491491

492492
async function showResultsForCompletedQuery(
493-
query: FullCompletedQueryInfo,
493+
query: CompletedLocalQueryInfo,
494494
forceReveal: WebviewReveal
495495
): Promise<void> {
496496
await intm.showResults(query, forceReveal, false);
@@ -520,7 +520,7 @@ async function activateWithInstalledDistribution(
520520
token.onCancellationRequested(() => source.cancel());
521521

522522
const initialInfo = await createInitialQueryInfo(selectedQuery, databaseInfo, quickEval, range);
523-
const item = new FullQueryInfo(initialInfo, queryHistoryConfigurationListener, source);
523+
const item = new LocalQueryInfo(initialInfo, queryHistoryConfigurationListener, source);
524524
qhm.addQuery(item);
525525
try {
526526
const completedQueryInfo = await compileAndRunQueryAgainstDatabase(
@@ -534,7 +534,7 @@ async function activateWithInstalledDistribution(
534534
);
535535
item.completeThisQuery(completedQueryInfo);
536536
await qhm.writeQueryHistory();
537-
await showResultsForCompletedQuery(item as FullCompletedQueryInfo, WebviewReveal.NotForced);
537+
await showResultsForCompletedQuery(item as CompletedLocalQueryInfo, WebviewReveal.NotForced);
538538
// Note we must update the query history view after showing results as the
539539
// display and sorting might depend on the number of results
540540
} catch (e) {

extensions/ql-vscode/src/interface.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import {
4747
import { getDefaultResultSetName, ParsedResultSets } from './pure/interface-types';
4848
import { RawResultSet, transformBqrsResultSet, ResultSetSchema } from './pure/bqrs-cli-types';
4949
import { PAGE_SIZE } from './config';
50-
import { FullCompletedQueryInfo } from './query-results';
50+
import { CompletedLocalQueryInfo } from './query-results';
5151

5252
/**
5353
* interface.ts
@@ -97,7 +97,7 @@ function numInterpretedPages(interpretation: Interpretation | undefined): number
9797
}
9898

9999
export class InterfaceManager extends DisposableObject {
100-
private _displayedQuery?: FullCompletedQueryInfo;
100+
private _displayedQuery?: CompletedLocalQueryInfo;
101101
private _interpretation?: Interpretation;
102102
private _panel: vscode.WebviewPanel | undefined;
103103
private _panelLoaded = false;
@@ -357,7 +357,7 @@ export class InterfaceManager extends DisposableObject {
357357
* history entry.
358358
*/
359359
public async showResults(
360-
fullQuery: FullCompletedQueryInfo,
360+
fullQuery: CompletedLocalQueryInfo,
361361
forceReveal: WebviewReveal,
362362
shouldKeepOldResultsWhileRendering = false
363363
): Promise<void> {

0 commit comments

Comments
 (0)