Skip to content

Commit 8219225

Browse files
committed
fix: Unable to Populate Scratchpad on VSCode
1 parent 11b8ef3 commit 8219225

File tree

3 files changed

+55
-12
lines changed

3 files changed

+55
-12
lines changed

src/classes/insightsConnection.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ import {
4343
tokenUndefinedError,
4444
} from "../utils/core";
4545
import { convertTimeToTimestamp } from "../utils/dataSource";
46-
import { handleScratchpadTableRes, handleWSResults } from "../utils/queryUtils";
46+
import {
47+
generateQSqlBody,
48+
handleScratchpadTableRes,
49+
handleWSResults,
50+
} from "../utils/queryUtils";
4751
import { Telemetry } from "../utils/telemetryClient";
4852
import { retrieveUDAtoCreateReqBody } from "../utils/uda";
4953

@@ -451,11 +455,17 @@ export class InsightsConnection {
451455
case DataSourceTypes.QSQL: {
452456
const assemblyParts =
453457
params.dataSource.qsql.selectedTarget.split(" ");
454-
body.params = {
455-
assembly: assemblyParts[0],
456-
target: assemblyParts[1],
457-
query: params.dataSource.qsql.query,
458-
};
458+
const query = params.dataSource.qsql.query;
459+
460+
body.params = generateQSqlBody(
461+
{
462+
assembly: assemblyParts[0],
463+
query,
464+
target: assemblyParts[1],
465+
},
466+
this.insightsVersion,
467+
);
468+
459469
coreUrl = this.connEndpoints.scratchpad.importQsql;
460470
dsTypeString = "QSQL";
461471
break;

src/commands/dataSourceCommand.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import {
4646
} from "../utils/dataSource";
4747
import {
4848
addQueryHistory,
49+
generateQSqlBody,
4950
handleScratchpadTableRes,
5051
handleWSError,
5152
handleWSResults,
@@ -409,11 +410,17 @@ export async function runQsqlDataSource(
409410
): Promise<any> {
410411
const assembly = fileContent.dataSource.qsql.selectedTarget.slice(0, -4);
411412
const target = fileContent.dataSource.qsql.selectedTarget.slice(-3);
412-
const qsqlBody = {
413-
assembly: assembly,
414-
target: target,
415-
query: fileContent.dataSource.qsql.query,
416-
};
413+
const query = fileContent.dataSource.qsql.query;
414+
415+
const qsqlBody = generateQSqlBody(
416+
{
417+
assembly,
418+
query,
419+
target,
420+
},
421+
selectedConn.insightsVersion,
422+
);
423+
417424
const qsqlCall = await selectedConn.getDatasourceQuery(
418425
DataSourceTypes.QSQL,
419426
JSON.stringify(qsqlBody),

src/utils/queryUtils.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { readFileSync } from "fs";
1515
import { join } from "path";
1616

1717
import { ext } from "../extensionVariables";
18-
import { kdbOutputLog } from "./core";
18+
import { isBaseVersionGreaterOrEqual, kdbOutputLog } from "./core";
1919
import { DCDS, deserialize, isCompressed, uncompress } from "../ipc/c";
2020
import { DDateClass, DDateTimeClass, DTimestampClass } from "../ipc/cClasses";
2121
import { Parse } from "../ipc/parse.qlist";
@@ -206,6 +206,32 @@ export function getValueFromArray(results: DCDS): any {
206206
return results;
207207
}
208208

209+
export function generateQSqlBody(
210+
{
211+
assembly,
212+
query,
213+
target,
214+
}: { assembly: string; query: string; target: string },
215+
version?: number,
216+
) {
217+
if (version && isBaseVersionGreaterOrEqual(version, 1.13)) {
218+
return {
219+
query,
220+
scope: {
221+
affinity: "soft",
222+
assembly,
223+
tier: target,
224+
},
225+
};
226+
}
227+
228+
return {
229+
query,
230+
assembly,
231+
target,
232+
};
233+
}
234+
209235
export function generateQTypes(meta: { [key: string]: number }): any {
210236
const newMeta: { [key: string]: string } = {};
211237
for (const key in meta) {

0 commit comments

Comments
 (0)