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

Function keyNameIterator

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

Source from the content-addressed store, hash-verified

851}
852
853func keyNameIterator(makeIter makeIterFn, tr tagRequest, definitionLevel int, keyPath string, attrIters []parquetquery.Iterator) (parquetquery.Iterator, error) {
854 scope := scopeFromDefinitionLevel(definitionLevel, keyPath)
855 if len(attrIters) == 0 {
856 return parquetquery.NewJoinIterator(
857 oneLevelUp(definitionLevel),
858 []parquetquery.Iterator{makeIter(keyPath, nil, "key")},
859 newDistinctAttrCollector(scope, true, tr.existsTagName, tr.existsTagValue),
860 ), nil
861 }
862
863 return parquetquery.NewLeftJoinIterator(
864 oneLevelUp(definitionLevel),
865 attrIters,
866 []parquetquery.Iterator{makeIter(keyPath, nil, "key")},
867 newDistinctAttrCollector(scope, true, tr.existsTagName, tr.existsTagValue),
868 )
869}
870
871func oneLevelUp(definitionLevel int) int {
872 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