From d653f550e28e3acfe6a17afbdcdfa8b6d36c726b Mon Sep 17 00:00:00 2001 From: jussisaurio Date: Sun, 25 Aug 2024 10:43:52 +0300 Subject: [PATCH] Don't do any I/O if top level operator is Nothing --- core/translate/optimizer.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/translate/optimizer.rs b/core/translate/optimizer.rs index 4cf598cf9..4859e6df8 100644 --- a/core/translate/optimizer.rs +++ b/core/translate/optimizer.rs @@ -16,7 +16,13 @@ pub fn optimize_plan(mut select_plan: Plan) -> Result { &mut select_plan.root_operator, &select_plan.referenced_tables, )?; - eliminate_constants(&mut select_plan.root_operator)?; + let viable_plan = eliminate_constants(&mut select_plan.root_operator)?; + if !viable_plan { + return Ok(Plan { + root_operator: Operator::Nothing, + referenced_tables: vec![], + }); + } use_indexes( &mut select_plan.root_operator, &select_plan.referenced_tables,