pub struct PostgresAdapter { /* private fields */ }Expand description
PostgreSQL database adapter.
The default connection pool is created with
PgPoolOptions::connect_lazy_with, which defers all network I/O
until the first query. Non-default database pools are created on
demand via the moka Cache.
Implementations§
Source§impl PostgresAdapter
impl PostgresAdapter
Sourcepub fn new(config: &DatabaseConfig) -> Self
pub fn new(config: &DatabaseConfig) -> Self
Creates a new PostgreSQL adapter with a lazy connection pool.
Does not establish a database connection. The default pool connects on-demand when the first query is executed.
Source§impl PostgresAdapter
impl PostgresAdapter
Sourcepub fn build_tool_router(&self) -> ToolRouter<Self>
pub fn build_tool_router(&self) -> ToolRouter<Self>
Builds the tool router, excluding write tools in read-only mode.
Source§impl PostgresAdapter
impl PostgresAdapter
Sourcepub fn tool_list_databases_tool_attr() -> Tool
pub fn tool_list_databases_tool_attr() -> Tool
Generated tool metadata function for list_databases
Sourcepub fn tool_list_databases(
&self,
) -> Pin<Box<dyn Future<Output = Result<Json<ListDatabasesResponse>, ErrorData>> + Send + '_>>
pub fn tool_list_databases( &self, ) -> Pin<Box<dyn Future<Output = Result<Json<ListDatabasesResponse>, ErrorData>> + Send + '_>>
List all accessible databases on the connected database server. Call this first to discover available database names.
Sourcepub fn tool_create_database_tool_attr() -> Tool
pub fn tool_create_database_tool_attr() -> Tool
Generated tool metadata function for create_database
Sourcepub fn tool_create_database(
&self,
Parameters: Parameters<CreateDatabaseRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
pub fn tool_create_database( &self, Parameters: Parameters<CreateDatabaseRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
Create a new database.
Sourcepub fn tool_drop_database_tool_attr() -> Tool
pub fn tool_drop_database_tool_attr() -> Tool
Generated tool metadata function for drop_database
Sourcepub fn tool_drop_database(
&self,
Parameters: Parameters<DropDatabaseRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
pub fn tool_drop_database( &self, Parameters: Parameters<DropDatabaseRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
Drop an existing database. Cannot drop the currently connected database.
Sourcepub fn tool_list_tables_tool_attr() -> Tool
pub fn tool_list_tables_tool_attr() -> Tool
Generated tool metadata function for list_tables
Sourcepub fn tool_list_tables(
&self,
Parameters: Parameters<ListTablesRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<ListTablesResponse>, ErrorData>> + Send + '_>>
pub fn tool_list_tables( &self, Parameters: Parameters<ListTablesRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<ListTablesResponse>, ErrorData>> + Send + '_>>
List all tables in a specific database.
Requires database_name from list_databases.
Sourcepub fn tool_get_table_schema_tool_attr() -> Tool
pub fn tool_get_table_schema_tool_attr() -> Tool
Generated tool metadata function for get_table_schema
Sourcepub fn tool_get_table_schema(
&self,
Parameters: Parameters<GetTableSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<TableSchemaResponse>, ErrorData>> + Send + '_>>
pub fn tool_get_table_schema( &self, Parameters: Parameters<GetTableSchemaRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<TableSchemaResponse>, ErrorData>> + Send + '_>>
Get column definitions (type, nullable, key, default) and foreign key
relationships for a table. Requires database_name and table_name.
Sourcepub fn tool_drop_table_tool_attr() -> Tool
pub fn tool_drop_table_tool_attr() -> Tool
Generated tool metadata function for drop_table
Sourcepub fn tool_drop_table(
&self,
Parameters: Parameters<DropTableRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
pub fn tool_drop_table( &self, Parameters: Parameters<DropTableRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
Drop a table from a database. Checks for foreign key dependencies
via the database engine — use cascade to force on PostgreSQL.
Sourcepub fn tool_read_query_tool_attr() -> Tool
pub fn tool_read_query_tool_attr() -> Tool
Generated tool metadata function for read_query
Sourcepub fn tool_read_query(
&self,
Parameters: Parameters<QueryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
pub fn tool_read_query( &self, Parameters: Parameters<QueryRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
Execute a read-only SQL query (SELECT, SHOW, DESCRIBE, USE, EXPLAIN).
Sourcepub fn tool_write_query_tool_attr() -> Tool
pub fn tool_write_query_tool_attr() -> Tool
Generated tool metadata function for write_query
Sourcepub fn tool_write_query(
&self,
Parameters: Parameters<QueryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
pub fn tool_write_query( &self, Parameters: Parameters<QueryRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
Execute a write SQL query (INSERT, UPDATE, DELETE, CREATE, ALTER, DROP).
Sourcepub fn tool_explain_query_tool_attr() -> Tool
pub fn tool_explain_query_tool_attr() -> Tool
Generated tool metadata function for explain_query
Sourcepub fn tool_explain_query(
&self,
Parameters: Parameters<ExplainQueryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
pub fn tool_explain_query( &self, Parameters: Parameters<ExplainQueryRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
Return the execution plan for a SQL query.
Trait Implementations§
Source§impl Clone for PostgresAdapter
impl Clone for PostgresAdapter
Source§fn clone(&self) -> PostgresAdapter
fn clone(&self) -> PostgresAdapter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PostgresAdapter
impl Debug for PostgresAdapter
Source§impl ServerHandler for PostgresAdapter
impl ServerHandler for PostgresAdapter
fn get_info(&self) -> ServerInfo
async fn call_tool( &self, request: CallToolRequestParams, context: RequestContext<RoleServer>, ) -> Result<CallToolResult, ErrorData>
async fn list_tools( &self, _request: Option<PaginatedRequestParams>, _context: RequestContext<RoleServer>, ) -> Result<ListToolsResult, ErrorData>
fn enqueue_task( &self, _request: CallToolRequestParams, _context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CreateTaskResult, ErrorData>> + MaybeSendFuture
fn ping( &self, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn initialize( &self, request: InitializeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<InitializeResult, ErrorData>> + MaybeSendFuture
fn complete( &self, request: CompleteRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CompleteResult, ErrorData>> + MaybeSendFuture
fn set_level( &self, request: SetLevelRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn get_prompt( &self, request: GetPromptRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetPromptResult, ErrorData>> + MaybeSendFuture
fn list_prompts( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListPromptsResult, ErrorData>> + MaybeSendFuture
fn list_resources( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourcesResult, ErrorData>> + MaybeSendFuture
fn list_resource_templates( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourceTemplatesResult, ErrorData>> + MaybeSendFuture
fn read_resource( &self, request: ReadResourceRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ReadResourceResult, ErrorData>> + MaybeSendFuture
fn subscribe( &self, request: SubscribeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn unsubscribe( &self, request: UnsubscribeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn on_custom_request( &self, request: CustomRequest, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CustomResult, ErrorData>> + MaybeSendFuture
fn on_cancelled( &self, notification: CancelledNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_progress( &self, notification: ProgressNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_initialized( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_roots_list_changed( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_custom_notification( &self, notification: CustomNotification, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn list_tasks( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListTasksResult, ErrorData>> + MaybeSendFuture
fn get_task_info( &self, request: GetTaskInfoParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetTaskResult, ErrorData>> + MaybeSendFuture
fn get_task_result( &self, request: GetTaskResultParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetTaskPayloadResult, ErrorData>> + MaybeSendFuture
fn cancel_task( &self, request: CancelTaskParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CancelTaskResult, ErrorData>> + MaybeSendFuture
Auto Trait Implementations§
impl Freeze for PostgresAdapter
impl !RefUnwindSafe for PostgresAdapter
impl Send for PostgresAdapter
impl Sync for PostgresAdapter
impl Unpin for PostgresAdapter
impl UnsafeUnpin for PostgresAdapter
impl !UnwindSafe for PostgresAdapter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
fn handle_request( &self, request: <R as ServiceRole>::PeerReq, context: RequestContext<R>, ) -> Pin<Box<dyn Future<Output = Result<<R as ServiceRole>::Resp, ErrorData>> + Send + '_>>
fn handle_notification( &self, notification: <R as ServiceRole>::PeerNot, context: NotificationContext<R>, ) -> Pin<Box<dyn Future<Output = Result<(), ErrorData>> + Send + '_>>
fn get_info(&self) -> <R as ServiceRole>::Info
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more