Cache subquery result
(
&self,
subquery_ast: &str,
outer_variables: Vec<(String, crate::storage::Value)>,
subquery_type: SubqueryType,
result: SubqueryResult,
execution_time:
| 376 | |
| 377 | /// Cache subquery result |
| 378 | pub fn cache_subquery_result( |
| 379 | &self, |
| 380 | subquery_ast: &str, |
| 381 | outer_variables: Vec<(String, crate::storage::Value)>, |
| 382 | subquery_type: SubqueryType, |
| 383 | result: SubqueryResult, |
| 384 | execution_time: Duration, |
| 385 | complexity_score: f64, |
| 386 | ) { |
| 387 | if !self.config.enabled { |
| 388 | return; |
| 389 | } |
| 390 | |
| 391 | let graph_version = *self.graph_version.read().unwrap(); |
| 392 | let schema_version = *self.schema_version.read().unwrap(); |
| 393 | let key = create_subquery_cache_key( |
| 394 | subquery_ast, |
| 395 | outer_variables, |
| 396 | graph_version, |
| 397 | schema_version, |
| 398 | subquery_type, |
| 399 | ); |
| 400 | |
| 401 | self.subquery_cache |
| 402 | .insert(key, result, execution_time, complexity_score); |
| 403 | self.update_global_stats(); |
| 404 | } |
| 405 | |
| 406 | /// Find cached boolean results for EXISTS/NOT EXISTS optimization |
| 407 | pub fn find_boolean_subquery_matches( |
nothing calls this directly
no test coverage detected