diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx index c132b0918d..ca7ddff4ce 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx +++ b/superset-frontend/packages/superset-ui-chart-controls/src/components/labelUtils.tsx @@ -68,7 +68,7 @@ export const getColumnTooltipNode = ( labelRef?: React.RefObject, ): ReactNode => { if ( - !column.verbose_name && + (!column.column_name || !column.verbose_name) && !column.description && !isLabelTruncated(labelRef) ) { @@ -77,7 +77,9 @@ export const getColumnTooltipNode = ( return ( <> - + {column.column_name && ( + + )} {column.verbose_name && ( )} diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/Column.ts b/superset-frontend/packages/superset-ui-core/src/query/types/Column.ts index c2b35f46c4..7afe031bcf 100644 --- a/superset-frontend/packages/superset-ui-core/src/query/types/Column.ts +++ b/superset-frontend/packages/superset-ui-core/src/query/types/Column.ts @@ -61,7 +61,7 @@ export function isAdhocColumn(column?: any): column is AdhocColumn { typeof column !== 'string' && column?.sqlExpression !== undefined && column?.label !== undefined && - column?.expressionType === 'SQL' + (column?.expressionType === undefined || column?.expressionType === 'SQL') ); } diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx index 2e8a8ede6b..f979f231e2 100644 --- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx +++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopover.tsx @@ -121,7 +121,7 @@ const ColumnSelectPopover = ({ const onSqlExpressionChange = useCallback( sqlExpression => { - setAdhocColumn({ label, sqlExpression } as AdhocColumn); + setAdhocColumn({ label, sqlExpression, expressionType: 'SQL' }); setSelectedSimpleColumn(undefined); setSelectedCalculatedColumn(undefined); }, diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.test.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.test.tsx index 37240d57ca..b02905191f 100644 --- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.test.tsx +++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndColumnSelect.test.tsx @@ -27,7 +27,9 @@ const defaultProps: DndColumnSelectProps = { type: 'DndColumnSelect', name: 'Filter', onChange: jest.fn(), - options: { string: { column_name: 'Column A' } }, + options: { + string: { column_name: 'Column A' }, + }, actions: { setControlValue: jest.fn() }, }; @@ -42,3 +44,19 @@ test('renders with value', () => { }); expect(screen.getByText('Column A')).toBeInTheDocument(); }); + +test('renders adhoc column', () => { + render( + , + { useDnd: true }, + ); + expect(screen.getByText('adhoc column')).toBeVisible(); + expect(screen.getByLabelText('calculator')).toBeVisible(); +});