This is an automated email from the ASF dual-hosted git repository.

vogievetsky pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new 98db960794 fix task query error decode (#14174)
98db960794 is described below

commit 98db960794688951d18ef1fbab7fe65ef10de1f7
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Thu Apr 27 15:26:07 2023 -0700

    fix task query error decode (#14174)
---
 web-console/src/utils/druid-query.spec.ts | 44 +++++++++++++++++++++++++------
 web-console/src/utils/druid-query.ts      |  5 +++-
 2 files changed, 40 insertions(+), 9 deletions(-)

diff --git a/web-console/src/utils/druid-query.spec.ts 
b/web-console/src/utils/druid-query.spec.ts
index ffdfeebedf..e19a5c3df1 100644
--- a/web-console/src/utils/druid-query.spec.ts
+++ b/web-console/src/utils/druid-query.spec.ts
@@ -18,7 +18,7 @@
 
 import { sane } from 'druid-query-toolkit';
 
-import { DruidError, getDruidErrorMessage, parseHtmlError } from 
'./druid-query';
+import { DruidError, getDruidErrorMessage } from './druid-query';
 
 describe('DruidQuery', () => {
   describe('DruidError.parsePosition', () => {
@@ -198,13 +198,41 @@ describe('DruidQuery', () => {
     });
   });
 
-  describe('misc', () => {
-    it('parseHtmlError', () => {
-      expect(parseHtmlError('<div></div>')).toMatchInlineSnapshot(`undefined`);
-    });
-
-    it('parseHtmlError', () => {
-      expect(getDruidErrorMessage({})).toMatchInlineSnapshot(`undefined`);
+  describe('getDruidErrorMessage', () => {
+    it('works with regular error response', () => {
+      expect(
+        getDruidErrorMessage({
+          response: {
+            data: {
+              error: 'SQL parse failed',
+              errorMessage: 'Encountered "<EOF>" at line 1, column 26.\nWas 
expecting one of:...',
+              errorClass: 'org.apache.calcite.sql.parser.SqlParseException',
+              host: null,
+            },
+          },
+        }),
+      ).toEqual(`SQL parse failed / Encountered "<EOF>" at line 1, column 26.
+Was expecting one of:... / org.apache.calcite.sql.parser.SqlParseException`);
+    });
+
+    it('works with task error response', () => {
+      expect(
+        getDruidErrorMessage({
+          response: {
+            data: {
+              taskId: '60a761ee-1ef5-437f-ae4c-adcc78c8a94c',
+              state: 'FAILED',
+              error: {
+                error: 'SQL parse failed',
+                errorMessage: 'Encountered "<EOF>" at line 1, column 26.\nWas 
expecting one of:...',
+                errorClass: 'org.apache.calcite.sql.parser.SqlParseException',
+                host: null,
+              },
+            },
+          },
+        }),
+      ).toEqual(`SQL parse failed / Encountered "<EOF>" at line 1, column 26.
+Was expecting one of:... / org.apache.calcite.sql.parser.SqlParseException`);
     });
   });
 });
diff --git a/web-console/src/utils/druid-query.ts 
b/web-console/src/utils/druid-query.ts
index e558931a3c..030a830c67 100644
--- a/web-console/src/utils/druid-query.ts
+++ b/web-console/src/utils/druid-query.ts
@@ -54,7 +54,10 @@ export function parseHtmlError(htmlStr: string): string | 
undefined {
 function getDruidErrorObject(e: any): DruidErrorResponse | string {
   if (e.response) {
     // This is a direct axios response error
-    return e.response.data || {};
+    let data = e.response.data || {};
+    // MSQ errors nest their error objects inside the error key. Yo dawg, I 
heard you like errors...
+    if (typeof data.error?.error === 'string') data = data.error;
+    return data;
   } else {
     return e; // Assume the error was passed in directly
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to