Skip to content

Commit 8ae2a75

Browse files
authored
chore: add param reset test & tag release (#683)
- chore: add `RESET` test for #682 - chore: tag release
1 parent 3a11d36 commit 8ae2a75

File tree

4 files changed

+51
-2
lines changed

4 files changed

+51
-2
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pgdog/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pgdog"
3-
version = "0.1.18"
3+
version = "0.1.19"
44
edition = "2021"
55
description = "Modern PostgreSQL proxy, pooler and load balancer."
66
authors = ["PgDog <hi@pgdog.dev>"]

pgdog/src/backend/server.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2450,4 +2450,38 @@ pub mod test {
24502450
"state should be Error after detecting desync"
24512451
)
24522452
}
2453+
2454+
#[tokio::test]
2455+
async fn test_reset_clears_client_params() {
2456+
let mut server = test_server().await;
2457+
let mut params = Parameters::default();
2458+
params.insert("application_name", "test_reset");
2459+
2460+
// Sync params to server
2461+
let changed = server
2462+
.link_client(&BackendKeyData::new(), &params, None)
2463+
.await
2464+
.unwrap();
2465+
assert_eq!(changed, 1);
2466+
2467+
// Same params should not need re-sync
2468+
let changed = server
2469+
.link_client(&BackendKeyData::new(), &params, None)
2470+
.await
2471+
.unwrap();
2472+
assert_eq!(changed, 0);
2473+
2474+
// Execute RESET ALL which clears client_params
2475+
server.execute("RESET ALL").await.unwrap();
2476+
2477+
// Now link_client should need to re-sync because client_params was cleared
2478+
let changed = server
2479+
.link_client(&BackendKeyData::new(), &params, None)
2480+
.await
2481+
.unwrap();
2482+
assert!(
2483+
changed > 0,
2484+
"expected re-sync after RESET ALL cleared client_params"
2485+
);
2486+
}
24532487
}

pgdog/src/net/parameter.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,4 +679,19 @@ mod test {
679679
fn test_empty_parameter_value() {
680680
assert_eq!(ParameterValue::String("".into()).to_string(), "''");
681681
}
682+
683+
#[test]
684+
fn test_clear_resets_hash() {
685+
let mut params = Parameters::default();
686+
params.insert("application_name", "test_app");
687+
params.insert("TimeZone", "UTC");
688+
689+
// Verify params are not identical to empty (hash differs)
690+
assert!(!params.identical(&Parameters::default()));
691+
692+
params.clear();
693+
694+
// After clear, hash should be reset to match empty Parameters
695+
assert!(params.identical(&Parameters::default()));
696+
}
682697
}

0 commit comments

Comments
 (0)