Skip to content

Commit f1bf5b2

Browse files
committed
fix(query): fix overflow merge bug for aggregation
1 parent 59aa8ae commit f1bf5b2

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/query/functions-v2/src/aggregates/adaptors/aggregate_ornull_adaptor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ impl AggregateFunction for AggregateFunctionOrNullAdaptor {
183183

184184
fn merge(&self, place: StateAddr, rhs: StateAddr) -> Result<()> {
185185
self.inner.merge(place, rhs)?;
186-
let flag = self.get_flag(place) + self.get_flag(rhs);
187-
self.set_flag(place, flag);
186+
let flag = self.get_flag(place) > 0 || self.get_flag(rhs) > 0;
187+
self.set_flag(place, u8::from(flag));
188188
Ok(())
189189
}
190190

src/query/functions/src/aggregates/adaptors/aggregate_ornull_adaptor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ impl AggregateFunction for AggregateFunctionOrNullAdaptor {
187187

188188
fn merge(&self, place: StateAddr, rhs: StateAddr) -> Result<()> {
189189
self.inner.merge(place, rhs)?;
190-
let flag = self.get_flag(place) + self.get_flag(rhs);
191-
self.set_flag(place, flag);
190+
let flag = self.get_flag(place) > 0 || self.get_flag(rhs) > 0;
191+
self.set_flag(place, u8::from(flag));
192192
Ok(())
193193
}
194194

0 commit comments

Comments
 (0)