Execute a physical node with specific graph and return result rows Execute a node without graph dependency (for session/system operations)
(
&self,
node: &PhysicalNode,
context: &mut ExecutionContext,
)
| 3420 | /// Execute a physical node with specific graph and return result rows |
| 3421 | /// Execute a node without graph dependency (for session/system operations) |
| 3422 | fn execute_node_without_graph( |
| 3423 | &self, |
| 3424 | node: &PhysicalNode, |
| 3425 | context: &mut ExecutionContext, |
| 3426 | ) -> Result<Vec<Row>, ExecutionError> { |
| 3427 | match node { |
| 3428 | // Graph-independent operations that work with scalar values |
| 3429 | PhysicalNode::GenericFunction { .. } => { |
| 3430 | // Generic functions can work without graph context |
| 3431 | self.execute_generic_function_node(node, context, None) |
| 3432 | } |
| 3433 | PhysicalNode::Project { .. } => { |
| 3434 | // Try to execute projection without graph context |
| 3435 | // Let the execute_project_node method determine if it's valid |
| 3436 | self.execute_project_node(node, context, None) |
| 3437 | } |
| 3438 | PhysicalNode::SingleRow { .. } => { |
| 3439 | // SingleRow produces exactly one empty row, doesn't need graph context |
| 3440 | Ok(vec![Row::new()]) |
| 3441 | } |
| 3442 | // For other operations, return an error |
| 3443 | _ => Err(ExecutionError::RuntimeError( |
| 3444 | "Operation requires graph context but none provided".to_string(), |
| 3445 | )), |
| 3446 | } |
| 3447 | } |
| 3448 | |
| 3449 | fn execute_node_with_graph( |
| 3450 | &self, |
no test coverage detected