forked from TrueCloudLab/frostfs-node
[#199] Ignore invalid search attributes
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
337e2f6a57
commit
8a293c76ed
1 changed files with 8 additions and 2 deletions
|
@ -127,8 +127,6 @@ func (db *DB) selectFastFilter(
|
||||||
) {
|
) {
|
||||||
prefix := cid.String() + "/"
|
prefix := cid.String() + "/"
|
||||||
|
|
||||||
// todo: add splitID
|
|
||||||
|
|
||||||
switch f.Header() {
|
switch f.Header() {
|
||||||
case v2object.FilterHeaderObjectID:
|
case v2object.FilterHeaderObjectID:
|
||||||
db.selectObjectID(tx, f, prefix, to, fNum)
|
db.selectObjectID(tx, f, prefix, to, fNum)
|
||||||
|
@ -154,6 +152,8 @@ func (db *DB) selectFastFilter(
|
||||||
bucketName = storageGroupBucketName(cid)
|
bucketName = storageGroupBucketName(cid)
|
||||||
default:
|
default:
|
||||||
db.log.Debug("unknown object type", zap.String("type", f.Value()))
|
db.log.Debug("unknown object type", zap.String("type", f.Value()))
|
||||||
|
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
selectAllFromBucket(tx, bucketName, prefix, to, fNum)
|
selectAllFromBucket(tx, bucketName, prefix, to, fNum)
|
||||||
|
@ -238,6 +238,8 @@ func (db *DB) selectFromList(
|
||||||
case object.MatchStringEqual:
|
case object.MatchStringEqual:
|
||||||
default:
|
default:
|
||||||
db.log.Debug("unknown operation", zap.Uint32("operation", uint32(f.Operation())))
|
db.log.Debug("unknown operation", zap.Uint32("operation", uint32(f.Operation())))
|
||||||
|
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// warning: it works only for MatchStringEQ, for NotEQ you should iterate over
|
// warning: it works only for MatchStringEQ, for NotEQ you should iterate over
|
||||||
|
@ -267,6 +269,8 @@ func (db *DB) selectObjectID(
|
||||||
case object.MatchStringEqual:
|
case object.MatchStringEqual:
|
||||||
default:
|
default:
|
||||||
db.log.Debug("unknown operation", zap.Uint32("operation", uint32(f.Operation())))
|
db.log.Debug("unknown operation", zap.Uint32("operation", uint32(f.Operation())))
|
||||||
|
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// warning: it is in-place optimization and works only for MatchStringEQ,
|
// warning: it is in-place optimization and works only for MatchStringEQ,
|
||||||
|
@ -320,6 +324,8 @@ func (db *DB) matchSlowFilters(tx *bbolt.Tx, addr *object.Address, f object.Sear
|
||||||
case v2object.FilterHeaderPayloadLength:
|
case v2object.FilterHeaderPayloadLength:
|
||||||
data = make([]byte, 8)
|
data = make([]byte, 8)
|
||||||
binary.LittleEndian.PutUint64(data, obj.PayloadSize())
|
binary.LittleEndian.PutUint64(data, obj.PayloadSize())
|
||||||
|
default:
|
||||||
|
continue // ignore unknown search attributes
|
||||||
}
|
}
|
||||||
|
|
||||||
if !matchFunc(f[i].Header(), data, f[i].Value()) {
|
if !matchFunc(f[i].Header(), data, f[i].Value()) {
|
||||||
|
|
Loading…
Reference in a new issue