radixdb_executor/mutation/
operator.rs1use radixdb_core::Result;
2use radixdb_sql::{
3 CreateOperatorClassStatement, CreateOperatorStatement, CreatePlannerSupportStatement,
4 DropOperatorClassStatement, DropOperatorStatement, DropPlannerSupportStatement, Statement,
5};
6use radixdb_storage::traits::QueryResult;
7
8use crate::context::ExecutionContext;
9use crate::mutation::host::MutationHost;
10
11use super::extension::execute_binding_statement;
12
13#[doc(hidden)]
14pub trait OperatorDdlExecutorExt: MutationHost {
15 fn execute_create_operator(
16 &self,
17 statement: &CreateOperatorStatement,
18 context: &ExecutionContext,
19 ) -> Result<Box<dyn QueryResult>> {
20 execute_binding_statement(
21 self,
22 Statement::CreateOperator(Box::new(statement.clone())),
23 context,
24 )
25 }
26
27 fn execute_drop_operator(
28 &self,
29 statement: &DropOperatorStatement,
30 context: &ExecutionContext,
31 ) -> Result<Box<dyn QueryResult>> {
32 execute_binding_statement(
33 self,
34 Statement::DropOperator(Box::new(statement.clone())),
35 context,
36 )
37 }
38
39 fn execute_create_operator_class(
40 &self,
41 statement: &CreateOperatorClassStatement,
42 context: &ExecutionContext,
43 ) -> Result<Box<dyn QueryResult>> {
44 execute_binding_statement(
45 self,
46 Statement::CreateOperatorClass(Box::new(statement.clone())),
47 context,
48 )
49 }
50
51 fn execute_drop_operator_class(
52 &self,
53 statement: &DropOperatorClassStatement,
54 context: &ExecutionContext,
55 ) -> Result<Box<dyn QueryResult>> {
56 execute_binding_statement(
57 self,
58 Statement::DropOperatorClass(Box::new(statement.clone())),
59 context,
60 )
61 }
62
63 fn execute_create_planner_support(
64 &self,
65 statement: &CreatePlannerSupportStatement,
66 context: &ExecutionContext,
67 ) -> Result<Box<dyn QueryResult>> {
68 execute_binding_statement(
69 self,
70 Statement::CreatePlannerSupport(Box::new(statement.clone())),
71 context,
72 )
73 }
74
75 fn execute_drop_planner_support(
76 &self,
77 statement: &DropPlannerSupportStatement,
78 context: &ExecutionContext,
79 ) -> Result<Box<dyn QueryResult>> {
80 execute_binding_statement(
81 self,
82 Statement::DropPlannerSupport(Box::new(statement.clone())),
83 context,
84 )
85 }
86}
87
88impl<T: MutationHost + ?Sized> OperatorDdlExecutorExt for T {}