MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / execute_sql_impl

Method execute_sql_impl

nodedb-client/src/native/client/sql_lifecycle.rs:12–34  ·  view source on GitHub ↗
(
        &self,
        query: &str,
        params: &[Value],
    )

Source from the content-addressed store, hash-verified

10
11impl NativeClient {
12 pub(super) async fn execute_sql_impl(
13 &self,
14 query: &str,
15 params: &[Value],
16 ) -> NodeDbResult<QueryResult> {
17 // Bound parameters travel through `TextFields::sql_params` as a
18 // zerompk-MessagePack `Vec<Value>`. The server-side `handle_sql`
19 // decodes them and inlines each value as a SQL literal before
20 // planning, so `$1`, `$2`, … placeholders resolve to the
21 // caller's values without round-tripping through a brittle
22 // client-side rewrite. Retries once on a connection-level
23 // failure with a fresh pool acquisition, matching `query()`.
24 let mut conn = self.pool.acquire().await?;
25 match conn.execute_sql_with_params(query, params).await {
26 Ok(r) => Ok(r),
27 Err(e) if is_connection_error(&e) => {
28 drop(conn);
29 let mut conn = self.pool.acquire().await?;
30 conn.execute_sql_with_params(query, params).await
31 }
32 Err(e) => Err(e),
33 }
34 }
35}

Callers 1

execute_sqlMethod · 0.45

Calls 3

is_connection_errorFunction · 0.85
acquireMethod · 0.45

Tested by

no test coverage detected