Merge pull request #173 from gsathya/fix_return_err
Check all return errors
This commit is contained in:
commit
b5a79c8ecc
|
@ -155,13 +155,13 @@ func newIndexUsing(path string, mapping *IndexMapping, kvstore string, kvconfig
|
||||||
return &rv, nil
|
return &rv, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func openIndexUsing(path string, runtimeConfig map[string]interface{}) (*indexImpl, error) {
|
func openIndexUsing(path string, runtimeConfig map[string]interface{}) (rv *indexImpl, err error) {
|
||||||
|
|
||||||
rv := indexImpl{
|
rv = &indexImpl{
|
||||||
path: path,
|
path: path,
|
||||||
stats: &IndexStat{},
|
stats: &IndexStat{},
|
||||||
}
|
}
|
||||||
var err error
|
|
||||||
rv.meta, err = openIndexMeta(path)
|
rv.meta, err = openIndexMeta(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -203,7 +203,12 @@ func openIndexUsing(path string, runtimeConfig map[string]interface{}) (*indexIm
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer indexReader.Close()
|
defer func() {
|
||||||
|
if cerr := indexReader.Close(); cerr != nil && err == nil {
|
||||||
|
err = cerr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
mappingBytes, err := indexReader.GetInternal(mappingInternalKey)
|
mappingBytes, err := indexReader.GetInternal(mappingInternalKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -225,11 +230,11 @@ func openIndexUsing(path string, runtimeConfig map[string]interface{}) (*indexIm
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// note even if the mapping is invalid
|
// note even if the mapping is invalid
|
||||||
// we still return an open usable index
|
// we still return an open usable index
|
||||||
return &rv, err
|
return rv, err
|
||||||
}
|
}
|
||||||
|
|
||||||
rv.m = &im
|
rv.m = &im
|
||||||
return &rv, nil
|
return rv, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Advanced returns implementation internals
|
// Advanced returns implementation internals
|
||||||
|
@ -303,7 +308,7 @@ func (i *indexImpl) Batch(b *Batch) error {
|
||||||
// stored fields for a document in the index. These
|
// stored fields for a document in the index. These
|
||||||
// stored fields are put back into a Document object
|
// stored fields are put back into a Document object
|
||||||
// and returned.
|
// and returned.
|
||||||
func (i *indexImpl) Document(id string) (*document.Document, error) {
|
func (i *indexImpl) Document(id string) (doc *document.Document, err error) {
|
||||||
i.mutex.RLock()
|
i.mutex.RLock()
|
||||||
defer i.mutex.RUnlock()
|
defer i.mutex.RUnlock()
|
||||||
|
|
||||||
|
@ -314,8 +319,17 @@ func (i *indexImpl) Document(id string) (*document.Document, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer indexReader.Close()
|
defer func() {
|
||||||
return indexReader.Document(id)
|
if cerr := indexReader.Close(); err == nil && cerr != nil {
|
||||||
|
err = cerr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
doc, err = indexReader.Document(id)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return doc, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DocCount returns the number of documents in the
|
// DocCount returns the number of documents in the
|
||||||
|
@ -333,7 +347,7 @@ func (i *indexImpl) DocCount() (uint64, error) {
|
||||||
|
|
||||||
// Search executes a search request operation.
|
// Search executes a search request operation.
|
||||||
// Returns a SearchResult object or an error.
|
// Returns a SearchResult object or an error.
|
||||||
func (i *indexImpl) Search(req *SearchRequest) (*SearchResult, error) {
|
func (i *indexImpl) Search(req *SearchRequest) (sr *SearchResult, err error) {
|
||||||
i.mutex.RLock()
|
i.mutex.RLock()
|
||||||
defer i.mutex.RUnlock()
|
defer i.mutex.RUnlock()
|
||||||
|
|
||||||
|
@ -350,13 +364,21 @@ func (i *indexImpl) Search(req *SearchRequest) (*SearchResult, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error opening index reader %v", err)
|
return nil, fmt.Errorf("error opening index reader %v", err)
|
||||||
}
|
}
|
||||||
defer indexReader.Close()
|
defer func() {
|
||||||
|
if cerr := indexReader.Close(); err == nil && cerr != nil {
|
||||||
|
err = cerr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
searcher, err := req.Query.Searcher(indexReader, i.m, req.Explain)
|
searcher, err := req.Query.Searcher(indexReader, i.m, req.Explain)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer searcher.Close()
|
defer func() {
|
||||||
|
if serr := searcher.Close(); err == nil && serr != nil {
|
||||||
|
err = serr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
if req.Facets != nil {
|
if req.Facets != nil {
|
||||||
facetsBuilder := search.NewFacetsBuilder(indexReader)
|
facetsBuilder := search.NewFacetsBuilder(indexReader)
|
||||||
|
@ -482,7 +504,7 @@ func (i *indexImpl) Search(req *SearchRequest) (*SearchResult, error) {
|
||||||
|
|
||||||
// Fields returns the name of all the fields this
|
// Fields returns the name of all the fields this
|
||||||
// Index has operated on.
|
// Index has operated on.
|
||||||
func (i *indexImpl) Fields() ([]string, error) {
|
func (i *indexImpl) Fields() (fields []string, err error) {
|
||||||
i.mutex.RLock()
|
i.mutex.RLock()
|
||||||
defer i.mutex.RUnlock()
|
defer i.mutex.RUnlock()
|
||||||
|
|
||||||
|
@ -494,8 +516,17 @@ func (i *indexImpl) Fields() ([]string, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer indexReader.Close()
|
defer func() {
|
||||||
return indexReader.Fields()
|
if cerr := indexReader.Close(); err == nil && cerr != nil {
|
||||||
|
err = cerr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
fields, err = indexReader.Fields()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return fields, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *indexImpl) FieldDict(field string) (index.FieldDict, error) {
|
func (i *indexImpl) FieldDict(field string) (index.FieldDict, error) {
|
||||||
|
@ -633,7 +664,7 @@ func (i *indexImpl) Stats() *IndexStat {
|
||||||
return i.stats
|
return i.stats
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *indexImpl) GetInternal(key []byte) ([]byte, error) {
|
func (i *indexImpl) GetInternal(key []byte) (val []byte, err error) {
|
||||||
i.mutex.RLock()
|
i.mutex.RLock()
|
||||||
defer i.mutex.RUnlock()
|
defer i.mutex.RUnlock()
|
||||||
|
|
||||||
|
@ -641,9 +672,17 @@ func (i *indexImpl) GetInternal(key []byte) ([]byte, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer reader.Close()
|
defer func() {
|
||||||
|
if cerr := reader.Close(); err == nil && cerr != nil {
|
||||||
|
err = cerr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
return reader.GetInternal(key)
|
val, err = reader.GetInternal(key)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return val, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *indexImpl) SetInternal(key, val []byte) error {
|
func (i *indexImpl) SetInternal(key, val []byte) error {
|
||||||
|
|
|
@ -46,10 +46,10 @@ func openIndexMeta(path string) (*indexMeta, error) {
|
||||||
return &im, nil
|
return &im, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *indexMeta) Save(path string) error {
|
func (i *indexMeta) Save(path string) (err error) {
|
||||||
indexMetaPath := indexMetaPath(path)
|
indexMetaPath := indexMetaPath(path)
|
||||||
// ensure any necessary parent directories exist
|
// ensure any necessary parent directories exist
|
||||||
err := os.Mkdir(path, 0700)
|
err = os.Mkdir(path, 0700)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrorIndexPathExists
|
return ErrorIndexPathExists
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,11 @@ func (i *indexMeta) Save(path string) error {
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer indexMetaFile.Close()
|
defer func() {
|
||||||
|
if ierr := indexMetaFile.Close(); err == nil && ierr != nil {
|
||||||
|
err = ierr
|
||||||
|
}
|
||||||
|
}()
|
||||||
_, err = indexMetaFile.Write(metaBytes)
|
_, err = indexMetaFile.Write(metaBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in New Issue
Block a user