forked from TrueCloudLab/frostfs-node
[#1412] searchSvc: Check container is indexed
For non S3 containers it is expected to use attributes index for some attributes. Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
1efa64ee72
commit
4572fa4874
9 changed files with 41 additions and 16 deletions
|
@ -14,8 +14,9 @@ import (
|
|||
|
||||
// SelectPrm groups the parameters of Select operation.
|
||||
type SelectPrm struct {
|
||||
cnr cid.ID
|
||||
filters objectSDK.SearchFilters
|
||||
cnr cid.ID
|
||||
filters objectSDK.SearchFilters
|
||||
indexedContainer bool
|
||||
}
|
||||
|
||||
// SelectRes groups the resulting values of Select operation.
|
||||
|
@ -24,8 +25,9 @@ type SelectRes struct {
|
|||
}
|
||||
|
||||
// WithContainerID is a Select option to set the container id to search in.
|
||||
func (p *SelectPrm) WithContainerID(cnr cid.ID) {
|
||||
func (p *SelectPrm) WithContainerID(cnr cid.ID, indexedContainer bool) {
|
||||
p.cnr = cnr
|
||||
p.indexedContainer = indexedContainer
|
||||
}
|
||||
|
||||
// WithFilters is a Select option to set the object filters.
|
||||
|
@ -67,7 +69,7 @@ func (e *StorageEngine) _select(ctx context.Context, prm SelectPrm) (SelectRes,
|
|||
var outError error
|
||||
|
||||
var shPrm shard.SelectPrm
|
||||
shPrm.SetContainerID(prm.cnr)
|
||||
shPrm.SetContainerID(prm.cnr, prm.indexedContainer)
|
||||
shPrm.SetFilters(prm.filters)
|
||||
|
||||
e.iterateOverUnsortedShards(func(sh hashedShard) (stop bool) {
|
||||
|
@ -140,9 +142,9 @@ func (e *StorageEngine) list(ctx context.Context, limit uint64) (SelectRes, erro
|
|||
}
|
||||
|
||||
// Select selects objects from local storage using provided filters.
|
||||
func Select(ctx context.Context, storage *StorageEngine, cnr cid.ID, fs objectSDK.SearchFilters) ([]oid.Address, error) {
|
||||
func Select(ctx context.Context, storage *StorageEngine, cnr cid.ID, isIndexedContainer bool, fs objectSDK.SearchFilters) ([]oid.Address, error) {
|
||||
var selectPrm SelectPrm
|
||||
selectPrm.WithContainerID(cnr)
|
||||
selectPrm.WithContainerID(cnr, isIndexedContainer)
|
||||
selectPrm.WithFilters(fs)
|
||||
|
||||
res, err := storage.Select(ctx, selectPrm)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue