From 3b909f63e3c8c614738afa278036cf19199b06b1 Mon Sep 17 00:00:00 2001 From: discord9 <55937128+discord9@users.noreply.github.com> Date: Thu, 11 Sep 2025 05:30:43 +0800 Subject: [PATCH] fix: count(1) instead of count(ts) when >1 inputs (#6952) Signed-off-by: discord9 --- src/query/src/optimizer/count_wildcard.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/query/src/optimizer/count_wildcard.rs b/src/query/src/optimizer/count_wildcard.rs index cdfb057ac0..f5c55978b4 100644 --- a/src/query/src/optimizer/count_wildcard.rs +++ b/src/query/src/optimizer/count_wildcard.rs @@ -88,6 +88,10 @@ impl CountWildcardToTimeIndexRule { // check if the time index is a valid column as for current plan if let Some(col) = &col { let mut is_valid = false; + // if more than one input, we give up and just use `count(1)` + if plan.inputs().len() > 1 { + return None; + } for input in plan.inputs() { if input.schema().has_column(col) { is_valid = true; @@ -171,6 +175,11 @@ impl TreeNodeVisitor<'_> for TimeIndexFinder { } } + if node.inputs().len() > 1 { + // if more than one input, we give up and just use `count(1)` + return Ok(TreeNodeRecursion::Stop); + } + Ok(TreeNodeRecursion::Continue) }