Skip to content

Commit 132cbf0

Browse files
dbussinkejortegau
authored andcommitted
evalengine: Fix the min / max calculation for decimals (vitessio#14614)
Signed-off-by: Dirkjan Bussink <[email protected]>
1 parent 10c843e commit 132cbf0

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

go/vt/vtgate/evalengine/api_aggregation.go

+2
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ func (s *aggregationDecimal) Min(value sqltypes.Value) error {
389389
}
390390
if !s.dec.IsInitialized() || dec.Cmp(s.dec) < 0 {
391391
s.dec = dec
392+
s.prec = -dec.Exponent()
392393
}
393394
return nil
394395
}
@@ -403,6 +404,7 @@ func (s *aggregationDecimal) Max(value sqltypes.Value) error {
403404
}
404405
if !s.dec.IsInitialized() || dec.Cmp(s.dec) > 0 {
405406
s.dec = dec
407+
s.prec = -dec.Exponent()
406408
}
407409
return nil
408410
}

go/vt/vtgate/evalengine/api_aggregation_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ func TestMinMax(t *testing.T) {
7272
min: sqltypes.NewVarBinary("a"),
7373
max: sqltypes.NewVarBinary("b"),
7474
},
75+
{
76+
type_: sqltypes.Decimal,
77+
values: []sqltypes.Value{sqltypes.NewDecimal("1.001"), sqltypes.NewDecimal("2.1")},
78+
min: sqltypes.NewDecimal("1.001"),
79+
max: sqltypes.NewDecimal("2.1"),
80+
},
7581
{
7682
// accent insensitive
7783
type_: sqltypes.VarChar,

0 commit comments

Comments
 (0)