MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / execute_query

Function execute_query

src/environmentd/src/http/mcp.rs:1219–1240  ·  view source on GitHub ↗
(
    client: &mut AuthedClient,
    cluster: &str,
    sql_query: &str,
    max_response_size: usize,
)

Source from the content-addressed store, hash-verified

1217}
1218
1219async fn execute_query(
1220 client: &mut AuthedClient,
1221 cluster: &str,
1222 sql_query: &str,
1223 max_response_size: usize,
1224) -> Result<McpResult, McpRequestError> {
1225 debug!(cluster = %cluster, "Executing user query");
1226
1227 validate_readonly_query(sql_query)?;
1228
1229 // Use READ ONLY transaction to prevent modifications
1230 // Combine with SET CLUSTER (prometheus.rs:29-33 pattern)
1231 let combined_query = format!(
1232 "BEGIN READ ONLY; SET CLUSTER = {}; {}\n; COMMIT;",
1233 escaped_string_literal(cluster),
1234 sql_query
1235 );
1236
1237 let rows = execute_sql(client, &combined_query).await?;
1238
1239 format_rows_response(rows, max_response_size)
1240}
1241
1242async fn query_system_catalog(
1243 client: &mut AuthedClient,

Callers 1

handle_tools_callFunction · 0.70

Calls 3

validate_readonly_queryFunction · 0.85
format_rows_responseFunction · 0.85
execute_sqlFunction · 0.70

Tested by

no test coverage detected