reifydb_engine/procedure/
context.rs1use reifydb_catalog::catalog::Catalog;
5use reifydb_function::registry::Functions;
6use reifydb_runtime::clock::Clock;
7use reifydb_transaction::transaction::Transaction;
8use reifydb_type::{
9 params::Params,
10 value::{frame::frame::Frame, identity::IdentityId},
11};
12
13use crate::{Result, vm::executor::Executor};
14
15pub struct ProcedureContext<'a> {
16 pub identity: IdentityId,
17 pub params: &'a Params,
18 pub catalog: &'a Catalog,
19 pub functions: &'a Functions,
20 pub clock: &'a Clock,
21 pub executor: &'a Executor,
22}
23
24impl ProcedureContext<'_> {
25 pub fn rql(&self, tx: &mut Transaction<'_>, rql: &str, params: Params) -> Result<Vec<Frame>> {
27 self.executor.rql(tx, self.identity, rql, params)
28 }
29}