fix(local_proxy): discard all in tx (#10864)

## Problem

`discard all` cannot run in a transaction (even if implicit)

## Summary of changes

Split up the query into two, we don't need transaction support.
This commit is contained in:
Conrad Ludgate
2025-02-18 08:54:20 +00:00
committed by GitHub
parent 27241f039c
commit 719ec378cd

View File

@@ -279,9 +279,12 @@ impl ClientInnerCommon<postgres_client::Client> {
local_data.jti += 1;
let token = resign_jwt(&local_data.key, payload, local_data.jti)?;
// discard all cannot run in a transaction. must be executed alone.
self.inner.batch_execute("discard all").await?;
// initiates the auth session
// this is safe from query injections as the jwt format free of any escape characters.
let query = format!("discard all; select auth.jwt_session_init('{token}')");
let query = format!("select auth.jwt_session_init('{token}')");
self.inner.batch_execute(&query).await?;
let pid = self.inner.get_process_id();