@@ -3,6 +3,7 @@ import type {SortOrder} from '@gravity-ui/react-data-table';
33import { createSlice } from '@reduxjs/toolkit' ;
44import type { PayloadAction } from '@reduxjs/toolkit' ;
55
6+ import { QUERY_TECHNICAL_MARK } from '../../../utils/constants' ;
67import { prepareOrderByFromTableSort } from '../../../utils/hooks/useTableSort' ;
78import { isQueryErrorResponse , parseQueryAPIResponse } from '../../../utils/query' ;
89import { api } from '../api' ;
@@ -12,8 +13,6 @@ import {getFiltersConditions} from './utils';
1213
1314const initialState : TopQueriesFilters = { } ;
1415
15- const QUERY_TECHNICAL_MARK = '/*UI-QUERY-EXCLUDE*/' ;
16-
1716const slice = createSlice ( {
1817 name : 'executeTopQueries' ,
1918 initialState,
@@ -27,13 +26,13 @@ const slice = createSlice({
2726export const { setTopQueriesFilters} = slice . actions ;
2827export default slice . reducer ;
2928
30- const getQueryText = ( path : string , filters ?: TopQueriesFilters , sortOrder ?: SortOrder [ ] ) => {
31- const filterConditions = getFiltersConditions ( path , filters ) ;
29+ const getQueryText = ( filters ?: TopQueriesFilters , sortOrder ?: SortOrder [ ] ) => {
30+ const filterConditions = getFiltersConditions ( filters ) ;
3231
3332 const orderBy = prepareOrderByFromTableSort ( sortOrder ) ;
3433
35- return `
36- SELECT ${ QUERY_TECHNICAL_MARK }
34+ return `${ QUERY_TECHNICAL_MARK }
35+ SELECT
3736 CPUTime as CPUTimeUs,
3837 QueryText,
3938 IntervalEnd,
@@ -42,13 +41,32 @@ SELECT ${QUERY_TECHNICAL_MARK}
4241 ReadBytes,
4342 UserSID,
4443 Duration
45- FROM \`${ path } / .sys/top_queries_by_cpu_time_one_hour\`
44+ FROM \`.sys/top_queries_by_cpu_time_one_hour\`
4645WHERE ${ filterConditions || 'true' } AND QueryText NOT LIKE '%${ QUERY_TECHNICAL_MARK } %'
4746${ orderBy }
4847LIMIT 100
4948` ;
5049} ;
5150
51+ function getRunningQueriesText ( filters ?: TopQueriesFilters , sortOrder ?: SortOrder [ ] ) {
52+ const filterConditions = filters ?. text
53+ ? `Query ILIKE '%${ filters . text } %' OR UserSID ILIKE '%${ filters . text } %'`
54+ : '' ;
55+
56+ const orderBy = prepareOrderByFromTableSort ( sortOrder ) ;
57+
58+ return `${ QUERY_TECHNICAL_MARK }
59+ SELECT
60+ UserSID,
61+ QueryStartAt,
62+ Query as QueryText,
63+ ApplicationName
64+ FROM \`.sys/query_sessions\`
65+ WHERE ${ filterConditions || 'true' } AND Query NOT LIKE '%${ QUERY_TECHNICAL_MARK } %'
66+ ${ orderBy }
67+ LIMIT 100` ;
68+ }
69+
5270interface TopQueriesRequestParams {
5371 database : string ;
5472 filters ?: TopQueriesFilters ;
@@ -68,7 +86,7 @@ export const topQueriesApi = api.injectEndpoints({
6886 try {
6987 const response = await window . api . viewer . sendQuery (
7088 {
71- query : getQueryText ( database , preparedFilters , sortOrder ) ,
89+ query : getQueryText ( preparedFilters , sortOrder ) ,
7290 database,
7391 action : 'execute-scan' ,
7492 } ,
@@ -102,24 +120,9 @@ export const topQueriesApi = api.injectEndpoints({
102120 getRunningQueries : build . query ( {
103121 queryFn : async ( { database, filters, sortOrder} : TopQueriesRequestParams , { signal} ) => {
104122 try {
105- const filterConditions = filters ?. text
106- ? `Query ILIKE '%${ filters . text } %' OR UserSID ILIKE '%${ filters . text } %'`
107- : '' ;
108-
109- const orderBy = prepareOrderByFromTableSort ( sortOrder ) ;
110-
111- const queryText = `SELECT ${ QUERY_TECHNICAL_MARK }
112- UserSID, QueryStartAt, Query as QueryText, ApplicationName
113- FROM
114- \`.sys/query_sessions\`
115- WHERE
116- ${ filterConditions || 'true' } AND Query NOT LIKE '%${ QUERY_TECHNICAL_MARK } %'
117- ${ orderBy }
118- LIMIT 100` ;
119-
120123 const response = await window . api . viewer . sendQuery (
121124 {
122- query : queryText ,
125+ query : getRunningQueriesText ( filters , sortOrder ) ,
123126 database,
124127 action : 'execute-scan' ,
125128 } ,
0 commit comments