diff --git a/extensions/ql-vscode/src/variant-analysis/bqrs-processing.ts b/extensions/ql-vscode/src/variant-analysis/bqrs-processing.ts index 55618753654..e186efc2b57 100644 --- a/extensions/ql-vscode/src/variant-analysis/bqrs-processing.ts +++ b/extensions/ql-vscode/src/variant-analysis/bqrs-processing.ts @@ -3,6 +3,7 @@ import { Logger } from "../common"; import { transformBqrsResultSet } from "../pure/bqrs-cli-types"; import { AnalysisRawResults } from "./shared/analysis-result"; import { MAX_RAW_RESULTS } from "./shared/result-limits"; +import { SELECT_TABLE_NAME } from "../pure/interface-types"; export async function extractRawResults( cliServer: CodeQLCliServer, @@ -19,11 +20,15 @@ export async function extractRawResults( } if (resultSets.length > 1) { void logger.log( - "Multiple result sets found in results file. Only the first one will be used.", + "Multiple result sets found in results file. Only one will be used.", ); } - const schema = resultSets[0]; + // Always prefer #select over any other result set. #select is usually the result the user + // wants to see since it contains the outer #select. + const schema = + resultSets.find((resultSet) => resultSet.name === SELECT_TABLE_NAME) ?? + resultSets[0]; const chunk = await cliServer.bqrsDecode(filePath, schema.name, { pageSize: MAX_RAW_RESULTS,