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

gianm 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 d10dd2fca08 fix: web console workbench result menu, Mod+Enter, and 
BigInt cells (#20777)
d10dd2fca08 is described below

commit d10dd2fca088dd290f168d3b9b715f0d706d1e5b
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Wed Oct 28 20:30:30 2026 -0700

    fix: web console workbench result menu, Mod+Enter, and BigInt cells (#20777)
    
    - Result column header menu (no parsed query) showed DESC for both copy 
items
    - Mod+Enter in the query editor also inserted a blank line via CodeMirror's 
defaultKeymap
    - BigInt values in numeric result columns were not formatted with digit 
grouping
---
 .../flexible-query-input/flexible-query-input.tsx  | 23 ++++++++++++++++++++--
 .../result-table-pane/result-table-pane.tsx        |  5 +++--
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git 
a/web-console/src/views/workbench-view/flexible-query-input/flexible-query-input.tsx
 
b/web-console/src/views/workbench-view/flexible-query-input/flexible-query-input.tsx
index fa05028d2ab..05672f1fa10 100644
--- 
a/web-console/src/views/workbench-view/flexible-query-input/flexible-query-input.tsx
+++ 
b/web-console/src/views/workbench-view/flexible-query-input/flexible-query-input.tsx
@@ -18,8 +18,10 @@
 
 import { Intent } from '@blueprintjs/core';
 import { IconNames } from '@blueprintjs/icons';
-import { Compartment } from '@codemirror/state';
+import { closeCompletion } from '@codemirror/autocomplete';
+import { Compartment, Prec } from '@codemirror/state';
 import type { EditorView } from '@codemirror/view';
+import { keymap } from '@codemirror/view';
 import React from 'react';
 
 import { CodeEditor } from '../../../components';
@@ -37,6 +39,20 @@ import './flexible-query-input.scss';
 
 const V_PADDING = 10;
 
+// Mod+Enter and Mod+Shift+Enter are the global run / preview hotkeys (see 
RunPanel). Claim them in the
+// editor so CodeMirror does not also act on them (defaultKeymap binds 
Mod-Enter to insertBlankLine).
+// The event still bubbles up to the hotkey handler.
+const runKeyHandler = (view: EditorView) => {
+  closeCompletion(view);
+  return true;
+};
+const RUN_KEYS_EXTENSION = Prec.highest(
+  keymap.of([
+    { key: 'Mod-Enter', run: runKeyHandler },
+    { key: 'Mod-Shift-Enter', run: runKeyHandler },
+  ]),
+);
+
 export interface FlexibleQueryInputProps {
   /** Gives you the CodeMirror EditorView (to use with focusEditorAt for 
example) */
   ref?: React.Ref<EditorView | undefined>;
@@ -95,7 +111,10 @@ export function FlexibleQueryInput(props: 
FlexibleQueryInputProps) {
     () => (subQueriesEnabled ? subQueryMarkers(handleRunSubQuery) : []),
     [subQueriesEnabled, handleRunSubQuery],
   );
-  const extensions = useConstant(() => 
subQueryCompartment.of(subQueryExtension));
+  const extensions = useConstant(() => [
+    RUN_KEYS_EXTENSION,
+    subQueryCompartment.of(subQueryExtension),
+  ]);
 
   React.useEffect(() => {
     editorViewRef.current?.dispatch({
diff --git 
a/web-console/src/views/workbench-view/result-table-pane/result-table-pane.tsx 
b/web-console/src/views/workbench-view/result-table-pane/result-table-pane.tsx
index 83b5340e2fe..be1003e4267 100644
--- 
a/web-console/src/views/workbench-view/result-table-pane/result-table-pane.tsx
+++ 
b/web-console/src/views/workbench-view/result-table-pane/result-table-pane.tsx
@@ -52,6 +52,7 @@ import {
   filterMap,
   formatNumber,
   getNumericColumnBraces,
+  isNumberLike,
   oneOf,
   prettyPrintSql,
   timeFormatToSql,
@@ -572,7 +573,7 @@ export const ResultTablePane = React.memo(function 
ResultTablePane(props: Result
         const descOrderBy = orderByExpression.toOrderByExpression('DESC');
         const ascOrderBy = orderByExpression.toOrderByExpression('ASC');
         const descOrderByPretty = prettyPrintSql(descOrderBy);
-        const ascOrderByPretty = prettyPrintSql(descOrderBy);
+        const ascOrderByPretty = prettyPrintSql(ascOrderBy);
 
         menuItems.push(
           <MenuItem
@@ -724,7 +725,7 @@ export const ResultTablePane = React.memo(function 
ResultTablePane(props: Result
                       {numericColumnBraces[i] ? (
                         <BracedText
                           className="table-padding"
-                          text={typeof value === 'number' ? 
formatNumber(value) : String(value)}
+                          text={isNumberLike(value) ? formatNumber(value) : 
String(value)}
                           braces={numericColumnBraces[i]}
                           padFractionalPart
                         />


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

Reply via email to