// NewStepIteratorForColumns creates a new StepIterator given a slice of columns.
NewStepIteratorForColumns creates a new StepIterator given a slice of columns.
// NewStepIteratorForColumns creates a new StepIterator given a slice of columns .
func NewStepIteratorForColumns(cols []array.Column) StepIterator {
	itrs := make([]ValueIterator, 0, len(cols))
	dtypes := make([]arrow.DataType, 0, len(cols))
	for i := range cols {
		itrs = append(itrs, NewValueIterator(&cols[i]))
		dtypes = append(dtypes, cols[i].DataType())
	}
	for i := range itrs {
		defer itrs[i].Release()
	}
	return NewStepIterator(dtypes, itrs...)
}
func NewStepIteratorForColumns ( cols [ ] array . Column ) StepIterator { itrs := make ( [ ] ValueIterator , 0 , len ( cols ) ) dtypes := make ( [ ] arrow . DataType , 0 , len ( cols ) ) for i := range cols { itrs = append ( itrs , NewValueIterator ( & cols [ i ] ) ) dtypes = append ( dtypes , cols [ i ] . DataType ( ) ) } for i := range itrs { defer itrs [ i ] . Release ( ) } return NewStepIterator ( dtypes , itrs ... ) }
NewStepIteratorForColumns creates a new StepIterator given a slice of columns.
NewStepIteratorForColumns creates a new StepIterator given a slice of columns .
// NewStepIterator will retain the value iterators refs // so we need to remove our ref to them.