FB-1471: featurebase: added relevant details to error for value out of range (#2092)

* added relevant details to error
This commit is contained in:
souhailanoor 2022-06-02 14:53:10 -05:00 • committed by GitHub
parent a2f910ce35
commit 64a532b416
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 6 deletions

View file

@ -1403,9 +1403,9 @@ func (f *Field) SetValue(tx Tx, columnID uint64, value int64) (changed bool, err
if bsig == nil {
return false, ErrBSIGroupNotFound
} else if value < bsig.Min {
return false, ErrBSIGroupValueTooLow
return false, errors.Wrapf(ErrBSIGroupValueTooLow, "index = %v, field = %v, column ID = %v, value %v is smaller than min allowed %v", f.index, f.name, columnID, value, bsig.Min)
} else if value > bsig.Max {
return false, ErrBSIGroupValueTooHigh
return false, errors.Wrapf(ErrBSIGroupValueTooHigh, "index = %v, field = %v, column ID = %v, value %v is larger than max allowed %v", f.index, f.name, columnID, value, bsig.Max)
}
// Determine base value to store.
@ -1772,9 +1772,9 @@ func (f *Field) importValue(qcx *Qcx, columnIDs []uint64, values []int64, shard
for i := range columnIDs {
columnID, value := columnIDs[i], values[i]
if value > bsig.Max {
return errors.Wrap(ErrBSIGroupValueTooHigh, fmt.Sprintf("value = %v, columnID = %v", value, columnID))
return errors.Wrapf(ErrBSIGroupValueTooHigh, "index = %v, field = %v, column ID = %v, value %v is larger than max allowed %v", f.index, f.name, columnID, value, bsig.Max)
} else if value < bsig.Min {
return errors.Wrap(ErrBSIGroupValueTooLow, fmt.Sprintf("value = %v, columnID = %v", value, columnID))
return errors.Wrapf(ErrBSIGroupValueTooLow, "index = %v, field = %v, column ID = %v, value %v is smaller than min allowed %v", f.index, f.name, columnID, value, bsig.Min)
}
if value > max {
max = value

View file

@ -14,6 +14,7 @@ import (
"github.com/molecula/featurebase/v3/roaring"
"github.com/molecula/featurebase/v3/test"
"github.com/molecula/featurebase/v3/testhook"
"github.com/pkg/errors"
)
// Ensure a field can set & read a bsiGroup value.
@ -117,7 +118,7 @@ func TestField_SetValue(t *testing.T) {
var tx pilosa.Tx
// Set value.
if _, err := f.SetValue(tx, 100, 15); err != pilosa.ErrBSIGroupValueTooLow {
if _, err := f.SetValue(tx, 100, 15); !errors.Is(err, pilosa.ErrBSIGroupValueTooLow) {
t.Fatalf("unexpected error: %s", err)
}
})
@ -134,7 +135,7 @@ func TestField_SetValue(t *testing.T) {
var tx pilosa.Tx
// Set value.
if _, err := f.SetValue(tx, 100, 31); err != pilosa.ErrBSIGroupValueTooHigh {
if _, err := f.SetValue(tx, 100, 31); !errors.Is(err, pilosa.ErrBSIGroupValueTooHigh) {
t.Fatalf("unexpected error: %s", err)
}
})