Skip to content

Commit 993843e

Browse files
refactor: merge query reducers
1 parent baf543a commit 993843e

File tree

29 files changed

+259
-343
lines changed

29 files changed

+259
-343
lines changed

src/containers/Tenant/Query/ExecuteResult/ExecuteResult.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {LoaderWrapper} from '../../../../components/LoaderWrapper/LoaderWrapper'
1313
import {QueryExecutionStatus} from '../../../../components/QueryExecutionStatus';
1414
import {QueryResultTable} from '../../../../components/QueryResultTable/QueryResultTable';
1515
import {disableFullscreen} from '../../../../store/reducers/fullscreen';
16-
import type {ExecuteQueryResult} from '../../../../store/reducers/query/executeQueryTypes';
16+
import type {QueryResult} from '../../../../store/reducers/query/types';
1717
import type {TKqpStatsQuery} from '../../../../types/api/query';
1818
import type {ValueOf} from '../../../../types/common';
1919
import {getArray} from '../../../../utils';
@@ -50,7 +50,7 @@ const resultOptionsIds = {
5050
type SectionID = ValueOf<typeof resultOptionsIds>;
5151

5252
interface ExecuteResultProps {
53-
result: ExecuteQueryResult;
53+
result: QueryResult;
5454
isResultsCollapsed?: boolean;
5555
theme?: string;
5656
tenantName: string;

src/containers/Tenant/Query/ExecuteResult/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {explainVersions} from '../../../../store/reducers/query/expainUtils';
1+
import {explainVersions} from '../../../../store/reducers/query/prepareQueryData';
22
import type {IQueryResult} from '../../../../types/store/query';
33
import {preparePlan, prepareSimplifiedPlan} from '../../../../utils/prepareQueryExplain';
44
import {parseQueryExplainPlan} from '../../../../utils/query';

src/containers/Tenant/Query/ExplainResult/ExplainResult.tsx

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ import Fullscreen from '../../../../components/Fullscreen/Fullscreen';
99
import {LoaderWrapper} from '../../../../components/LoaderWrapper/LoaderWrapper';
1010
import {QueryExecutionStatus} from '../../../../components/QueryExecutionStatus';
1111
import {disableFullscreen} from '../../../../store/reducers/fullscreen';
12-
import type {ExplainQueryResult} from '../../../../store/reducers/query/executeQueryTypes';
12+
import type {QueryResult} from '../../../../store/reducers/query/types';
1313
import type {ValueOf} from '../../../../types/common';
1414
import {cn} from '../../../../utils/cn';
1515
import {getStringifiedData} from '../../../../utils/dataFormatters/dataFormatters';
1616
import {useTypedDispatch} from '../../../../utils/hooks';
17-
import {parseQueryErrorToString} from '../../../../utils/query';
17+
import {parseQueryError} from '../../../../utils/query';
1818
import {PaneVisibilityToggleButtons} from '../../utils/paneVisibilityToggleHelpers';
1919
import {CancelQueryButton} from '../CancelQueryButton/CancelQueryButton';
20+
import {ResultIssues} from '../Issues/Issues';
2021
import {QueryDuration} from '../QueryDuration/QueryDuration';
2122
import {QuerySettingsBanner} from '../QuerySettingsBanner/QuerySettingsBanner';
2223
import {isQueryCancelledError} from '../utils/isQueryCancelledError';
@@ -59,7 +60,7 @@ const explainOptions = [
5960

6061
interface ExplainResultProps {
6162
theme: string;
62-
result: ExplainQueryResult;
63+
result: QueryResult;
6364
tenantName: string;
6465
isResultsCollapsed?: boolean;
6566
onCollapseResults: VoidFunction;
@@ -81,7 +82,7 @@ export function ExplainResult({
8182
const [isPending, startTransition] = React.useTransition();
8283
const {error, isLoading, queryId} = result;
8384

84-
const {plan: explain, ast, simplifiedPlan} = result.data || {};
85+
const {preparedPlan: explain, ast, simplifiedPlan} = result.data || {};
8586

8687
React.useEffect(() => {
8788
return () => {
@@ -99,13 +100,23 @@ export function ExplainResult({
99100
);
100101
};
101102

102-
const renderContent = () => {
103-
if (isQueryCancelledError(error)) {
103+
const renderIssues = () => {
104+
const parsedError = parseQueryError(error);
105+
106+
if (!parsedError) {
104107
return null;
105108
}
106109

110+
if (typeof parsedError === 'object') {
111+
return <ResultIssues data={parsedError} />;
112+
}
113+
114+
return <div className={b('error')}>{parsedError}</div>;
115+
};
116+
117+
const renderContent = () => {
107118
if (error) {
108-
return <div className={b('text-message')}>{parseQueryErrorToString(error)}</div>;
119+
return renderIssues();
109120
}
110121

111122
switch (activeOption) {

src/containers/Tenant/Query/ExplainResult/components/Graph/Graph.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {YDBGraph} from '../../../../../../components/Graph/Graph';
2-
import {explainVersions} from '../../../../../../store/reducers/query/expainUtils';
3-
import type {PreparedExplainResponse} from '../../../../../../store/reducers/query/explainQueryTypes';
2+
import {explainVersions} from '../../../../../../store/reducers/query/prepareQueryData';
3+
import type {PreparedPlan} from '../../../../../../store/reducers/query/types';
44
import {cn} from '../../../../../../utils/cn';
55
import i18n from '../../i18n';
66

@@ -9,7 +9,7 @@ import './Graph.scss';
99
const b = cn('ydb-query-explain-graph');
1010

1111
interface GraphProps {
12-
explain: PreparedExplainResponse['plan'];
12+
explain: PreparedPlan;
1313
theme: string;
1414
}
1515

src/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33
import {Table, useTable} from '@gravity-ui/table';
44
import type {CellContext, ColumnDef, ExpandedState} from '@tanstack/react-table';
55

6-
import type {SimplifiedPlanItem} from '../../../../../../store/reducers/query/explainQueryTypes';
6+
import type {SimplifiedPlanItem} from '../../../../../../store/reducers/query/types';
77
import {configuredNumeral} from '../../../../../../utils/numeral';
88
import {formatToMs} from '../../../../../../utils/timeParsers';
99
import {toExponential} from '../../../../../../utils/utils';

src/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/__tests__/utils.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {SimplifiedPlanItem} from '../../../../../../../store/reducers/query/explainQueryTypes';
1+
import type {SimplifiedPlanItem} from '../../../../../../../store/reducers/query/types';
22
import type {ExtendedSimplifiesPlanItem} from '../types';
33
import {getExtendedTreeNodes} from '../utils';
44

src/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {SimplifiedPlanItem} from '../../../../../../store/reducers/query/explainQueryTypes';
1+
import type {SimplifiedPlanItem} from '../../../../../../store/reducers/query/types';
22

33
export interface ExtendedSimplifiesPlanItem extends Omit<SimplifiedPlanItem, 'children'> {
44
lines?: string;

src/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {SimplifiedPlanItem} from '../../../../../../store/reducers/query/explainQueryTypes';
1+
import type {SimplifiedPlanItem} from '../../../../../../store/reducers/query/types';
22
import {cn} from '../../../../../../utils/cn';
33

44
import type {ExtendedSimplifiesPlanItem} from './types';

src/containers/Tenant/Query/QueriesHistory/QueriesHistory.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
selectQueriesHistoryFilter,
1010
setQueryHistoryFilter,
1111
} from '../../../../store/reducers/query/executeQuery';
12-
import type {QueryInHistory} from '../../../../store/reducers/query/executeQueryTypes';
12+
import type {QueryInHistory} from '../../../../store/reducers/query/types';
1313
import {TENANT_QUERY_TABS_ID} from '../../../../store/reducers/tenant/constants';
1414
import {setQueryTab} from '../../../../store/reducers/tenant/tenant';
1515
import {cn} from '../../../../utils/cn';

src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import {MonacoEditor} from '../../../../components/MonacoEditor/MonacoEditor';
1010
import SplitPane from '../../../../components/SplitPane';
1111
import {useTracingLevelOptionAvailable} from '../../../../store/reducers/capabilities/hooks';
1212
import {
13-
executeQueryApi,
1413
goToNextQuery,
1514
goToPreviousQuery,
15+
queryApi,
1616
saveQueryToHistory,
1717
selectQueriesHistory,
1818
selectQueriesHistoryCurrentIndex,
@@ -21,9 +21,7 @@ import {
2121
selectUserInput,
2222
setTenantPath,
2323
} from '../../../../store/reducers/query/executeQuery';
24-
import type {QueryResult} from '../../../../store/reducers/query/executeQueryTypes';
25-
import {ResultType} from '../../../../store/reducers/query/executeQueryTypes';
26-
import {explainQueryApi} from '../../../../store/reducers/query/explainQuery';
24+
import type {QueryResult} from '../../../../store/reducers/query/types';
2725
import {setQueryAction} from '../../../../store/reducers/queryActions/queryActions';
2826
import {selectShowPreview, setShowPreview} from '../../../../store/reducers/schema/schema';
2927
import type {EPathType} from '../../../../types/api/schema';
@@ -104,8 +102,7 @@ export default function QueryEditor(props: QueryEditorProps) {
104102
LAST_USED_QUERY_ACTION_KEY,
105103
);
106104

107-
const [sendExecuteQuery] = executeQueryApi.useExecuteQueryMutation();
108-
const [sendExplainQuery] = explainQueryApi.useExplainQueryMutation();
105+
const [sendQuery] = queryApi.useExecuteQueryMutation();
109106

110107
React.useEffect(() => {
111108
if (savedPath !== tenantName) {
@@ -147,7 +144,8 @@ export default function QueryEditor(props: QueryEditorProps) {
147144
}
148145
const queryId = uuidv4();
149146

150-
sendExecuteQuery({
147+
sendQuery({
148+
actionType: 'execute',
151149
query,
152150
database: tenantName,
153151
querySettings,
@@ -180,7 +178,8 @@ export default function QueryEditor(props: QueryEditorProps) {
180178

181179
const queryId = uuidv4();
182180

183-
sendExplainQuery({
181+
sendQuery({
182+
actionType: 'explain',
184183
query: input,
185184
database: tenantName,
186185
querySettings,
@@ -400,7 +399,7 @@ function Result({
400399
return <Preview database={tenantName} path={path} type={type} />;
401400
}
402401

403-
if (result?.type === ResultType.EXECUTE) {
402+
if (result?.type === 'execute') {
404403
return (
405404
<ExecuteResult
406405
result={result}
@@ -413,7 +412,7 @@ function Result({
413412
);
414413
}
415414

416-
if (result?.type === ResultType.EXPLAIN) {
415+
if (result?.type === 'explain') {
417416
return (
418417
<ExplainResult
419418
result={result}

0 commit comments

Comments
 (0)