internal static QueryResultQueue <object[]> RetrieveInternal( IDataReader reader, IEnumerable <int> ordinals, IEnumerable <string>?columnNames = null, bool readStarted = false, ArrayPool <object>?arrayPool = null) { var o = ordinals is IList <int> i ? i : ordinals.ToImmutableArray(); return(new QueryResultQueue <object[]>( o, columnNames ?? reader.GetNames(o), new Queue <object[]>(arrayPool == null ? reader.AsEnumerableInternal(o, readStarted) : reader.AsEnumerableInternal(o, readStarted, arrayPool)))); }