import { Loader2 } from 'lucide-react' import { useState } from 'react' import { Tooltip, TooltipContent, TooltipTrigger } from 'ui' import Results from './Results' import { ExplainVisualizer } from '@/components/interfaces/ExplainVisualizer/ExplainVisualizer' import { ExplainHeader } from '@/components/interfaces/ExplainVisualizer/ExplainVisualizer.Header' import { isExplainQuery, isTextFormatExplain, } from '@/components/interfaces/ExplainVisualizer/ExplainVisualizer.utils' import CopyButton from '@/components/ui/CopyButton' import { useSqlEditorV2StateSnapshot } from '@/state/sql-editor-v2' export type UtilityTabExplainProps = { id: string isExecuting?: boolean } export function UtilityTabExplain({ id, isExecuting }: UtilityTabExplainProps) { const snapV2 = useSqlEditorV2StateSnapshot() const explainResult = snapV2.explainResults[id] const [mode, setMode] = useState<'visual' | 'raw'>('visual') if (isExecuting) { return (
Running EXPLAIN ANALYZE...
{x}
))
) : (
Error: {explainResult.error?.message}
)}No execution plan available. The query will be analyzed when you switch to this tab.
Unable to parse explain results. Please try running the query again.