diff --git a/app/components/QueryRecorder.tsx b/app/components/QueryRecorder.tsx index 4b21aad916a989e76800be4dcf6bdc6a5eceb4e3..dcd30ecf762c3c4e5150cded5323955e8278b399 100644 --- a/app/components/QueryRecorder.tsx +++ b/app/components/QueryRecorder.tsx @@ -138,15 +138,7 @@ export default function QueryRecorder() { ); const t1 = performance.now(); setRecordingTime(t1 - t0); - if (result.error === 'cancelled') { - updateContext( - result, - t1 - t0, - recordingLabel, - recordingColor, - 'Query was cancelled' - ); - } else if (result?.error) { + if (result?.error) { let error; if (result.error?.info) { const errorcode = JSON.stringify( @@ -160,6 +152,8 @@ export default function QueryRecorder() { 2 ); error = `Errorcode: ${errorcode}\n${errormsg}`; + } else if (result.error === 'cancelled') { + error = 'Query was cancelled'; } else { error = String(result.error); } diff --git a/app/package.json b/app/package.json index 1241e56ab6d00bdc5cd12cab7348fa55d2833ae2..e5abeef9c5f0262bb9b92dcd07ef46e74369ce60 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "mysql-query-profiler", "productName": "MySQL Query Profiler", - "version": "0.3.0", + "version": "0.3.1", "description": "A profiler for MySQL queries using Electron and React", "main": "./main.prod.js", "author": { diff --git a/app/types/Recording.ts b/app/types/Recording.ts index 7e9aed6268bd87345fd161235d8d9494d7e60bb7..890aa775846904ef63efebfaf758663321231539 100644 --- a/app/types/Recording.ts +++ b/app/types/Recording.ts @@ -12,7 +12,7 @@ export interface Recording { optimizerTrace?: ResultValue[][]; queryOutput?: QueryOutput; explainAnalyze: boolean; - explainAnalyzeTree: ExplainAnalyzeNode; + explainAnalyzeTree?: ExplainAnalyzeNode; error?: string; label: string; // On both in order to avoid having to create an 'activeRecordingListItem' uuid: string; diff --git a/backend/recorder/SqlManager.ts b/backend/recorder/SqlManager.ts index b3d37d1a560fc38754f75ac93976000a3abacfd6..1a54aaeaabe8cc08f9af34d76f891cb42a4e2618 100644 --- a/backend/recorder/SqlManager.ts +++ b/backend/recorder/SqlManager.ts @@ -108,16 +108,13 @@ export default class SqlManager { if (result?.error) { stateCallback?.call(undefined, 'Error detected, aborting monitoring'); await this.reset(); - stateCallback?.call(undefined, 'Getting optimizer trace'); - const optimizerTrace = await this.runner.getOptimizerTrace(); stateCallback?.call(undefined, ''); return { result, - optimizerTrace: DataProcessor.processOptimizerTrace( - optimizerTrace.results - ), error: result.error, - explainAnalyze: DataProcessor.processExplainAnalyze(result.results), + explainAnalyze: result.results + ? DataProcessor.processExplainAnalyze(result.results) + : undefined, }; } stateCallback?.call(undefined, 'Getting optimizer trace');