From c2ae0979beec42046f9a1ca60c51ba4c8ef5e0e7 Mon Sep 17 00:00:00 2001 From: JSR Date: Sat, 21 Mar 2026 11:09:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DMCP=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E5=88=97=E8=A1=A8limit=E4=B8=BA=E7=A9=BA=E5=AF=BC=E8=87=B4Post?= =?UTF-8?q?greSQL=E6=BA=A2=E5=87=BA=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/commands/mcp.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src-tauri/src/commands/mcp.rs b/src-tauri/src/commands/mcp.rs index 0fe5cba..b5d7ff3 100644 --- a/src-tauri/src/commands/mcp.rs +++ b/src-tauri/src/commands/mcp.rs @@ -512,14 +512,14 @@ async fn mcp_list_students( } .ok_or_else(|| "Database not connected".to_string())?; - let limit = args.limit.unwrap_or(u64::MAX); + let mut query = students::Entity::find().order_by_asc(students::Column::Name); + if let Some(limit) = args.limit { + // 防止极大值在 PostgreSQL 绑定参数时溢出导致 panic。 + let safe_limit = limit.min(i64::MAX as u64); + query = query.limit(safe_limit); + } - let rows = students::Entity::find() - .order_by_asc(students::Column::Name) - .limit(limit) - .all(&db_conn) - .await - .map_err(|e| e.to_string())?; + let rows = query.all(&db_conn).await.map_err(|e| e.to_string())?; let students = rows .into_iter()