pub async fn execute_query(
engine: StandardEngine,
query: String,
identity: Identity,
params: Params,
timeout: Duration,
) -> ExecuteResult<Vec<Frame>>Expand description
Execute a query on the blocking thread pool with timeout.
This function:
- Spawns the query execution on tokio’s blocking thread pool
- Applies a timeout to prevent stuck queries from hanging indefinitely
- Returns the query results or an appropriate error
§Arguments
engine- The database engine to execute the query onquery- The RQL query stringidentity- The identity context for permission checkingparams- Query parameterstimeout- Maximum time to wait for query completion
§Returns
Ok(Vec<Frame>)- Query results on successErr(ExecuteError::Timeout)- If the query exceeds the timeoutErr(ExecuteError::TaskPanic)- If the blocking task panicsErr(ExecuteError::Engine)- If the engine returns an error
§Example
ⓘ
let result = execute_query(
engine,
"SELECT * FROM users".to_string(),
identity,
Params::None,
Duration::from_secs(30),
).await?;