From 9c96e05899fd1dc7fc36124677a9683a4486f2b4 Mon Sep 17 00:00:00 2001 From: dengfuping Date: Thu, 15 Aug 2024 21:56:20 +0800 Subject: [PATCH] fix(connection): prefer_socket=false should work, fix prisma/prisma#24010 --- src/conn/mod.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/conn/mod.rs b/src/conn/mod.rs index 4b860c07..8eeca225 100644 --- a/src/conn/mod.rs +++ b/src/conn/mod.rs @@ -921,8 +921,15 @@ impl Conn { let read_max_allowed_packet = self.opts().max_allowed_packet().is_none(); let read_wait_timeout = self.opts().wait_timeout().is_none(); - let settings: Option = if read_socket || read_max_allowed_packet || read_wait_timeout { - self.query_internal("SELECT @@socket, @@max_allowed_packet, @@wait_timeout") + let query_marks = [read_socket, read_max_allowed_packet, read_wait_timeout]; + let query_variables: Vec<&str> = ["@@socket", "@@max_allowed_packet", "@@wait_timeout"].iter() + .enumerate() + .filter(|&(i, _)| query_marks[i]) + .map(|(_, &x)| x) + .collect(); + + let settings: Option = if query_variables.len() > 0 { + self.query_internal(format!("SELECT {}", query_variables.join(", ")).to_string()) .await? } else { None