MCPcopy Create free account
hub / github.com/couchbase/cbft / parseSourceNamesFromIndexDefs

Function parseSourceNamesFromIndexDefs

rest_backup_restore.go:581–623  ·  view source on GitHub ↗
(indexDef *cbgt.IndexDef)

Source from the content-addressed store, hash-verified

579}
580
581func parseSourceNamesFromIndexDefs(indexDef *cbgt.IndexDef) []string {
582 if len(indexDef.Params) > 0 {
583 bleveParamBytes := []byte(indexDef.Params)
584 docConfig, _, _, err := jsonparser.Get(bleveParamBytes, "doc_config")
585 if err != nil {
586 return []string{indexDef.SourceName + "." + defaultScopeName +
587 "." + defaultCollName}
588 }
589
590 docConfigMode, _, _, _ := jsonparser.Get(docConfig, "mode")
591 if strings.HasPrefix(string(docConfigMode), "scope.collection") {
592 bmapping, _, _, err := jsonparser.Get(bleveParamBytes, "mapping")
593 if err != nil {
594 return nil
595 }
596
597 mapping := bleve.NewIndexMapping()
598 err = json.Unmarshal(bmapping, mapping)
599 if err != nil {
600 return nil
601 }
602
603 sname, colNames, _, err := getScopeCollTypeMappings(mapping, true)
604 if err != nil {
605 return nil
606 }
607
608 var rv []string
609 for _, cname := range colNames {
610 rv = append(rv, indexDef.SourceName+"."+sname+"."+cname)
611 }
612 sort.Strings(rv)
613 return rv
614 }
615 }
616
617 if indexDef.SourceName != "" {
618 return []string{indexDef.SourceName + "." + defaultScopeName +
619 "." + defaultCollName}
620 }
621
622 return nil
623}

Calls 3

getScopeCollTypeMappingsFunction · 0.85
GetMethod · 0.80
UnmarshalMethod · 0.80