ydb-embedded-ui 8.11.0 → 8.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DateRange/__test__/fromDateRangeValues.test.js +4 -4
- package/dist/components/DateRange/__test__/fromDateRangeValues.test.js.map +1 -1
- package/dist/components/DateRange/__test__/getdatePickerSize.test.js +4 -4
- package/dist/components/DateRange/__test__/getdatePickerSize.test.js.map +1 -1
- package/dist/components/DateRange/__test__/toDateRangeValues.test.js +4 -4
- package/dist/components/DateRange/__test__/toDateRangeValues.test.js.map +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/JsonViewer/JsonViewer.js +10 -4
- package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
- package/dist/components/JsonViewer/components/Filter.d.ts +2 -0
- package/dist/components/JsonViewer/components/Filter.js +3 -6
- package/dist/components/JsonViewer/components/Filter.js.map +1 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.d.ts +2 -2
- package/dist/components/PDiskInfo/PDiskInfo.js +2 -3
- package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
- package/dist/components/PDiskPopup/PDiskPopup.js +2 -2
- package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
- package/dist/components/QueryResultTable/QueryResultTable.d.ts +2 -0
- package/dist/components/QueryResultTable/QueryResultTable.js +16 -11
- package/dist/components/QueryResultTable/QueryResultTable.js.map +1 -1
- package/dist/components/QueryResultTable/QueryResultTable.scss +6 -0
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js +2 -3
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js +2 -3
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js +2 -3
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js.map +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.js +2 -3
- package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDiskPopup/VDiskPopup.js +2 -2
- package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
- package/dist/components/nodesColumns/__test__/utils.test.js +4 -4
- package/dist/components/nodesColumns/__test__/utils.test.js.map +1 -1
- package/dist/components/nodesColumns/constants.d.ts +1 -0
- package/dist/components/nodesColumns/constants.js +5 -0
- package/dist/components/nodesColumns/constants.js.map +1 -1
- package/dist/containers/App/App.d.ts +1 -1
- package/dist/containers/App/Content.js +13 -3
- package/dist/containers/App/Content.js.map +1 -1
- package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js +7 -2
- package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js.map +1 -1
- package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js +3 -3
- package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js.map +1 -1
- package/dist/containers/AppWithClusters/useClusterData.d.ts +1 -13
- package/dist/containers/AppWithClusters/useClusterData.js +4 -18
- package/dist/containers/AppWithClusters/useClusterData.js.map +1 -1
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js +15 -2
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js.map +1 -1
- package/dist/containers/Authentication/Authentication.js +16 -4
- package/dist/containers/Authentication/Authentication.js.map +1 -1
- package/dist/containers/Authentication/utils.d.ts +1 -0
- package/dist/containers/Authentication/utils.js +3 -0
- package/dist/containers/Authentication/utils.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +1 -1
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/Cluster.scss +0 -7
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +0 -2
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Header/Header.js +2 -2
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Node/Node.js +1 -1
- package/dist/containers/Node/Node.js.map +1 -1
- package/dist/containers/Node/NodeStructure/Pdisk.js +2 -3
- package/dist/containers/Node/NodeStructure/Pdisk.js.map +1 -1
- package/dist/containers/Nodes/Nodes.js +11 -3
- package/dist/containers/Nodes/Nodes.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskPage.js +3 -3
- package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorage.js +4 -1
- package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes.js +2 -4
- package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -1
- package/dist/containers/Storage/StorageControls/StorageControls.js +4 -1
- package/dist/containers/Storage/StorageControls/StorageControls.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/columns/constants.d.ts +1 -0
- package/dist/containers/Storage/StorageGroups/columns/constants.js +10 -0
- package/dist/containers/Storage/StorageGroups/columns/constants.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/columns/hooks.js +9 -3
- package/dist/containers/Storage/StorageGroups/columns/hooks.js.map +1 -1
- package/dist/containers/Tablet/Tablet.js +3 -3
- package/dist/containers/Tablet/Tablet.js.map +1 -1
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js +2 -3
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js.map +1 -1
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +2 -3
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -1
- package/dist/containers/Tablets/Tablets.d.ts +1 -2
- package/dist/containers/Tablets/Tablets.js +7 -11
- package/dist/containers/Tablets/Tablets.js.map +1 -1
- package/dist/containers/Tablets/TabletsTable.d.ts +2 -1
- package/dist/containers/Tablets/TabletsTable.js +22 -9
- package/dist/containers/Tablets/TabletsTable.js.map +1 -1
- package/dist/containers/Tablets/i18n/en.json +3 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/__test__/transformPath.test.js +6 -6
- package/dist/containers/Tenant/ObjectSummary/__test__/transformPath.test.js.map +1 -1
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.d.ts +4 -3
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js +2 -8
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +50 -15
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.d.ts +7 -2
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +10 -7
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js +5 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.d.ts +4 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js +8 -3
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js +17 -2
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js.map +1 -1
- package/dist/containers/UserSettings/i18n/en.json +2 -0
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +1 -0
- package/dist/containers/UserSettings/settings.js +7 -2
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +3 -3
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/Versions/NodesTable/NodesTable.js +3 -5
- package/dist/containers/Versions/NodesTable/NodesTable.js.map +1 -1
- package/dist/services/api/auth.d.ts +1 -0
- package/dist/services/api/auth.js.map +1 -1
- package/dist/services/api/index.d.ts +2 -0
- package/dist/services/api/index.js +2 -0
- package/dist/services/api/index.js.map +1 -1
- package/dist/services/api/streaming.d.ts +12 -0
- package/dist/services/api/streaming.js +65 -0
- package/dist/services/api/streaming.js.map +1 -0
- package/dist/services/api/viewer.d.ts +2 -14
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/services/settings.d.ts +1 -0
- package/dist/services/settings.js +2 -1
- package/dist/services/settings.js.map +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +1 -0
- package/dist/store/reducers/authentication/authentication.js.map +1 -1
- package/dist/store/reducers/capabilities/capabilities.d.ts +126 -1
- package/dist/store/reducers/capabilities/capabilities.js +6 -2
- package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +3 -0
- package/dist/store/reducers/capabilities/hooks.js +14 -1
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/__test__/parseGroupsStatsQueryResponse.test.js +1 -1
- package/dist/store/reducers/cluster/__test__/parseGroupsStatsQueryResponse.test.js.map +1 -1
- package/dist/store/reducers/query/__test__/utils.test.js +4 -4
- package/dist/store/reducers/query/__test__/utils.test.js.map +1 -1
- package/dist/store/reducers/query/preparePlanData.d.ts +5 -0
- package/dist/store/reducers/query/preparePlanData.js +57 -0
- package/dist/store/reducers/query/preparePlanData.js.map +1 -0
- package/dist/store/reducers/query/prepareQueryData.js +8 -54
- package/dist/store/reducers/query/prepareQueryData.js.map +1 -1
- package/dist/store/reducers/query/query.d.ts +3 -1
- package/dist/store/reducers/query/query.js +76 -1
- package/dist/store/reducers/query/query.js.map +1 -1
- package/dist/store/reducers/query/streamingReducers.d.ts +6 -0
- package/dist/store/reducers/query/streamingReducers.js +118 -0
- package/dist/store/reducers/query/streamingReducers.js.map +1 -0
- package/dist/store/reducers/query/utils.d.ts +4 -0
- package/dist/store/reducers/query/utils.js +12 -0
- package/dist/store/reducers/query/utils.js.map +1 -1
- package/dist/{index.css → styles/index.scss} +4 -0
- package/dist/styles/themes.scss +0 -3
- package/dist/styles/unipika.scss +7 -0
- package/dist/types/additionalProps.d.ts +1 -1
- package/dist/types/api/capabilities.d.ts +4 -0
- package/dist/types/api/query.d.ts +17 -1
- package/dist/types/store/query.d.ts +9 -0
- package/dist/types/store/streaming.d.ts +37 -0
- package/dist/types/store/streaming.js +2 -0
- package/dist/types/store/streaming.js.map +1 -0
- package/dist/utils/__test__/getColumnWidth.test.js +15 -15
- package/dist/utils/__test__/getColumnWidth.test.js.map +1 -1
- package/dist/utils/__test__/monitoring.test.js +4 -4
- package/dist/utils/__test__/monitoring.test.js.map +1 -1
- package/dist/utils/__test__/parseBalancer.test.js +9 -9
- package/dist/utils/__test__/parseBalancer.test.js.map +1 -1
- package/dist/utils/__test__/prepareBackend.test.js +3 -3
- package/dist/utils/__test__/prepareBackend.test.js.map +1 -1
- package/dist/utils/bytesParsers/__test__/formatBytes.test.js +6 -6
- package/dist/utils/bytesParsers/__test__/formatBytes.test.js.map +1 -1
- package/dist/utils/constants.d.ts +2 -1
- package/dist/utils/constants.js +1 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/formatNumbers.test.js +9 -9
- package/dist/utils/dataFormatters/__test__/formatNumbers.test.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/formatStorageValues.test.js +7 -7
- package/dist/utils/dataFormatters/__test__/formatStorageValues.test.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/formatUptime.test.js +11 -11
- package/dist/utils/dataFormatters/__test__/formatUptime.test.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/roundToSignificant.test.js +2 -2
- package/dist/utils/dataFormatters/__test__/roundToSignificant.test.js.map +1 -1
- package/dist/utils/developerUI/__test__/developerUI.test.js +12 -12
- package/dist/utils/developerUI/__test__/developerUI.test.js.map +1 -1
- package/dist/utils/disks/__test__/calculatePDiskSeverity.test.js +5 -5
- package/dist/utils/disks/__test__/calculatePDiskSeverity.test.js.map +1 -1
- package/dist/utils/disks/__test__/calculateVDiskSeverity.test.js +8 -8
- package/dist/utils/disks/__test__/calculateVDiskSeverity.test.js.map +1 -1
- package/dist/utils/disks/__test__/prepareDisks.test.js +7 -7
- package/dist/utils/disks/__test__/prepareDisks.test.js.map +1 -1
- package/dist/utils/hooks/__test__/useTableSort.test.js +3 -3
- package/dist/utils/hooks/__test__/useTableSort.test.js.map +1 -1
- package/dist/utils/hooks/useAdditionalNodesProps.d.ts +2 -0
- package/dist/utils/hooks/useAdditionalNodesProps.js +14 -0
- package/dist/utils/hooks/useAdditionalNodesProps.js.map +1 -0
- package/dist/utils/hooks/useIsUserAllowedToMakeChanges.d.ts +1 -0
- package/dist/utils/hooks/useIsUserAllowedToMakeChanges.js +6 -0
- package/dist/utils/hooks/useIsUserAllowedToMakeChanges.js.map +1 -0
- package/dist/utils/hooks/useNodeDeveloperUIHref.js +4 -7
- package/dist/utils/hooks/useNodeDeveloperUIHref.js.map +1 -1
- package/dist/utils/prepareBackend.d.ts +2 -1
- package/dist/utils/prepareBackend.js +3 -2
- package/dist/utils/prepareBackend.js.map +1 -1
- package/dist/utils/query.d.ts +3 -2
- package/dist/utils/query.js +18 -31
- package/dist/utils/query.js.map +1 -1
- package/dist/utils/query.test.js +19 -19
- package/dist/utils/query.test.js.map +1 -1
- package/dist/utils/response.js +2 -1
- package/dist/utils/response.js.map +1 -1
- package/dist/utils/timeParsers/__test__/formatDuration.test.js +6 -6
- package/dist/utils/timeParsers/__test__/formatDuration.test.js.map +1 -1
- package/dist/utils/timeParsers/__test__/protobuf.test.js +10 -10
- package/dist/utils/timeParsers/__test__/protobuf.test.js.map +1 -1
- package/package.json +5 -4
- package/dist/containers/Tablets/index.d.ts +0 -1
- package/dist/containers/Tablets/index.js +0 -2
- package/dist/containers/Tablets/index.js.map +0 -1
@@ -1,59 +1,13 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
const explainVersions = {
|
4
|
-
v2: '0.2',
|
5
|
-
};
|
6
|
-
const supportedExplainQueryVersions = Object.values(explainVersions);
|
1
|
+
import { parseQueryAPIResponse } from '../../../utils/query';
|
2
|
+
import { preparePlanData } from './preparePlanData';
|
7
3
|
export function prepareQueryData(response) {
|
8
|
-
var _a, _b, _c;
|
9
4
|
const result = parseQueryAPIResponse(response);
|
10
5
|
const { plan: rawPlan, stats } = result;
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
preparedPlan: {
|
18
|
-
pristine: rawPlan,
|
19
|
-
version: meta.version,
|
20
|
-
},
|
21
|
-
};
|
22
|
-
}
|
23
|
-
let links = [];
|
24
|
-
let nodes = [];
|
25
|
-
if (Plan) {
|
26
|
-
const preparedPlan = preparePlan(Plan);
|
27
|
-
links = preparedPlan.links;
|
28
|
-
nodes = preparedPlan.nodes;
|
29
|
-
}
|
30
|
-
let preparedSimplifiedPlan;
|
31
|
-
if (SimplifiedPlan) {
|
32
|
-
preparedSimplifiedPlan = prepareSimplifiedPlan([SimplifiedPlan]);
|
33
|
-
}
|
34
|
-
return {
|
35
|
-
...result,
|
36
|
-
preparedPlan: {
|
37
|
-
links,
|
38
|
-
nodes,
|
39
|
-
tables,
|
40
|
-
version: meta.version,
|
41
|
-
pristine: rawPlan,
|
42
|
-
},
|
43
|
-
simplifiedPlan: { plan: preparedSimplifiedPlan, pristine: SimplifiedPlan },
|
44
|
-
};
|
45
|
-
}
|
46
|
-
const planFromStats = (_c = (_b = (_a = stats === null || stats === void 0 ? void 0 : stats.Executions) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.TxPlansWithStats) === null || _c === void 0 ? void 0 : _c[0];
|
47
|
-
if (planFromStats) {
|
48
|
-
try {
|
49
|
-
const planWithStats = JSON.parse(planFromStats);
|
50
|
-
return {
|
51
|
-
...result,
|
52
|
-
preparedPlan: { ...preparePlan(planWithStats), pristine: planWithStats },
|
53
|
-
};
|
54
|
-
}
|
55
|
-
catch (_d) { }
|
56
|
-
}
|
57
|
-
return result;
|
6
|
+
const { simplifiedPlan, ...planData } = preparePlanData(rawPlan, stats);
|
7
|
+
return {
|
8
|
+
...result,
|
9
|
+
preparedPlan: Object.keys(planData).length > 0 ? planData : undefined,
|
10
|
+
simplifiedPlan,
|
11
|
+
};
|
58
12
|
}
|
59
13
|
//# sourceMappingURL=prepareQueryData.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"prepareQueryData.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/prepareQueryData.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"prepareQueryData.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/prepareQueryData.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,UAAU,gBAAgB,CAC5B,QAAkD;IAElD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,MAAM,CAAC;IAEtC,MAAM,EAAC,cAAc,EAAE,GAAG,QAAQ,EAAC,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtE,OAAO;QACH,GAAG,MAAM;QACT,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACrE,cAAc;KACjB,CAAC;AACN,CAAC"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import type { QueryAction, QueryRequestParams, QuerySettings } from '../../../types/store/query';
|
2
|
+
import type { StreamDataChunk } from '../../../types/store/streaming';
|
2
3
|
import type { QueryResult, QueryState } from './types';
|
3
4
|
declare const _default: import("redux").Reducer<QueryState>;
|
4
5
|
export default _default;
|
@@ -10,7 +11,7 @@ export declare const changeUserInput: import("@reduxjs/toolkit").ActionCreatorWi
|
|
10
11
|
}, "query/saveQueryToHistory">, updateQueryInHistory: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
11
12
|
queryId: string;
|
12
13
|
stats: QueryStats;
|
13
|
-
}, "query/updateQueryInHistory">, goToPreviousQuery: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"query/goToPreviousQuery">, goToNextQuery: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"query/goToNextQuery">, setTenantPath: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "query/setTenantPath">, setQueryHistoryFilter: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "query/setQueryHistoryFilter">;
|
14
|
+
}, "query/updateQueryInHistory">, goToPreviousQuery: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"query/goToPreviousQuery">, goToNextQuery: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"query/goToNextQuery">, setTenantPath: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "query/setTenantPath">, setQueryHistoryFilter: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "query/setQueryHistoryFilter">, addStreamingChunks: import("@reduxjs/toolkit").ActionCreatorWithPayload<StreamDataChunk[], "query/addStreamingChunks">, setStreamQueryResponse: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../../../types/store/streaming").QueryResponseChunk, "query/setStreamQueryResponse">, setStreamSession: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../../../types/store/streaming").SessionChunk, "query/setStreamSession">;
|
14
15
|
export declare const selectQueriesHistoryFilter: import("reselect").Selector<{
|
15
16
|
query: QueryState;
|
16
17
|
}, string, []> & {
|
@@ -47,5 +48,6 @@ interface QueryStats {
|
|
47
48
|
endTime?: string | number;
|
48
49
|
}
|
49
50
|
export declare const queryApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, {
|
51
|
+
useStreamQuery: import("@reduxjs/toolkit/query").MutationDefinition<SendQueryParams, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData", null, "api">;
|
50
52
|
useSendQuery: import("@reduxjs/toolkit/query").MutationDefinition<SendQueryParams, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData", null, "api">;
|
51
53
|
}, "api", "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
@@ -6,6 +6,7 @@ import { isQueryErrorResponse } from '../../../utils/query';
|
|
6
6
|
import { isNumeric } from '../../../utils/utils';
|
7
7
|
import { api } from '../api';
|
8
8
|
import { prepareQueryData } from './prepareQueryData';
|
9
|
+
import { addStreamingChunks as addStreamingChunksReducer, setStreamQueryResponse as setStreamQueryResponseReducer, setStreamSession as setStreamSessionReducer, } from './streamingReducers';
|
9
10
|
import { getActionAndSyntaxFromQueryMode, getQueryInHistory } from './utils';
|
10
11
|
const MAXIMUM_QUERIES_IN_HISTORY = 20;
|
11
12
|
const queriesHistoryInitial = settingsManager.readUserSettingsValue(QUERIES_HISTORY_KEY, []);
|
@@ -87,6 +88,9 @@ const slice = createSlice({
|
|
87
88
|
setQueryHistoryFilter: (state, action) => {
|
88
89
|
state.history.filter = action.payload;
|
89
90
|
},
|
91
|
+
setStreamSession: setStreamSessionReducer,
|
92
|
+
addStreamingChunks: addStreamingChunksReducer,
|
93
|
+
setStreamQueryResponse: setStreamQueryResponseReducer,
|
90
94
|
},
|
91
95
|
selectors: {
|
92
96
|
selectQueriesHistoryFilter: (state) => state.history.filter || '',
|
@@ -105,10 +109,81 @@ const slice = createSlice({
|
|
105
109
|
},
|
106
110
|
});
|
107
111
|
export default slice.reducer;
|
108
|
-
export const { changeUserInput, setQueryResult, saveQueryToHistory, updateQueryInHistory, goToPreviousQuery, goToNextQuery, setTenantPath, setQueryHistoryFilter, } = slice.actions;
|
112
|
+
export const { changeUserInput, setQueryResult, saveQueryToHistory, updateQueryInHistory, goToPreviousQuery, goToNextQuery, setTenantPath, setQueryHistoryFilter, addStreamingChunks, setStreamQueryResponse, setStreamSession, } = slice.actions;
|
109
113
|
export const { selectQueriesHistoryFilter, selectQueriesHistoryCurrentIndex, selectQueriesHistory, selectTenantPath, selectResult, selectUserInput, } = slice.selectors;
|
114
|
+
const DEFAULT_STREAM_CHUNK_SIZE = 1000;
|
115
|
+
const DEFAULT_CONCURRENT_RESULTS = false;
|
110
116
|
export const queryApi = api.injectEndpoints({
|
111
117
|
endpoints: (build) => ({
|
118
|
+
useStreamQuery: build.mutation({
|
119
|
+
queryFn: async ({ query, database, querySettings = {}, enableTracingLevel, queryId }, { signal, dispatch, getState }) => {
|
120
|
+
dispatch(setQueryResult({ type: 'execute', queryId, isLoading: true }));
|
121
|
+
const { action, syntax } = getActionAndSyntaxFromQueryMode('execute', querySettings === null || querySettings === void 0 ? void 0 : querySettings.queryMode);
|
122
|
+
try {
|
123
|
+
let streamDataChunkBatch = [];
|
124
|
+
let batchTimeout = null;
|
125
|
+
const flushBatch = () => {
|
126
|
+
if (streamDataChunkBatch.length > 0) {
|
127
|
+
dispatch(addStreamingChunks(streamDataChunkBatch));
|
128
|
+
streamDataChunkBatch = [];
|
129
|
+
}
|
130
|
+
batchTimeout = null;
|
131
|
+
};
|
132
|
+
await window.api.streaming.streamQuery({
|
133
|
+
query,
|
134
|
+
database,
|
135
|
+
action,
|
136
|
+
syntax,
|
137
|
+
stats: querySettings.statisticsMode,
|
138
|
+
tracingLevel: querySettings.tracingLevel && enableTracingLevel
|
139
|
+
? TracingLevelNumber[querySettings.tracingLevel]
|
140
|
+
: undefined,
|
141
|
+
limit_rows: isNumeric(querySettings.limitRows)
|
142
|
+
? Number(querySettings.limitRows)
|
143
|
+
: undefined,
|
144
|
+
transaction_mode: querySettings.transactionMode === 'implicit'
|
145
|
+
? undefined
|
146
|
+
: querySettings.transactionMode,
|
147
|
+
timeout: isNumeric(querySettings.timeout)
|
148
|
+
? Number(querySettings.timeout) * 1000
|
149
|
+
: undefined,
|
150
|
+
output_chunk_max_size: DEFAULT_STREAM_CHUNK_SIZE,
|
151
|
+
concurrent_results: DEFAULT_CONCURRENT_RESULTS || undefined,
|
152
|
+
}, {
|
153
|
+
signal,
|
154
|
+
onQueryResponseChunk: (chunk) => {
|
155
|
+
dispatch(setStreamQueryResponse(chunk));
|
156
|
+
},
|
157
|
+
onSessionChunk: (chunk) => {
|
158
|
+
dispatch(setStreamSession(chunk));
|
159
|
+
},
|
160
|
+
onStreamDataChunk: (chunk) => {
|
161
|
+
streamDataChunkBatch.push(chunk);
|
162
|
+
if (!batchTimeout) {
|
163
|
+
batchTimeout = window.requestAnimationFrame(flushBatch);
|
164
|
+
}
|
165
|
+
},
|
166
|
+
});
|
167
|
+
// Flush any remaining chunks
|
168
|
+
if (batchTimeout) {
|
169
|
+
window.cancelAnimationFrame(batchTimeout);
|
170
|
+
flushBatch();
|
171
|
+
}
|
172
|
+
return { data: null };
|
173
|
+
}
|
174
|
+
catch (error) {
|
175
|
+
const state = getState();
|
176
|
+
dispatch(setQueryResult({
|
177
|
+
...state.query.result,
|
178
|
+
type: 'execute',
|
179
|
+
error,
|
180
|
+
isLoading: false,
|
181
|
+
queryId,
|
182
|
+
}));
|
183
|
+
return { error };
|
184
|
+
}
|
185
|
+
},
|
186
|
+
}),
|
112
187
|
useSendQuery: build.mutation({
|
113
188
|
queryFn: async ({ actionType = 'execute', query, database, querySettings = {}, enableTracingLevel, queryId, }, { signal, dispatch }) => {
|
114
189
|
var _a;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/query.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { PayloadAction } from '@reduxjs/toolkit';
|
2
|
+
import type { QueryResponseChunk, SessionChunk, StreamDataChunk } from '../../../types/store/streaming';
|
3
|
+
import type { QueryState } from './types';
|
4
|
+
export declare const setStreamSession: (state: QueryState, action: PayloadAction<SessionChunk>) => void;
|
5
|
+
export declare const setStreamQueryResponse: (state: QueryState, action: PayloadAction<QueryResponseChunk>) => void;
|
6
|
+
export declare const addStreamingChunks: (state: QueryState, action: PayloadAction<StreamDataChunk[]>) => void;
|
@@ -0,0 +1,118 @@
|
|
1
|
+
import { parseResult } from '../../../utils/query';
|
2
|
+
import { preparePlanData } from './preparePlanData';
|
3
|
+
import { prepareQueryData } from './prepareQueryData';
|
4
|
+
export const setStreamSession = (state, action) => {
|
5
|
+
if (!state.result) {
|
6
|
+
return;
|
7
|
+
}
|
8
|
+
if (!state.result.data) {
|
9
|
+
state.result.data = prepareQueryData(null);
|
10
|
+
}
|
11
|
+
const chunk = action.payload;
|
12
|
+
state.result.isLoading = true;
|
13
|
+
state.result.queryId = chunk.meta.query_id;
|
14
|
+
state.result.data.traceId = chunk.meta.trace_id;
|
15
|
+
};
|
16
|
+
export const setStreamQueryResponse = (state, action) => {
|
17
|
+
if (!state.result) {
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
if (!state.result.data) {
|
21
|
+
state.result.data = prepareQueryData(null);
|
22
|
+
}
|
23
|
+
state.result.isLoading = false;
|
24
|
+
const chunk = action.payload;
|
25
|
+
if ('error' in chunk) {
|
26
|
+
state.result.error = chunk;
|
27
|
+
}
|
28
|
+
else if ('plan' in chunk) {
|
29
|
+
if (!state.result.data) {
|
30
|
+
state.result.data = prepareQueryData(null);
|
31
|
+
}
|
32
|
+
const { plan: rawPlan, stats } = chunk;
|
33
|
+
const { simplifiedPlan, ...planData } = preparePlanData(rawPlan, stats);
|
34
|
+
state.result.data.preparedPlan = Object.keys(planData).length > 0 ? planData : undefined;
|
35
|
+
state.result.data.simplifiedPlan = simplifiedPlan;
|
36
|
+
state.result.data.plan = chunk.plan;
|
37
|
+
state.result.data.stats = chunk.stats;
|
38
|
+
}
|
39
|
+
};
|
40
|
+
const updateStreamMetrics = (metrics, totalNewRows) => {
|
41
|
+
const currentTime = Date.now();
|
42
|
+
const WINDOW_SIZE = 5000; // 5 seconds in milliseconds
|
43
|
+
metrics.recentChunks.push({ timestamp: currentTime, rowCount: totalNewRows });
|
44
|
+
metrics.recentChunks = metrics.recentChunks.filter((chunk) => currentTime - chunk.timestamp <= WINDOW_SIZE);
|
45
|
+
if (metrics.recentChunks.length > 0) {
|
46
|
+
const oldestChunkTime = metrics.recentChunks[0].timestamp;
|
47
|
+
const timeWindow = (currentTime - oldestChunkTime) / 1000;
|
48
|
+
const totalRows = metrics.recentChunks.reduce((sum, chunk) => sum + chunk.rowCount, 0);
|
49
|
+
metrics.rowsPerSecond = timeWindow > 0 ? totalRows / timeWindow : 0;
|
50
|
+
}
|
51
|
+
metrics.lastUpdateTime = currentTime;
|
52
|
+
};
|
53
|
+
const getEmptyResultSet = () => {
|
54
|
+
return {
|
55
|
+
columns: [],
|
56
|
+
result: [],
|
57
|
+
truncated: false,
|
58
|
+
streamMetrics: {
|
59
|
+
rowsPerSecond: 0,
|
60
|
+
lastUpdateTime: Date.now(),
|
61
|
+
recentChunks: [],
|
62
|
+
},
|
63
|
+
};
|
64
|
+
};
|
65
|
+
export const addStreamingChunks = (state, action) => {
|
66
|
+
var _a;
|
67
|
+
if (!state.result) {
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
state.result.data = state.result.data || prepareQueryData(null);
|
71
|
+
state.result.data.resultSets = state.result.data.resultSets || [];
|
72
|
+
// Merge chunks by result index
|
73
|
+
const mergedChunks = action.payload.reduce((acc, chunk) => {
|
74
|
+
var _a;
|
75
|
+
const resultIndex = chunk.meta.result_index;
|
76
|
+
const currentMergedChunk = acc.get(resultIndex);
|
77
|
+
if (currentMergedChunk) {
|
78
|
+
(_a = currentMergedChunk.result.rows) === null || _a === void 0 ? void 0 : _a.push(...(chunk.result.rows || []));
|
79
|
+
currentMergedChunk.result.truncated =
|
80
|
+
currentMergedChunk.result.truncated || chunk.result.truncated;
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
acc.set(resultIndex, {
|
84
|
+
...chunk,
|
85
|
+
result: {
|
86
|
+
...chunk.result,
|
87
|
+
rows: chunk.result.rows || [],
|
88
|
+
truncated: chunk.result.truncated,
|
89
|
+
},
|
90
|
+
});
|
91
|
+
}
|
92
|
+
return acc;
|
93
|
+
}, new Map());
|
94
|
+
const totalNewRows = action.payload.reduce((sum, chunk) => { var _a; return sum + (((_a = chunk.result.rows) === null || _a === void 0 ? void 0 : _a.length) || 0); }, 0);
|
95
|
+
// Process merged chunks
|
96
|
+
for (const [resultIndex, chunk] of mergedChunks.entries()) {
|
97
|
+
const { columns, rows } = chunk.result;
|
98
|
+
const resultSets = state.result.data.resultSets;
|
99
|
+
if (!resultSets[resultIndex]) {
|
100
|
+
resultSets[resultIndex] = getEmptyResultSet();
|
101
|
+
}
|
102
|
+
const resultSet = resultSets[resultIndex];
|
103
|
+
if (columns && !((_a = resultSet.columns) === null || _a === void 0 ? void 0 : _a.length)) {
|
104
|
+
resultSet.columns = columns;
|
105
|
+
}
|
106
|
+
const safeRows = rows || [];
|
107
|
+
const formattedRows = parseResult(safeRows, resultSet.columns || []);
|
108
|
+
formattedRows.forEach((row) => {
|
109
|
+
var _a;
|
110
|
+
(_a = resultSet.result) === null || _a === void 0 ? void 0 : _a.push(row);
|
111
|
+
});
|
112
|
+
resultSet.truncated = chunk.result.truncated;
|
113
|
+
if (resultSet.streamMetrics) {
|
114
|
+
updateStreamMetrics(resultSet.streamMetrics, totalNewRows);
|
115
|
+
}
|
116
|
+
}
|
117
|
+
};
|
118
|
+
//# sourceMappingURL=streamingReducers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"streamingReducers.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/streamingReducers.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,11 @@
|
|
1
1
|
import type { QueryAction, QueryMode, QuerySyntax } from '../../../types/store/query';
|
2
|
+
import type { QueryResponseChunk, SessionChunk, StreamDataChunk, StreamingChunk } from '../../../types/store/streaming';
|
2
3
|
import type { QueryInHistory } from './types';
|
3
4
|
export declare function getActionAndSyntaxFromQueryMode(baseAction?: QueryAction, queryMode?: QueryMode): {
|
4
5
|
action: "execute" | "explain" | "execute-scan" | "execute-script" | "execute-data" | "execute-query" | "explain-scan" | "explain-script" | "explain-data" | "explain-query";
|
5
6
|
syntax: QuerySyntax;
|
6
7
|
};
|
7
8
|
export declare function getQueryInHistory(rawQuery: string | QueryInHistory): QueryInHistory;
|
9
|
+
export declare function isSessionChunk(content: StreamingChunk): content is SessionChunk;
|
10
|
+
export declare function isStreamDataChunk(content: StreamingChunk): content is StreamDataChunk;
|
11
|
+
export declare function isQueryResponseChunk(content: StreamingChunk): content is QueryResponseChunk;
|
@@ -18,4 +18,16 @@ export function getQueryInHistory(rawQuery) {
|
|
18
18
|
}
|
19
19
|
return rawQuery;
|
20
20
|
}
|
21
|
+
export function isSessionChunk(content) {
|
22
|
+
var _a;
|
23
|
+
return ((_a = content === null || content === void 0 ? void 0 : content.meta) === null || _a === void 0 ? void 0 : _a.event) === 'SessionCreated';
|
24
|
+
}
|
25
|
+
export function isStreamDataChunk(content) {
|
26
|
+
var _a;
|
27
|
+
return ((_a = content === null || content === void 0 ? void 0 : content.meta) === null || _a === void 0 ? void 0 : _a.event) === 'StreamData';
|
28
|
+
}
|
29
|
+
export function isQueryResponseChunk(content) {
|
30
|
+
var _a;
|
31
|
+
return ((_a = content === null || content === void 0 ? void 0 : content.meta) === null || _a === void 0 ? void 0 : _a.event) === 'QueryResponse';
|
32
|
+
}
|
21
33
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/store/reducers/query/utils.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,+BAA+B,CAC3C,aAA0B,SAAS,EACnC,YAAuB,OAAO;IAE9B,IAAI,MAAM,GAAY,UAAU,CAAC;IACjC,IAAI,MAAM,GAAgB,QAAQ,CAAC;IAEnC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,UAAU,QAAQ,CAAC;QAC/B,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAiC;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACH,SAAS,EAAE,QAAQ;SACtB,CAAC;IACN,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAuB;;IAClD,OAAO,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,KAAK,MAAK,gBAAgB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAuB;;IACrD,OAAO,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,KAAK,MAAK,YAAY,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAuB;;IACxD,OAAO,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,KAAK,MAAK,eAAe,CAAC;AACpD,CAAC"}
|
package/dist/styles/themes.scss
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
@use './themes/light-hc';
|
3
3
|
@use './themes/dark';
|
4
4
|
@use './themes/dark-hc';
|
5
|
-
@use '~@gravity-ui/unipika/styles/unipika.scss';
|
6
5
|
|
7
6
|
// Override @gravity-ui/uikit color palette with our own colors
|
8
7
|
|
@@ -55,7 +54,6 @@
|
|
55
54
|
--g-color-text-link: var(--g-color-private-blue-550-solid);
|
56
55
|
--g-color-text-link-hover: var(--g-color-private-blue-700-solid);
|
57
56
|
@include dark.colors-private-dark;
|
58
|
-
@include unipika.unipika-dark;
|
59
57
|
}
|
60
58
|
|
61
59
|
&_theme_dark-hc {
|
@@ -71,6 +69,5 @@
|
|
71
69
|
--g-color-text-link: var(--g-color-private-blue-650-solid);
|
72
70
|
--g-color-text-link-hover: var(--g-color-private-blue-800-solid);
|
73
71
|
@include dark-hc.colors-private-dark-hc;
|
74
|
-
@include unipika.unipika-dark;
|
75
72
|
}
|
76
73
|
}
|
package/dist/styles/unipika.scss
CHANGED
@@ -18,7 +18,7 @@ export interface AdditionalTenantsProps {
|
|
18
18
|
getMonitoringLink?: (name?: string, type?: ETenantType) => string | null;
|
19
19
|
}
|
20
20
|
export type NodeAddress = Pick<TSystemStateInfo, 'Host' | 'Endpoints' | 'NodeId'>;
|
21
|
-
export type GetNodeRefFunc = (node?: NodeAddress) => string |
|
21
|
+
export type GetNodeRefFunc = (node?: NodeAddress) => string | undefined;
|
22
22
|
export interface AdditionalNodesProps extends Record<string, unknown> {
|
23
23
|
getNodeRef?: GetNodeRefFunc;
|
24
24
|
}
|
@@ -3,5 +3,9 @@
|
|
3
3
|
*/
|
4
4
|
export interface CapabilitiesResponse {
|
5
5
|
Capabilities: Record<Partial<Capability>, number>;
|
6
|
+
Settings?: {
|
7
|
+
Security?: Record<Partial<SecuritySetting>, boolean>;
|
8
|
+
};
|
6
9
|
}
|
7
10
|
export type Capability = '/pdisk/info' | '/scheme/directory' | '/storage/groups' | '/viewer/query' | '/viewer/feature_flags' | '/viewer/cluster' | '/viewer/nodes';
|
11
|
+
export type SecuritySetting = 'UseLoginProvider' | 'DomainLoginOnly';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { StatisticsMode } from '../store/query';
|
1
|
+
import type { QuerySyntax, StatisticsMode, TransactionMode } from '../store/query';
|
2
2
|
interface Position {
|
3
3
|
row?: number;
|
4
4
|
column?: number;
|
@@ -240,6 +240,22 @@ export type GenericExecuteResponse<Action extends ExecuteActions> = Action exten
|
|
240
240
|
export type CancelResponse = {
|
241
241
|
stats?: TKqpStatsQuery;
|
242
242
|
};
|
243
|
+
export interface SendQueryParams<Action extends Actions> {
|
244
|
+
query?: string;
|
245
|
+
database?: string;
|
246
|
+
action?: Action;
|
247
|
+
syntax?: QuerySyntax;
|
248
|
+
stats?: Stats;
|
249
|
+
tracingLevel?: TracingLevel;
|
250
|
+
transaction_mode?: TransactionMode;
|
251
|
+
timeout?: Timeout;
|
252
|
+
query_id?: string;
|
253
|
+
limit_rows?: number;
|
254
|
+
}
|
255
|
+
export interface StreamQueryParams<Action extends Actions> extends SendQueryParams<Action> {
|
256
|
+
output_chunk_max_size?: number;
|
257
|
+
concurrent_results?: boolean;
|
258
|
+
}
|
243
259
|
export type QueryAPIResponseByAction<Action extends Actions> = Action extends ExplainActions ? GenericExplainResponse<Action> : Action extends ExecuteActions ? GenericExecuteResponse<Action> : Action extends CancelActions ? CancelResponse : never;
|
244
260
|
type QueryAPIResponseMeta = {
|
245
261
|
_meta?: {
|
@@ -3,10 +3,19 @@ import type { QUERY_ACTIONS, QUERY_MODES, QUERY_SYNTAX, STATISTICS_MODES, TRACIN
|
|
3
3
|
import type { IResponseError, NetworkError } from '../api/error';
|
4
4
|
import type { ColumnType, KeyValueRow, ErrorResponse as QueryErrorResponseData, QueryPlan, ScriptPlan, TKqpStatsQuery } from '../api/query';
|
5
5
|
import type { ValueOf } from '../common';
|
6
|
+
export interface StreamMetrics {
|
7
|
+
rowsPerSecond: number;
|
8
|
+
lastUpdateTime: number;
|
9
|
+
recentChunks: Array<{
|
10
|
+
timestamp: number;
|
11
|
+
rowCount: number;
|
12
|
+
}>;
|
13
|
+
}
|
6
14
|
export interface ParsedResultSet {
|
7
15
|
columns?: ColumnType[];
|
8
16
|
result?: KeyValueRow[];
|
9
17
|
truncated?: boolean;
|
18
|
+
streamMetrics?: StreamMetrics;
|
10
19
|
}
|
11
20
|
export interface IQueryResult {
|
12
21
|
resultSets?: ParsedResultSet[];
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import type { ArrayRow, ColumnType, ErrorResponse, QueryPlan, ScriptPlan, TKqpStatsQuery } from '../api/query';
|
2
|
+
export interface SessionChunk {
|
3
|
+
meta: {
|
4
|
+
event: 'SessionCreated';
|
5
|
+
node_id: number;
|
6
|
+
query_id: string;
|
7
|
+
session_id: string;
|
8
|
+
trace_id?: string;
|
9
|
+
};
|
10
|
+
}
|
11
|
+
export interface StreamDataChunk {
|
12
|
+
meta: {
|
13
|
+
event: 'StreamData';
|
14
|
+
seq_no: number;
|
15
|
+
result_index: number;
|
16
|
+
};
|
17
|
+
result: {
|
18
|
+
columns?: ColumnType[];
|
19
|
+
rows: ArrayRow[] | null;
|
20
|
+
truncated?: boolean;
|
21
|
+
};
|
22
|
+
}
|
23
|
+
export interface SuccessQueryResponseData {
|
24
|
+
stats?: TKqpStatsQuery;
|
25
|
+
plan?: ScriptPlan | QueryPlan;
|
26
|
+
ast?: string;
|
27
|
+
}
|
28
|
+
export type ErrorQueryResponseData = ErrorResponse;
|
29
|
+
export interface BaseQueryResponseChunk {
|
30
|
+
meta: {
|
31
|
+
event: 'QueryResponse';
|
32
|
+
version: string;
|
33
|
+
type: string;
|
34
|
+
};
|
35
|
+
}
|
36
|
+
export type QueryResponseChunk = BaseQueryResponseChunk & (SuccessQueryResponseData | ErrorQueryResponseData);
|
37
|
+
export type StreamingChunk = SessionChunk | StreamDataChunk | QueryResponseChunk;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/types/store/streaming.ts"],"names":[],"mappings":""}
|