chore(sqllab): Remove schemaOptions from redux store (#23257)

This commit is contained in:
JUST.in DO IT 2023-03-22 14:35:22 -07:00 committed by GitHub
parent b1526c14e0
commit ca4dd26648
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 24 additions and 69 deletions

View File

@ -50,8 +50,6 @@ export const EXPAND_TABLE = 'EXPAND_TABLE';
export const COLLAPSE_TABLE = 'COLLAPSE_TABLE';
export const QUERY_EDITOR_SETDB = 'QUERY_EDITOR_SETDB';
export const QUERY_EDITOR_SET_SCHEMA = 'QUERY_EDITOR_SET_SCHEMA';
export const QUERY_EDITOR_SET_SCHEMA_OPTIONS =
'QUERY_EDITOR_SET_SCHEMA_OPTIONS';
export const QUERY_EDITOR_SET_TABLE_OPTIONS = 'QUERY_EDITOR_SET_TABLE_OPTIONS';
export const QUERY_EDITOR_SET_TITLE = 'QUERY_EDITOR_SET_TITLE';
export const QUERY_EDITOR_SET_AUTORUN = 'QUERY_EDITOR_SET_AUTORUN';
@ -946,10 +944,6 @@ export function queryEditorSetSchema(queryEditor, schema) {
};
}
export function queryEditorSetSchemaOptions(queryEditor, options) {
return { type: QUERY_EDITOR_SET_SCHEMA_OPTIONS, queryEditor, options };
}
export function queryEditorSetTableOptions(queryEditor, options) {
return { type: QUERY_EDITOR_SET_TABLE_OPTIONS, queryEditor, options };
}

View File

@ -45,7 +45,6 @@ describe('async actions', () => {
latestQueryId: null,
sql: 'SELECT *\nFROM\nWHERE',
name: 'Untitled Query 1',
schemaOptions: [{ value: 'main', label: 'main', title: 'main' }],
};
let dispatch;

View File

@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
import React, { useState, useEffect, useRef } from 'react';
import React, { useState, useEffect, useRef, useMemo } from 'react';
import { useDispatch } from 'react-redux';
import { css, styled, usePrevious } from '@superset-ui/core';
@ -39,6 +39,7 @@ import {
FullSQLEditor as AceEditor,
} from 'src/components/AsyncAceEditor';
import useQueryEditor from 'src/SqlLab/hooks/useQueryEditor';
import { useSchemas } from 'src/hooks/apiResources';
type HotKey = {
key: string;
@ -80,6 +81,7 @@ const StyledAceEditor = styled(AceEditor)`
}
`}
`;
const AceEditorWrapper = ({
autocomplete,
onBlur = () => {},
@ -97,14 +99,27 @@ const AceEditorWrapper = ({
'dbId',
'sql',
'functionNames',
'schemaOptions',
'tableOptions',
'validationResult',
'schema',
]);
const { data: schemaOptions } = useSchemas({ dbId: queryEditor.dbId });
const currentSql = queryEditor.sql ?? '';
const functionNames = queryEditor.functionNames ?? [];
const schemas = queryEditor.schemaOptions ?? [];
// Loading schema, table and column names as auto-completable words
const { schemas, schemaWords } = useMemo(
() => ({
schemas: schemaOptions ?? [],
schemaWords: (schemaOptions ?? []).map(s => ({
name: s.label,
value: s.value,
score: SCHEMA_AUTOCOMPLETE_SCORE,
meta: 'schema',
})),
}),
[schemaOptions],
);
const tables = queryEditor.tableOptions ?? [];
const [sql, setSql] = useState(currentSql);
@ -192,14 +207,7 @@ const AceEditorWrapper = ({
onChange(text);
};
const setAutoCompleter = () => {
// Loading schema, table and column names as auto-completable words
const schemaWords = schemas.map(s => ({
name: s.label,
value: s.value,
score: SCHEMA_AUTOCOMPLETE_SCORE,
meta: 'schema',
}));
function setAutoCompleter() {
const columns = {};
const tableWords = tables.map(t => {
@ -263,7 +271,7 @@ const AceEditorWrapper = ({
}));
setWords(words);
};
}
const getAceAnnotations = () => {
const { validationResult } = queryEditor;

View File

@ -78,7 +78,6 @@ const SaveQuery = ({
'latestQueryId',
'queryLimit',
'schema',
'schemaOptions',
'selectedText',
'sql',
'tableOptions',

View File

@ -36,7 +36,6 @@ import {
expandTable,
queryEditorSetSchema,
queryEditorSetTableOptions,
queryEditorSetSchemaOptions,
setDatabases,
addDangerToast,
resetState,
@ -228,15 +227,6 @@ const SqlEditorLeftBar = ({
[dispatch, queryEditor],
);
const handleSchemasLoad = useCallback(
(options: Array<any>) => {
if (queryEditor) {
dispatch(queryEditorSetSchemaOptions(queryEditor, options));
}
},
[dispatch, queryEditor],
);
const handleDbList = useCallback(
(result: DatabaseObject) => {
dispatch(setDatabases(result));
@ -265,7 +255,6 @@ const SqlEditorLeftBar = ({
handleError={handleError}
onDbChange={onDbChange}
onSchemaChange={handleSchemaChange}
onSchemasLoad={handleSchemasLoad}
onTableSelectChange={onTablesChange}
onTablesLoad={handleTablesLoad}
schema={schema}

View File

@ -188,13 +188,6 @@ export const defaultQueryEditor = {
tableOptions: [],
functionNames: [],
hideLeftBar: false,
schemaOptions: [
{
value: 'main',
label: 'main',
title: 'main',
},
],
templateParams: '{}',
};

View File

@ -30,12 +30,7 @@ const mockStore = configureStore(middlewares);
test('returns selected queryEditor values', () => {
const { result } = renderHook(
() =>
useQueryEditor(defaultQueryEditor.id, [
'id',
'name',
'dbId',
'schemaOptions',
]),
useQueryEditor(defaultQueryEditor.id, ['id', 'name', 'dbId', 'schema']),
{
wrapper: createWrapper({
useRedux: true,
@ -47,7 +42,7 @@ test('returns selected queryEditor values', () => {
id: defaultQueryEditor.id,
name: defaultQueryEditor.name,
dbId: defaultQueryEditor.dbId,
schemaOptions: defaultQueryEditor.schemaOptions,
schema: defaultQueryEditor.schema,
});
});

View File

@ -587,18 +587,6 @@ export default function sqlLabReducer(state = {}, action) {
),
};
},
[actions.QUERY_EDITOR_SET_SCHEMA_OPTIONS]() {
return {
...state,
...alterUnsavedQueryEditorState(
state,
{
schemaOptions: action.options,
},
action.queryEditor.id,
),
};
},
[actions.QUERY_EDITOR_SET_TABLE_OPTIONS]() {
return {
...state,

View File

@ -40,7 +40,6 @@ export interface QueryEditor {
sql: string;
remoteId: number | null;
tableOptions: any[];
schemaOptions?: SchemaOption[];
functionNames: string[];
validationResult?: {
completed: boolean;

View File

@ -84,9 +84,9 @@ describe('reduxStateToLocalStorageHelper', () => {
it('should only return selected keys for query editor', () => {
const queryEditors = [defaultQueryEditor];
expect(Object.keys(queryEditors[0])).toContain('schemaOptions');
expect(Object.keys(queryEditors[0])).toContain('schema');
const clearedQueryEditors = clearQueryEditors(queryEditors);
expect(Object.keys(clearedQueryEditors)[0]).not.toContain('schemaOptions');
expect(Object.keys(clearedQueryEditors)[0]).not.toContain('schema');
});
});

View File

@ -40,7 +40,6 @@ const createProps = (): DatabaseSelectorProps => ({
handleError: jest.fn(),
onDbChange: jest.fn(),
onSchemaChange: jest.fn(),
onSchemasLoad: jest.fn(),
});
const fakeDatabaseApiResult = {

View File

@ -93,7 +93,6 @@ export interface DatabaseSelectorProps {
onDbChange?: (db: DatabaseObject) => void;
onEmptyResults?: (searchText?: string) => void;
onSchemaChange?: (schema?: string) => void;
onSchemasLoad?: (schemas: Array<object>) => void;
readOnly?: boolean;
schema?: string;
sqlLabMode?: boolean;
@ -126,7 +125,6 @@ export default function DatabaseSelector({
onDbChange,
onEmptyResults,
onSchemaChange,
onSchemasLoad,
readOnly = false,
schema,
sqlLabMode = false,
@ -230,8 +228,6 @@ export default function DatabaseSelector({
} = useSchemas({
dbId: currentDb?.value,
onSuccess: data => {
onSchemasLoad?.(data);
if (data.length === 1) {
changeSchema(data[0]);
} else if (!data.find(schemaOption => schema === schemaOption.value)) {

View File

@ -36,7 +36,6 @@ import RefreshLabel from 'src/components/RefreshLabel';
import CertifiedBadge from 'src/components/CertifiedBadge';
import WarningIconWithTooltip from 'src/components/WarningIconWithTooltip';
import { useToasts } from 'src/components/MessageToasts/withToasts';
import { SchemaOption } from 'src/SqlLab/types';
import { useTables, Table } from 'src/hooks/apiResources';
import {
getClientErrorMessage,
@ -98,7 +97,6 @@ interface TableSelectorProps {
isDatabaseSelectEnabled?: boolean;
onDbChange?: (db: DatabaseObject) => void;
onSchemaChange?: (schema?: string) => void;
onSchemasLoad?: (schemaOptions: SchemaOption[]) => void;
onTablesLoad?: (options: Array<any>) => void;
readOnly?: boolean;
schema?: string;
@ -160,7 +158,6 @@ const TableSelector: FunctionComponent<TableSelectorProps> = ({
isDatabaseSelectEnabled = true,
onDbChange,
onSchemaChange,
onSchemasLoad,
onTablesLoad,
readOnly = false,
onEmptyResults,
@ -335,7 +332,6 @@ const TableSelector: FunctionComponent<TableSelectorProps> = ({
onDbChange={readOnly ? undefined : internalDbChange}
onEmptyResults={onEmptyResults}
onSchemaChange={readOnly ? undefined : internalSchemaChange}
onSchemasLoad={onSchemasLoad}
schema={currentSchema}
sqlLabMode={sqlLabMode}
isDatabaseSelectEnabled={isDatabaseSelectEnabled && !readOnly}