Skip to content

Commit f4cc9f9

Browse files
committed
Move columns in compare view to result
The columns are part of the result, so they should be moved there. This is in preparation of showing SARIF results in the same view, which don't have columns.
1 parent 9c200e0 commit f4cc9f9

File tree

6 files changed

+26
-27
lines changed

6 files changed

+26
-27
lines changed

extensions/ql-vscode/src/common/interface-types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,9 @@ export interface SetComparisonsMessage {
353353
time: string;
354354
};
355355
};
356-
readonly columns: readonly BqrsColumn[];
357356
readonly commonResultSetNames: string[];
358357
readonly currentResultSetName: string;
359-
readonly rows: QueryCompareResult | undefined;
358+
readonly result: RawQueryCompareResult | undefined;
360359
readonly message: string | undefined;
361360
readonly databaseUri: string;
362361
}
@@ -370,7 +369,8 @@ export interface SetComparisonsMessage {
370369
* If an array element is null, that means that the element was removed
371370
* (or added) in the comparison.
372371
*/
373-
export type QueryCompareResult = {
372+
export type RawQueryCompareResult = {
373+
columns: readonly BqrsColumn[];
374374
from: ResultRow[];
375375
to: ResultRow[];
376376
};

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ViewColumn } from "vscode";
22

33
import {
44
FromCompareViewMessage,
5-
QueryCompareResult,
5+
RawQueryCompareResult,
66
ToCompareViewMessage,
77
} from "../common/interface-types";
88
import { Logger, showAndLogExceptionWithTelemetry } from "../common/logging";
@@ -93,10 +93,10 @@ export class CompareView extends AbstractWebview<
9393
selectedResultSetName,
9494
);
9595
if (currentResultSetDisplayName) {
96-
let rows: QueryCompareResult | undefined;
96+
let result: RawQueryCompareResult | undefined;
9797
let message: string | undefined;
9898
try {
99-
rows = this.compareResults(fromResultSet, toResultSet);
99+
result = this.compareResults(fromResultSet, toResultSet);
100100
} catch (e) {
101101
message = getErrorMessage(e);
102102
}
@@ -118,10 +118,9 @@ export class CompareView extends AbstractWebview<
118118
time: to.startTime,
119119
},
120120
},
121-
columns: fromResultSet.columns,
121+
result,
122122
commonResultSetNames,
123123
currentResultSetName: currentResultSetDisplayName,
124-
rows,
125124
message,
126125
databaseUri: to.initialInfo.databaseInfo.databaseUri,
127126
});
@@ -240,7 +239,7 @@ export class CompareView extends AbstractWebview<
240239
private compareResults(
241240
fromResults: DecodedBqrsChunk,
242241
toResults: DecodedBqrsChunk,
243-
): QueryCompareResult {
242+
): RawQueryCompareResult {
244243
// Only compare columns that have the same name
245244
return resultsDiff(fromResults, toResults);
246245
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DecodedBqrsChunk } from "../common/bqrs-cli-types";
2-
import { QueryCompareResult } from "../common/interface-types";
2+
import { RawQueryCompareResult } from "../common/interface-types";
33

44
/**
55
* Compare the rows of two queries. Use deep equality to determine if
@@ -22,7 +22,7 @@ import { QueryCompareResult } from "../common/interface-types";
2222
export default function resultsDiff(
2323
fromResults: DecodedBqrsChunk,
2424
toResults: DecodedBqrsChunk,
25-
): QueryCompareResult {
25+
): RawQueryCompareResult {
2626
if (fromResults.columns.length !== toResults.columns.length) {
2727
throw new Error("CodeQL Compare: Columns do not match.");
2828
}
@@ -36,6 +36,7 @@ export default function resultsDiff(
3636
}
3737

3838
const results = {
39+
columns: fromResults.columns,
3940
from: arrayDiff(fromResults.tuples, toResults.tuples),
4041
to: arrayDiff(toResults.tuples, fromResults.tuples),
4142
};

extensions/ql-vscode/src/stories/compare/CompareTable.stories.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ CompareTable.args = {
3131
time: "8/16/2023, 3:07:21 PM",
3232
},
3333
},
34-
columns: [
35-
{ name: "a", kind: "Entity" },
36-
{ name: "b", kind: "Entity" },
37-
],
3834
commonResultSetNames: ["edges", "nodes", "subpaths", "#select"],
3935
currentResultSetName: "edges",
40-
rows: {
36+
result: {
37+
columns: [
38+
{ name: "a", kind: "Entity" },
39+
{ name: "b", kind: "Entity" },
40+
],
4141
from: [],
4242
to: [
4343
[

extensions/ql-vscode/src/view/compare/Compare.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ import "../results/resultsView.css";
1414
const emptyComparison: SetComparisonsMessage = {
1515
t: "setComparisons",
1616
stats: {},
17-
rows: undefined,
18-
columns: [],
17+
result: undefined,
1918
commonResultSetNames: [],
2019
currentResultSetName: "",
2120
databaseUri: "",
@@ -28,8 +27,8 @@ export function Compare(_: Record<string, never>): JSX.Element {
2827

2928
const message = comparison.message || "Empty comparison";
3029
const hasRows =
31-
comparison.rows &&
32-
(comparison.rows.to.length || comparison.rows.from.length);
30+
comparison.result &&
31+
(comparison.result.to.length || comparison.result.from.length);
3332

3433
useEffect(() => {
3534
const listener = (evt: MessageEvent) => {

extensions/ql-vscode/src/view/compare/CompareTable.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const OpenButton = styled(TextButton)`
2222

2323
export default function CompareTable(props: Props) {
2424
const comparison = props.comparison;
25-
const rows = props.comparison.rows!;
25+
const result = props.comparison.result!;
2626

2727
async function openQuery(kind: "from" | "to") {
2828
vscode.postMessage({
@@ -69,30 +69,30 @@ export default function CompareTable(props: Props) {
6969
<td>{comparison.stats.toQuery?.time}</td>
7070
</tr>
7171
<tr>
72-
<th>{rows.from.length} rows removed</th>
73-
<th>{rows.to.length} rows added</th>
72+
<th>{result.from.length} rows removed</th>
73+
<th>{result.to.length} rows added</th>
7474
</tr>
7575
</thead>
7676
<tbody>
7777
<tr>
7878
<td>
7979
<table className={className}>
8080
<RawTableHeader
81-
columns={comparison.columns}
81+
columns={result.columns}
8282
schemaName={comparison.currentResultSetName}
8383
preventSort={true}
8484
/>
85-
{createRows(rows.from, comparison.databaseUri)}
85+
{createRows(result.from, comparison.databaseUri)}
8686
</table>
8787
</td>
8888
<td>
8989
<table className={className}>
9090
<RawTableHeader
91-
columns={comparison.columns}
91+
columns={result.columns}
9292
schemaName={comparison.currentResultSetName}
9393
preventSort={true}
9494
/>
95-
{createRows(rows.to, comparison.databaseUri)}
95+
{createRows(result.to, comparison.databaseUri)}
9696
</table>
9797
</td>
9898
</tr>

0 commit comments

Comments
 (0)