feat: update postgres ParameterDescription size limit (#7861)

* feat: update postgres ParameterDescription size limit

* chore: don't log io error
This commit is contained in:
Ning Sun
2026-03-26 11:10:39 +08:00
committed by GitHub
parent 59dd418629
commit 73b48b14c1
4 changed files with 21 additions and 6 deletions

6
Cargo.lock generated
View File

@@ -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",

View File

@@ -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)));
}
}

View File

@@ -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",
] }

View File

@@ -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),
}
}
}