MCPcopy
hub / github.com/grafana/tempo / keyNameIterator

Function keyNameIterator

tempodb/encoding/vparquet4/block_autocomplete.go:811–827  ·  view source on GitHub ↗
(makeIter makeIterFn, tr tagRequest, definitionLevel int, keyPath string, attrIters []parquetquery.Iterator)

Source from the content-addressed store, hash-verified

809}
810
811func keyNameIterator(makeIter makeIterFn, tr tagRequest, definitionLevel int, keyPath string, attrIters []parquetquery.Iterator) (parquetquery.Iterator, error) {
812 scope := scopeFromDefinitionLevel(definitionLevel, keyPath)
813 if len(attrIters) == 0 {
814 return parquetquery.NewJoinIterator(
815 oneLevelUp(definitionLevel),
816 []parquetquery.Iterator{makeIter(keyPath, nil, "key")},
817 newDistinctAttrCollector(scope, true, tr.existsTagName, tr.existsTagValue),
818 ), nil
819 }
820
821 return parquetquery.NewLeftJoinIterator(
822 oneLevelUp(definitionLevel),
823 attrIters,
824 []parquetquery.Iterator{makeIter(keyPath, nil, "key")},
825 newDistinctAttrCollector(scope, true, tr.existsTagName, tr.existsTagValue),
826 )
827}
828
829func oneLevelUp(definitionLevel int) int {
830 switch definitionLevel {

Callers 1

Calls 5

NewJoinIteratorFunction · 0.92
NewLeftJoinIteratorFunction · 0.92
scopeFromDefinitionLevelFunction · 0.70
oneLevelUpFunction · 0.70
newDistinctAttrCollectorFunction · 0.70

Tested by

no test coverage detected