Skip to main content
Glama
common.py6.67 kB
"""Shared TypedDicts, Exceptions, and Imports for tool handlers.""" from typing import Dict, Any, List, Optional, Union from typing_extensions import TypedDict class QueryNotFound(Exception): """Custom exception for when a specific query ID is not found.""" pass class TableNotFound(Exception): """Custom exception for when a specific table is not found.""" pass class ExecuteAdHocQuerySuccessResult(TypedDict): status: str columns: List[Dict[str, Any]] rows: List[Dict[str, Any]] row_count: int class ExecuteAdHocQueryErrorResult(TypedDict): status: str error_message: str error_type: str ExecuteAdHocQueryResult = Union[ ExecuteAdHocQuerySuccessResult, ExecuteAdHocQueryErrorResult ] class ClusterStatus(TypedDict): underrepped_blocks: int class ResourceUtilization(TypedDict): cpu_summary: str memory_summary: str disk_used_pct: float class CurrentActivity(TypedDict): running_queries_count: int longest_running_query_secs: int lock_contention_summary: str class WLMQueueSummary(TypedDict): service_class: int slots: int queued: int executing: int class WLMStatus(TypedDict): queue_summary: List[WLMQueueSummary] recent_queue_wait_summary: str max_commit_wait_secs: int class BasicTableHealth(TypedDict): missing_stats_count: int stale_stats_count: int needs_vacuum_count: int class FullTableDesignHealth(TypedDict, total=False): no_sort_key_count: int compressed_sort_key_count: int no_compression_count: int dist_skew_count: int class FullTableMaintenanceHealth(TypedDict, total=False): vacuum_status_summary: str tombstone_count: int class FullPerformanceIndicators(TypedDict, total=False): copy_issue_summary: str top_alerts: List[Dict[str, Any]] class CheckClusterHealthResult(TypedDict): check_level: str timestamp: str cluster_status: ClusterStatus resource_utilization: ResourceUtilization current_activity: CurrentActivity wlm_status: WLMStatus basic_table_health: BasicTableHealth full_table_design_health: Optional[FullTableDesignHealth] full_table_maintenance_health: Optional[FullTableMaintenanceHealth] full_performance_indicators: Optional[FullPerformanceIndicators] recommendations: List[str] errors: Optional[List[Dict[str, str]]] class QueryPerformanceMetrics(TypedDict): execution_time_secs: Optional[float] queue_time_secs: Optional[float] cpu_time_secs: Optional[float] read_io_mb: Optional[float] spill_mb: Optional[float] rows_processed: Optional[int] class QueryStepSummary(TypedDict): step_label: str duration_secs: float is_disk_based: bool memory_mb: float rows: int class SliceSkewSummary(TypedDict): segment: int slice: int max_rows: int max_cpu_secs: float skew_rows_ratio: float skew_cpu_ratio: float class HistoricalComparison(TypedDict, total=False): average_duration_secs: float runs_analyzed: int performance_trend: str class DiagnoseQueryPerformanceSuccessResult(TypedDict): query_id: int query_text_snippet: str execution_plan_summary: str performance_metrics: QueryPerformanceMetrics step_summary: List[QueryStepSummary] slice_skew_summary: List[SliceSkewSummary] alerts: List[Dict[str, Any]] historical_comparison: Optional[HistoricalComparison] potential_issues: List[str] recommendations: List[str] errors: Optional[List[Dict[str, str]]] class DiagnoseQueryPerformanceErrorResult(TypedDict): status: str error_message: str error_type: str DiagnoseQueryPerformanceResult = Union[ DiagnoseQueryPerformanceSuccessResult, DiagnoseQueryPerformanceErrorResult ] class TableDesign(TypedDict): diststyle: Optional[str] distkey: Optional[str] sortkeys: List[str] has_pk: bool has_fk: bool max_varchar_size: Optional[int] encoding_summary: Dict[str, int] class TableStorage(TypedDict): size_mb: Optional[float] row_count: Optional[int] dist_skew_ratio: Optional[float] block_skew_ratio: Optional[float] pct_slices_populated: Optional[float] class TableHealth(TypedDict): stats_off_pct: Optional[float] unsorted_pct: Optional[float] last_vacuum_time: Optional[str] class TableUsage(TypedDict): scan_frequency: Optional[str] last_scan_time: Optional[str] scan_details_summary: Optional[str] recent_alert_count: int class InspectTableSuccessResult(TypedDict): schema_name: str table_name: str table_id: int design: TableDesign storage: TableStorage health_and_maintenance: TableHealth usage_and_activity: TableUsage recommendations: List[str] errors: Optional[List[Dict[str, str]]] class InspectTableErrorResult(TypedDict): status: str error_message: str error_type: str InspectTableResult = Union[InspectTableSuccessResult, InspectTableErrorResult] class ContentionDetail(TypedDict): type: str blocking_pid: Optional[int] waiting_pid: Optional[int] locked_object_name: Optional[str] lock_mode: Optional[str] duration_secs: float waiting_pids_list: List[int] class DiagnoseLocksResult(TypedDict): contention_details: List[ContentionDetail] summary: str class ResourceTrends(TypedDict): cpu_peak_pct: Optional[float] spill_peak_mb: Optional[float] daily_query_counts: Dict[str, int] class WLMPerformance(TypedDict): avg_queue_time_secs: Optional[float] concurrency_apex_current: Optional[int] concurrency_apex_historical: Optional[int] class TopQuerySummary(TypedDict): query_id: int query_text_snippet: str total_execution_time_secs: float avg_execution_time_secs: float run_count: int total_cpu_secs: float total_spill_mb: float class WorkloadCharacteristics(TypedDict): avg_queueing_queries: Optional[float] pct_disk_based_queries: Optional[float] slow_copy_summary: Optional[str] class MonitorWorkloadResult(TypedDict): time_window_days: int resource_trends: ResourceTrends wlm_performance: WLMPerformance top_consuming_queries: List[TopQuerySummary] workload_characteristics: WorkloadCharacteristics potential_bottlenecks: List[str] errors: Optional[List[Dict[str, str]]] class GetTableDefinitionSuccessResult(TypedDict): status: str ddl: str class GetTableDefinitionErrorResult(TypedDict): status: str error_message: str error_type: str GetTableDefinitionResult = Union[ GetTableDefinitionSuccessResult, GetTableDefinitionErrorResult ]

Implementation Reference

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vinodismyname/redshift-utils-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server