mirror of
https://github.com/apache/superset.git
synced 2024-09-06 22:07:34 -04:00
only fetch db function when db exists in sql lab (#16754)
This commit is contained in:
parent
f032cc254c
commit
d375538671
@ -30,6 +30,7 @@ import {
|
||||
AceCompleterKeyword,
|
||||
FullSQLEditor as AceEditor,
|
||||
} from 'src/components/AsyncAceEditor';
|
||||
import { QueryEditor } from '../types';
|
||||
|
||||
type HotKey = {
|
||||
key: string;
|
||||
@ -51,7 +52,7 @@ interface Props {
|
||||
tables: any[];
|
||||
functionNames: string[];
|
||||
extendedTables: Array<{ name: string; columns: any[] }>;
|
||||
queryEditor: any;
|
||||
queryEditor: QueryEditor;
|
||||
height: string;
|
||||
hotkeys: HotKey[];
|
||||
onChange: (sql: string) => void;
|
||||
@ -86,10 +87,12 @@ class AceEditorWrapper extends React.PureComponent<Props, State> {
|
||||
componentDidMount() {
|
||||
// Making sure no text is selected from previous mount
|
||||
this.props.actions.queryEditorSetSelectedText(this.props.queryEditor, null);
|
||||
this.props.actions.queryEditorSetFunctionNames(
|
||||
this.props.queryEditor,
|
||||
this.props.queryEditor.dbId,
|
||||
);
|
||||
if (this.props.queryEditor.dbId) {
|
||||
this.props.actions.queryEditorSetFunctionNames(
|
||||
this.props.queryEditor,
|
||||
this.props.queryEditor.dbId,
|
||||
);
|
||||
}
|
||||
this.setAutoCompleter(this.props);
|
||||
}
|
||||
|
||||
@ -228,8 +231,8 @@ class AceEditorWrapper extends React.PureComponent<Props, State> {
|
||||
|
||||
getAceAnnotations() {
|
||||
const { validationResult } = this.props.queryEditor;
|
||||
const resultIsReady = validationResult && validationResult.completed;
|
||||
if (resultIsReady && validationResult.errors.length > 0) {
|
||||
const resultIsReady = validationResult?.completed;
|
||||
if (resultIsReady && validationResult?.errors?.length) {
|
||||
const errors = validationResult.errors.map((err: any) => ({
|
||||
type: 'error',
|
||||
row: err.line_number - 1,
|
||||
|
@ -26,16 +26,10 @@ import CopyToClipboard from 'src/components/CopyToClipboard';
|
||||
import { storeQuery } from 'src/utils/common';
|
||||
import { getClientErrorObject } from 'src/utils/getClientErrorObject';
|
||||
import { FeatureFlag, isFeatureEnabled } from '../../featureFlags';
|
||||
import { QueryEditor } from '../types';
|
||||
|
||||
interface ShareSqlLabQueryPropTypes {
|
||||
queryEditor: {
|
||||
dbId: number;
|
||||
title: string;
|
||||
schema: string;
|
||||
autorun: boolean;
|
||||
sql: string;
|
||||
remoteId: number | null;
|
||||
};
|
||||
queryEditor: QueryEditor;
|
||||
addDangerToast: (msg: string) => void;
|
||||
}
|
||||
|
||||
|
@ -69,3 +69,16 @@ export type Query = {
|
||||
queryLimit: number;
|
||||
limitingFactor: string;
|
||||
};
|
||||
|
||||
export interface QueryEditor {
|
||||
dbId?: number;
|
||||
title: string;
|
||||
schema: string;
|
||||
autorun: boolean;
|
||||
sql: string;
|
||||
remoteId: number | null;
|
||||
validationResult?: {
|
||||
completed: boolean;
|
||||
errors: SupersetError[];
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user