Files
supabase/apps/studio/data/database/indexes-query.ts
Alaister Young 8e47d317fa chore: pg-meta functions (#26881)
* start pg-meta functions

* pg meta create function

* pg meta database functions update and delete

* fix ts

* update execute sql error type

* update execute sql error type

* remove duplicate database functions query
2024-06-03 23:21:19 +08:00

53 lines
1.2 KiB
TypeScript

import { UseQueryOptions } from '@tanstack/react-query'
import { ExecuteSqlData, ExecuteSqlError, useExecuteSqlQuery } from '../sql/execute-sql-query'
// [Joshen] Future refactor to move to pg-meta once available
export type DatabaseIndex = {
name: string
schema: string
table: string
definition: string
enabled: boolean
}
export const getIndexesQuery = ({ schema }: { schema: string }) => {
const sql = /* SQL */ `
SELECT schemaname as "schema",
tablename as "table",
indexname as "name",
indexdef as "definition"
FROM pg_indexes
WHERE schemaname = '${schema}';
`.trim()
return sql
}
type getIndexesDefinition = {
schema: string
}
export type IndexesVariables = getIndexesDefinition & {
projectRef?: string
connectionString?: string
}
export type IndexesData = { result: DatabaseIndex[] }
export type IndexesError = ExecuteSqlError
export const useIndexesQuery = <TData extends IndexesData = IndexesData>(
{ schema, projectRef, connectionString }: IndexesVariables,
options: UseQueryOptions<ExecuteSqlData, IndexesError, TData> = {}
) => {
return useExecuteSqlQuery(
{
projectRef,
connectionString,
sql: getIndexesQuery({ schema }),
queryKey: ['indexes', schema],
},
options
)
}