From e264392233a20cc18816ae5de4d87846e6794758 Mon Sep 17 00:00:00 2001 From: Vadim Ogievetsky Date: Thu, 20 Jun 2024 13:44:04 -0700 Subject: [PATCH 1/5] show formatted json value --- licenses.yaml | 2 +- web-console/lib/keywords.js | 1 + web-console/package-lock.json | 14 ++--- web-console/package.json | 2 +- .../record-table-pane/record-table-pane.tsx | 4 +- .../show-value-dialog/show-value-dialog.scss | 23 ++++--- .../show-value-dialog/show-value-dialog.tsx | 62 +++++++++++++++++-- .../string-menu-items/string-menu-items.tsx | 2 +- .../result-table-pane/result-table-pane.tsx | 4 +- 9 files changed, 87 insertions(+), 27 deletions(-) diff --git a/licenses.yaml b/licenses.yaml index 3c1f7b0b2d46..06d1e22ffea9 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -5094,7 +5094,7 @@ license_category: binary module: web-console license_name: Apache License version 2.0 copyright: Imply Data -version: 0.22.15 +version: 0.22.18 --- diff --git a/web-console/lib/keywords.js b/web-console/lib/keywords.js index bf7b9a039102..826c3d748690 100644 --- a/web-console/lib/keywords.js +++ b/web-console/lib/keywords.js @@ -47,6 +47,7 @@ exports.SQL_KEYWORDS = [ 'FULL', 'CROSS', 'USING', + 'NATURAL', 'FETCH', 'FIRST', 'NEXT', diff --git a/web-console/package-lock.json b/web-console/package-lock.json index 26999644f1e9..8f1493f51510 100644 --- a/web-console/package-lock.json +++ b/web-console/package-lock.json @@ -15,7 +15,7 @@ "@blueprintjs/icons": "^4.16.0", "@blueprintjs/popover2": "^1.14.9", "@blueprintjs/select": "^4.9.24", - "@druid-toolkit/query": "^0.22.15", + "@druid-toolkit/query": "^0.22.18", "@druid-toolkit/visuals-core": "^0.3.3", "@druid-toolkit/visuals-react": "^0.3.3", "ace-builds": "~1.4.14", @@ -1005,9 +1005,9 @@ } }, "node_modules/@druid-toolkit/query": { - "version": "0.22.15", - "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.15.tgz", - "integrity": "sha512-LyQVIVkVNhduscf2wnBO/oGBvj353tS5ElIws20xQzApvEIwNNxmlkA+8npqwy77BkJj3nRQvlenbSEDHQdqow==", + "version": "0.22.18", + "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.18.tgz", + "integrity": "sha512-MIwmK++H/ja3ZQSFe/xarltE8zFhbEH6dPIbs/r6jnCgJ/sY4cXSX9LN8mXCaSKCnMxk9AGa+oERvICQi99rog==", "dependencies": { "tslib": "^2.5.2" } @@ -19147,9 +19147,9 @@ "dev": true }, "@druid-toolkit/query": { - "version": "0.22.15", - "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.15.tgz", - "integrity": "sha512-LyQVIVkVNhduscf2wnBO/oGBvj353tS5ElIws20xQzApvEIwNNxmlkA+8npqwy77BkJj3nRQvlenbSEDHQdqow==", + "version": "0.22.18", + "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.18.tgz", + "integrity": "sha512-MIwmK++H/ja3ZQSFe/xarltE8zFhbEH6dPIbs/r6jnCgJ/sY4cXSX9LN8mXCaSKCnMxk9AGa+oERvICQi99rog==", "requires": { "tslib": "^2.5.2" } diff --git a/web-console/package.json b/web-console/package.json index 44e6986c2bdd..fc13b9be235d 100644 --- a/web-console/package.json +++ b/web-console/package.json @@ -69,7 +69,7 @@ "@blueprintjs/icons": "^4.16.0", "@blueprintjs/popover2": "^1.14.9", "@blueprintjs/select": "^4.9.24", - "@druid-toolkit/query": "^0.22.15", + "@druid-toolkit/query": "^0.22.18", "@druid-toolkit/visuals-core": "^0.3.3", "@druid-toolkit/visuals-react": "^0.3.3", "ace-builds": "~1.4.14", diff --git a/web-console/src/components/record-table-pane/record-table-pane.tsx b/web-console/src/components/record-table-pane/record-table-pane.tsx index 29433b25ddc5..6007559fb0d6 100644 --- a/web-console/src/components/record-table-pane/record-table-pane.tsx +++ b/web-console/src/components/record-table-pane/record-table-pane.tsx @@ -174,7 +174,9 @@ export const RecordTablePane = React.memo(function RecordTablePane(props: Record })} /> )} - {showValue && setShowValue(undefined)} str={showValue} />} + {showValue && ( + setShowValue(undefined)} str={showValue} size="large" /> + )} ); }); diff --git a/web-console/src/dialogs/show-value-dialog/show-value-dialog.scss b/web-console/src/dialogs/show-value-dialog/show-value-dialog.scss index a1da01e5931e..f561f1bf99fc 100644 --- a/web-console/src/dialogs/show-value-dialog/show-value-dialog.scss +++ b/web-console/src/dialogs/show-value-dialog/show-value-dialog.scss @@ -19,10 +19,6 @@ @import '../../variables'; .show-value-dialog { - &.#{$bp-ns}-dialog { - padding-bottom: 10px; - } - &.normal.#{$bp-ns}-dialog { height: 600px; } @@ -32,12 +28,21 @@ height: 90vh; } - .#{$bp-ns}-input { - margin: 10px; - flex: 1; + .#{$bp-ns}-dialog-body { + display: flex; + flex-direction: column; + + .ace-editor { + flex: 1; + } + + .#{$bp-ns}-input { + flex: 1; + resize: none; + } } - .#{$bp-ns}-dialog-footer-actions { - padding-right: 10px; + .#{$bp-ns}-dialog-footer { + margin-top: 0; } } diff --git a/web-console/src/dialogs/show-value-dialog/show-value-dialog.tsx b/web-console/src/dialogs/show-value-dialog/show-value-dialog.tsx index 8e1b0290865b..4369a43bb76e 100644 --- a/web-console/src/dialogs/show-value-dialog/show-value-dialog.tsx +++ b/web-console/src/dialogs/show-value-dialog/show-value-dialog.tsx @@ -16,11 +16,21 @@ * limitations under the License. */ -import { Button, Classes, Dialog, Intent, TextArea } from '@blueprintjs/core'; +import { + Button, + ButtonGroup, + Classes, + Dialog, + FormGroup, + Intent, + TextArea, +} from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; import classNames from 'classnames'; import copy from 'copy-to-clipboard'; -import React from 'react'; +import * as JSONBig from 'json-bigint-native'; +import React, { useMemo, useState } from 'react'; +import AceEditor from 'react-ace'; import { AppToaster } from '../../singletons'; @@ -35,6 +45,15 @@ export interface ShowValueDialogProps { export const ShowValueDialog = React.memo(function ShowValueDialog(props: ShowValueDialogProps) { const { title, onClose, str, size } = props; + const [tab, setTab] = useState<'formatted' | 'raw'>('formatted'); + + const parsed = useMemo(() => { + try { + return JSONBig.parse(str); + } catch {} + }, [str]); + + const hasParsed = typeof parsed !== 'undefined'; function handleCopy() { copy(str, { format: 'text/plain' }); @@ -51,10 +70,41 @@ export const ShowValueDialog = React.memo(function ShowValueDialog(props: ShowVa onClose={onClose} title={title || 'Full value'} > - + + From 6465d3a1044a9e4405edb07b8cd3d8ffa17714c6 Mon Sep 17 00:00:00 2001 From: Vadim Ogievetsky Date: Thu, 20 Jun 2024 15:49:05 -0700 Subject: [PATCH 3/5] window functions --- licenses.yaml | 2 +- web-console/lib/keywords.js | 2 ++ web-console/package-lock.json | 14 +++++++------- web-console/package.json | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/licenses.yaml b/licenses.yaml index 06d1e22ffea9..b42c1462e6fa 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -5094,7 +5094,7 @@ license_category: binary module: web-console license_name: Apache License version 2.0 copyright: Imply Data -version: 0.22.18 +version: 0.22.19 --- diff --git a/web-console/lib/keywords.js b/web-console/lib/keywords.js index 826c3d748690..dbf10e12bac6 100644 --- a/web-console/lib/keywords.js +++ b/web-console/lib/keywords.js @@ -68,6 +68,8 @@ exports.SQL_KEYWORDS = [ 'RANGE', 'PRECEDING', 'FOLLOWING', + 'CURRENT', + 'UNBOUNDED', 'EXTEND', 'PIVOT', 'UNPIVOT', diff --git a/web-console/package-lock.json b/web-console/package-lock.json index 8f1493f51510..ff9d65d378a6 100644 --- a/web-console/package-lock.json +++ b/web-console/package-lock.json @@ -15,7 +15,7 @@ "@blueprintjs/icons": "^4.16.0", "@blueprintjs/popover2": "^1.14.9", "@blueprintjs/select": "^4.9.24", - "@druid-toolkit/query": "^0.22.18", + "@druid-toolkit/query": "^0.22.19", "@druid-toolkit/visuals-core": "^0.3.3", "@druid-toolkit/visuals-react": "^0.3.3", "ace-builds": "~1.4.14", @@ -1005,9 +1005,9 @@ } }, "node_modules/@druid-toolkit/query": { - "version": "0.22.18", - "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.18.tgz", - "integrity": "sha512-MIwmK++H/ja3ZQSFe/xarltE8zFhbEH6dPIbs/r6jnCgJ/sY4cXSX9LN8mXCaSKCnMxk9AGa+oERvICQi99rog==", + "version": "0.22.19", + "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.19.tgz", + "integrity": "sha512-GdX1jmL7VNXgKsUSZT774NhPwC4QYyGS7jQTUr0VzL3Up1YmXFPEheHgNIk8d7I/TBZfkgn3UVqQL9X+FQ9f3w==", "dependencies": { "tslib": "^2.5.2" } @@ -19147,9 +19147,9 @@ "dev": true }, "@druid-toolkit/query": { - "version": "0.22.18", - "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.18.tgz", - "integrity": "sha512-MIwmK++H/ja3ZQSFe/xarltE8zFhbEH6dPIbs/r6jnCgJ/sY4cXSX9LN8mXCaSKCnMxk9AGa+oERvICQi99rog==", + "version": "0.22.19", + "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.19.tgz", + "integrity": "sha512-GdX1jmL7VNXgKsUSZT774NhPwC4QYyGS7jQTUr0VzL3Up1YmXFPEheHgNIk8d7I/TBZfkgn3UVqQL9X+FQ9f3w==", "requires": { "tslib": "^2.5.2" } diff --git a/web-console/package.json b/web-console/package.json index fc13b9be235d..a0616fe377ab 100644 --- a/web-console/package.json +++ b/web-console/package.json @@ -69,7 +69,7 @@ "@blueprintjs/icons": "^4.16.0", "@blueprintjs/popover2": "^1.14.9", "@blueprintjs/select": "^4.9.24", - "@druid-toolkit/query": "^0.22.18", + "@druid-toolkit/query": "^0.22.19", "@druid-toolkit/visuals-core": "^0.3.3", "@druid-toolkit/visuals-react": "^0.3.3", "ace-builds": "~1.4.14", From 3d16df7c3fdf5a990b309bc7384fe621853677a0 Mon Sep 17 00:00:00 2001 From: Vadim Ogievetsky Date: Thu, 20 Jun 2024 17:33:29 -0700 Subject: [PATCH 4/5] count star can also have a window --- licenses.yaml | 2 +- web-console/package-lock.json | 14 +++++++------- web-console/package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/licenses.yaml b/licenses.yaml index b42c1462e6fa..700dc8915533 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -5094,7 +5094,7 @@ license_category: binary module: web-console license_name: Apache License version 2.0 copyright: Imply Data -version: 0.22.19 +version: 0.22.20 --- diff --git a/web-console/package-lock.json b/web-console/package-lock.json index ff9d65d378a6..2945955d9d66 100644 --- a/web-console/package-lock.json +++ b/web-console/package-lock.json @@ -15,7 +15,7 @@ "@blueprintjs/icons": "^4.16.0", "@blueprintjs/popover2": "^1.14.9", "@blueprintjs/select": "^4.9.24", - "@druid-toolkit/query": "^0.22.19", + "@druid-toolkit/query": "^0.22.20", "@druid-toolkit/visuals-core": "^0.3.3", "@druid-toolkit/visuals-react": "^0.3.3", "ace-builds": "~1.4.14", @@ -1005,9 +1005,9 @@ } }, "node_modules/@druid-toolkit/query": { - "version": "0.22.19", - "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.19.tgz", - "integrity": "sha512-GdX1jmL7VNXgKsUSZT774NhPwC4QYyGS7jQTUr0VzL3Up1YmXFPEheHgNIk8d7I/TBZfkgn3UVqQL9X+FQ9f3w==", + "version": "0.22.20", + "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.20.tgz", + "integrity": "sha512-GmmSd27y7zLVTjgTBQy+XoGeSSGhSDNmwyiwWtSua7I5LX8XqHV7Chi8HIH25YQoVgTK1pLK4RS8eRXxthRAzg==", "dependencies": { "tslib": "^2.5.2" } @@ -19147,9 +19147,9 @@ "dev": true }, "@druid-toolkit/query": { - "version": "0.22.19", - "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.19.tgz", - "integrity": "sha512-GdX1jmL7VNXgKsUSZT774NhPwC4QYyGS7jQTUr0VzL3Up1YmXFPEheHgNIk8d7I/TBZfkgn3UVqQL9X+FQ9f3w==", + "version": "0.22.20", + "resolved": "https://registry.npmjs.org/@druid-toolkit/query/-/query-0.22.20.tgz", + "integrity": "sha512-GmmSd27y7zLVTjgTBQy+XoGeSSGhSDNmwyiwWtSua7I5LX8XqHV7Chi8HIH25YQoVgTK1pLK4RS8eRXxthRAzg==", "requires": { "tslib": "^2.5.2" } diff --git a/web-console/package.json b/web-console/package.json index a0616fe377ab..6e38ba24684a 100644 --- a/web-console/package.json +++ b/web-console/package.json @@ -69,7 +69,7 @@ "@blueprintjs/icons": "^4.16.0", "@blueprintjs/popover2": "^1.14.9", "@blueprintjs/select": "^4.9.24", - "@druid-toolkit/query": "^0.22.19", + "@druid-toolkit/query": "^0.22.20", "@druid-toolkit/visuals-core": "^0.3.3", "@druid-toolkit/visuals-react": "^0.3.3", "ace-builds": "~1.4.14", From ea11a12114a7f7716a6725227e6c29d797bf8307 Mon Sep 17 00:00:00 2001 From: Vadim Ogievetsky Date: Fri, 21 Jun 2024 14:49:45 -0700 Subject: [PATCH 5/5] better edit query context --- .../edit-context-dialog.spec.tsx.snap | 100 +++++++++++++++-- .../edit-context-dialog.scss | 21 +--- .../edit-context-dialog.spec.tsx | 6 +- .../edit-context-dialog.tsx | 102 ++++++++---------- .../workbench-view/run-panel/run-panel.tsx | 2 +- 5 files changed, 143 insertions(+), 88 deletions(-) diff --git a/web-console/src/dialogs/edit-context-dialog/__snapshots__/edit-context-dialog.spec.tsx.snap b/web-console/src/dialogs/edit-context-dialog/__snapshots__/edit-context-dialog.spec.tsx.snap index b9e2d072ea9a..7a2ed054f3a4 100644 --- a/web-console/src/dialogs/edit-context-dialog/__snapshots__/edit-context-dialog.spec.tsx.snap +++ b/web-console/src/dialogs/edit-context-dialog/__snapshots__/edit-context-dialog.spec.tsx.snap @@ -57,18 +57,102 @@ exports[`EditContextDialog matches snapshot 1`] = ` - +