feat: add column sort, SQL formatter, table stats, insert dialog, saved queries & sessions monitor
- Column sort by header click in table view (ASC/DESC/none cycle, server-side) - SQL formatter with Format button and Shift+Alt+F keybinding (sql-formatter) - Table size and row count display in schema tree via pg_class - Insert row dialog with column type hints and auto-skip for identity columns - Saved queries (bookmarks) with CRUD backend, sidebar panel, and save dialog - Active sessions monitor (pg_stat_activity) with auto-refresh, cancel & terminate Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,10 +4,13 @@ import type {
|
||||
QueryResult,
|
||||
PaginatedQueryResult,
|
||||
SchemaObject,
|
||||
ColumnDetail,
|
||||
ColumnInfo,
|
||||
ConstraintInfo,
|
||||
IndexInfo,
|
||||
HistoryEntry,
|
||||
SavedQuery,
|
||||
SessionInfo,
|
||||
DatabaseInfo,
|
||||
CreateDatabaseParams,
|
||||
RoleInfo,
|
||||
@@ -79,6 +82,12 @@ export const getTableColumns = (
|
||||
table: string
|
||||
) => invoke<ColumnInfo[]>("get_table_columns", { connectionId, schema, table });
|
||||
|
||||
export const getColumnDetails = (
|
||||
connectionId: string,
|
||||
schema: string,
|
||||
table: string
|
||||
) => invoke<ColumnDetail[]>("get_column_details", { connectionId, schema, table });
|
||||
|
||||
export const getTableConstraints = (
|
||||
connectionId: string,
|
||||
schema: string,
|
||||
@@ -151,6 +160,16 @@ export const getHistory = (params?: {
|
||||
|
||||
export const clearHistory = () => invoke<void>("clear_history");
|
||||
|
||||
// Saved Queries
|
||||
export const listSavedQueries = (params?: { search?: string }) =>
|
||||
invoke<SavedQuery[]>("list_saved_queries", { search: params?.search });
|
||||
|
||||
export const saveQuery = (query: SavedQuery) =>
|
||||
invoke<void>("save_query", { query });
|
||||
|
||||
export const deleteSavedQuery = (id: string) =>
|
||||
invoke<void>("delete_saved_query", { id });
|
||||
|
||||
// Completion schema
|
||||
export const getCompletionSchema = (connectionId: string) =>
|
||||
invoke<Record<string, Record<string, string[]>>>(
|
||||
@@ -201,3 +220,13 @@ export const grantRevoke = (connectionId: string, params: GrantRevokeParams) =>
|
||||
|
||||
export const manageRoleMembership = (connectionId: string, params: RoleMembershipParams) =>
|
||||
invoke<void>("manage_role_membership", { connectionId, params });
|
||||
|
||||
// Sessions
|
||||
export const listSessions = (connectionId: string) =>
|
||||
invoke<SessionInfo[]>("list_sessions", { connectionId });
|
||||
|
||||
export const cancelQuery = (connectionId: string, pid: number) =>
|
||||
invoke<boolean>("cancel_query", { connectionId, pid });
|
||||
|
||||
export const terminateBackend = (connectionId: string, pid: number) =>
|
||||
invoke<boolean>("terminate_backend", { connectionId, pid });
|
||||
|
||||
Reference in New Issue
Block a user