(makeIter makeIterFn, tr tagRequest, definitionLevel int, keyPath string, attrIters []parquetquery.Iterator)
| 809 | } |
| 810 | |
| 811 | func 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 | |
| 829 | func oneLevelUp(definitionLevel int) int { |
| 830 | switch definitionLevel { |
no test coverage detected