| 123456789101112131415161718192021 |
- import { useMemo } from 'react'
- import type { QueryPerformanceRow } from '../../QueryPerformance/QueryPerformance.types'
- import type { ClassifiedQuery } from '../QueryInsightsHealth/QueryInsightsHealth.types'
- import { getQueryType } from '../QueryInsightsTable/QueryInsightsTable.utils'
- import { classifyQuery } from './useQueryInsightsIssues.utils'
- export function useQueryInsightsIssues(data: QueryPerformanceRow[]) {
- return useMemo(() => {
- const classified: ClassifiedQuery[] = data.map((row) => {
- const { issueType, hint } = classifyQuery(row)
- return { ...row, issueType, hint, queryType: getQueryType(row.query) }
- })
- const errors = classified.filter((q) => q.issueType === 'error')
- const indexIssues = classified.filter((q) => q.issueType === 'index')
- const slowQueries = classified.filter((q) => q.issueType === 'slow')
- return { classified, errors, indexIssues, slowQueries }
- }, [data])
- }
|