mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-18 05:50:41 +00:00
fix: Panic in UNION ALL queries (#4796)
* fix/union_all_panic: Improve MetricCollector by incrementing level and fix underflow issue; add tests for UNION ALL queries * chore: remove useless documentation * fix/union_all_panic: Add order by clause to UNION ALL select queries in tests
This commit is contained in:
@@ -329,6 +329,7 @@ impl ExecutionPlanVisitor for MetricCollector {
|
||||
level: self.current_level,
|
||||
metrics: vec![],
|
||||
});
|
||||
self.current_level += 1;
|
||||
return Ok(true);
|
||||
};
|
||||
|
||||
@@ -365,8 +366,7 @@ impl ExecutionPlanVisitor for MetricCollector {
|
||||
}
|
||||
|
||||
fn post_visit(&mut self, _plan: &dyn ExecutionPlan) -> std::result::Result<bool, Self::Error> {
|
||||
// the last minus will underflow
|
||||
self.current_level = self.current_level.wrapping_sub(1);
|
||||
self.current_level -= 1;
|
||||
Ok(true)
|
||||
}
|
||||
}
|
||||
|
||||
10
tests/cases/standalone/common/select/union_all.result
Normal file
10
tests/cases/standalone/common/select/union_all.result
Normal file
@@ -0,0 +1,10 @@
|
||||
SELECT 123 as a, 'h' as b UNION ALL SELECT 456 as a, 'e' as b UNION ALL SELECT 789 as a, 'l' as b order by a;
|
||||
|
||||
+-----+---+
|
||||
| a | b |
|
||||
+-----+---+
|
||||
| 123 | h |
|
||||
| 456 | e |
|
||||
| 789 | l |
|
||||
+-----+---+
|
||||
|
||||
1
tests/cases/standalone/common/select/union_all.sql
Normal file
1
tests/cases/standalone/common/select/union_all.sql
Normal file
@@ -0,0 +1 @@
|
||||
SELECT 123 as a, 'h' as b UNION ALL SELECT 456 as a, 'e' as b UNION ALL SELECT 789 as a, 'l' as b order by a;
|
||||
Reference in New Issue
Block a user