Skip to content

Commit cce8585

Browse files
authored
Merge pull request #3103 from github/koesie10/compare-view-results
Move columns in compare view to result
2 parents 9c200e0 + f4cc9f9 commit cce8585

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)