feat: add Greenplum 7 compatibility and AI SQL generation
Greenplum 7 (PG12-based) compatibility: - Auto-detect GP via version() string, store DbFlavor per connection - connect returns ConnectResult with version + flavor - Fix pg_total_relation_size to use c.oid (universal, safer on both PG/GP) - Branch is_identity column query for GP (lacks the column) - Branch list_sessions wait_event fields for GP - Exclude gp_toolkit schema in schema listing, completion, lookup, AI context - Smart StatusBar version display: GP shows "GP 7.0.0 (PG 12.4)" - Fix connection list spinner showing on all cards during connect AI SQL generation (Ollama): - Add AI settings, model selection, and generate_sql command - Frontend AI panel with prompt input and SQL output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ import {
|
||||
import type { ConnectionConfig } from "@/types";
|
||||
import { EnvironmentBadge } from "@/components/connections/EnvironmentBadge";
|
||||
import { ENVIRONMENTS } from "@/lib/environment";
|
||||
import { useState } from "react";
|
||||
|
||||
interface Props {
|
||||
open: boolean;
|
||||
@@ -39,8 +40,10 @@ export function ConnectionList({ open, onOpenChange, onEdit, onNew }: Props) {
|
||||
const connectMutation = useConnect();
|
||||
const disconnectMutation = useDisconnect();
|
||||
const { connectedIds, activeConnectionId } = useAppStore();
|
||||
const [connectingId, setConnectingId] = useState<string | null>(null);
|
||||
|
||||
const handleConnect = (conn: ConnectionConfig) => {
|
||||
setConnectingId(conn.id);
|
||||
connectMutation.mutate(conn, {
|
||||
onSuccess: () => {
|
||||
toast.success(`Connected to ${conn.name}`);
|
||||
@@ -49,6 +52,9 @@ export function ConnectionList({ open, onOpenChange, onEdit, onNew }: Props) {
|
||||
onError: (err) => {
|
||||
toast.error("Connection failed", { description: String(err) });
|
||||
},
|
||||
onSettled: () => {
|
||||
setConnectingId(null);
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@@ -169,9 +175,9 @@ export function ConnectionList({ open, onOpenChange, onEdit, onNew }: Props) {
|
||||
variant="ghost"
|
||||
className="h-7 w-7"
|
||||
onClick={() => handleConnect(conn)}
|
||||
disabled={connectMutation.isPending}
|
||||
disabled={connectingId !== null}
|
||||
>
|
||||
{connectMutation.isPending ? (
|
||||
{connectingId === conn.id ? (
|
||||
<Loader2 className="h-3.5 w-3.5 animate-spin" />
|
||||
) : (
|
||||
<Plug className="h-3.5 w-3.5" />
|
||||
|
||||
Reference in New Issue
Block a user