Home / Function/ useIndexInvalidation() — supabase Function Reference

useIndexInvalidation() — supabase Function Reference

Architecture documentation for the useIndexInvalidation() function in useIndexInvalidation.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  cb817883_f58c_4bc9_c70d_43d0c59bcba9["useIndexInvalidation()"]
  391df4cc_757e_7be6_9737_66a5ae1ad301["IndexSuggestionIcon()"]
  391df4cc_757e_7be6_9737_66a5ae1ad301 -->|calls| cb817883_f58c_4bc9_c70d_43d0c59bcba9
  d55bb5d2_0fea_f272_6d89_ad97d7b149c7["QueryIndexes()"]
  d55bb5d2_0fea_f272_6d89_ad97d7b149c7 -->|calls| cb817883_f58c_4bc9_c70d_43d0c59bcba9
  9235a6e5_5d53_7ba1_1d8b_b60b10ae9fe0["useIndexAdvisorStatus()"]
  cb817883_f58c_4bc9_c70d_43d0c59bcba9 -->|calls| 9235a6e5_5d53_7ba1_1d8b_b60b10ae9fe0
  style cb817883_f58c_4bc9_c70d_43d0c59bcba9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/QueryPerformance/hooks/useIndexInvalidation.ts lines 21–57

export function useIndexInvalidation() {
  const router = useRouter()
  const queryClient = useQueryClient()
  const { data: project } = useSelectedProjectQuery()
  const { isIndexAdvisorEnabled } = useIndexAdvisorStatus()

  const [{ preset: urlPreset, search: searchQuery, order, sort }] = useQueryStates({
    sort: parseAsString,
    search: parseAsString.withDefault(''),
    order: parseAsString,
    preset: parseAsString.withDefault('unified'),
  })

  const { invalidate: invalidateTableIndexAdvisor } = useTableIndexAdvisor()

  const preset = QUERY_PERFORMANCE_PRESET_MAP[urlPreset as QUERY_PERFORMANCE_REPORT_TYPES]
  const orderBy = !!sort ? ({ column: sort, order } as QueryPerformanceSort) : undefined
  const roles = router?.query?.roles ?? []

  const queryPerformanceQuery = useQueryPerformanceQuery({
    searchQuery,
    orderBy,
    preset,
    roles: typeof roles === 'string' ? [roles] : roles,
    runIndexAdvisor: isIndexAdvisorEnabled,
  })

  return useCallback(() => {
    queryPerformanceQuery.runQuery()
    queryClient.invalidateQueries({
      queryKey: databaseKeys.indexAdvisorFromQuery(project?.ref, ''),
    })
    queryClient.invalidateQueries({ queryKey: databaseIndexesKeys.list(project?.ref) })

    invalidateTableIndexAdvisor()
  }, [queryPerformanceQuery, queryClient, project?.ref, invalidateTableIndexAdvisor])
}

Subdomains

Frequently Asked Questions

What does useIndexInvalidation() do?
useIndexInvalidation() is a function in the supabase codebase.
What does useIndexInvalidation() call?
useIndexInvalidation() calls 1 function(s): useIndexAdvisorStatus.
What calls useIndexInvalidation()?
useIndexInvalidation() is called by 2 function(s): IndexSuggestionIcon, QueryIndexes.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free