From 73b48b14c187638cd35224cd581f26d60ab7dc93 Mon Sep 17 00:00:00 2001 From: Ning Sun Date: Thu, 26 Mar 2026 11:10:39 +0800 Subject: [PATCH] feat: update postgres ParameterDescription size limit (#7861) * feat: update postgres ParameterDescription size limit * chore: don't log io error --- Cargo.lock | 6 +++--- src/query/src/planner.rs | 12 ++++++++++++ src/servers/Cargo.toml | 2 +- src/servers/src/postgres/handler.rs | 7 +++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 32f9aa27d4..2ba96d0801 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7301,7 +7301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -9620,9 +9620,9 @@ dependencies = [ [[package]] name = "pgwire" -version = "0.38.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a798d130b8975a566c2cf6d8955746e1f09a9ee2c3ff2e6020a2c6528c5bd1" +checksum = "3a1bdf05fc8231cc5024572fe056e3ce34eb6b9b755ba7aba110e1c64119cec3" dependencies = [ "async-trait", "base64 0.22.1", diff --git a/src/query/src/planner.rs b/src/query/src/planner.rs index 6b206b9d8d..278058974a 100644 --- a/src/query/src/planner.rs +++ b/src/query/src/planner.rs @@ -857,4 +857,16 @@ mod tests { let type_1 = types.get("$1").unwrap(); assert_eq!(type_1, &Some(DataType::Utf8)); } + + #[tokio::test] + async fn test_get_inferred_parameter_types_insert() { + let plan = parse_sql_to_plan("INSERT INTO test (id, name) VALUES ($1, $2), ($3, $4)").await; + let types = DfLogicalPlanner::get_inferred_parameter_types(&plan).unwrap(); + + assert_eq!(types.len(), 4); + assert_eq!(types.get("$1"), Some(&Some(DataType::Int32))); + assert_eq!(types.get("$2"), Some(&Some(DataType::Utf8))); + assert_eq!(types.get("$3"), Some(&Some(DataType::Int32))); + assert_eq!(types.get("$4"), Some(&Some(DataType::Utf8))); + } } diff --git a/src/servers/Cargo.toml b/src/servers/Cargo.toml index 8b64a256e7..8e84ef77d6 100644 --- a/src/servers/Cargo.toml +++ b/src/servers/Cargo.toml @@ -89,7 +89,7 @@ operator.workspace = true otel-arrow-rust.workspace = true parking_lot.workspace = true pg_interval = { version = "0.5.2", package = "pg_interval_2" } -pgwire = { version = "0.38.1", default-features = false, features = [ +pgwire = { version = "0.38.2", default-features = false, features = [ "server-api-ring", "pg-ext-types", ] } diff --git a/src/servers/src/postgres/handler.rs b/src/servers/src/postgres/handler.rs index daf4bfc646..7e9b75c036 100644 --- a/src/servers/src/postgres/handler.rs +++ b/src/servers/src/postgres/handler.rs @@ -20,7 +20,7 @@ use async_trait::async_trait; use common_query::{Output, OutputData}; use common_recordbatch::RecordBatch; use common_recordbatch::error::Result as RecordBatchResult; -use common_telemetry::{debug, tracing}; +use common_telemetry::{debug, info, tracing}; use datafusion::sql::sqlparser::ast::{CopyOption, CopyTarget, Statement as SqlParserStatement}; use datafusion_common::ParamValues; use datafusion_pg_catalog::sql::PostgresCompatibilityParser; @@ -628,7 +628,10 @@ impl ErrorHandler for PostgresServerHandlerInner { where C: ClientInfo, { - debug!("Postgres interface error {}", error) + match error { + PgWireError::IoError(e) => debug!("Postgres client disconnected: {}", e), + _ => info!("Postgres interface error: {}", error), + } } }