@@ -3,6 +3,7 @@ package reads
33import (
44 "context"
55 "fmt"
6+
67 errors2 "github.com/influxdata/influxdb/v2/kit/platform/errors"
78
89 "github.com/influxdata/flux/interval"
@@ -104,7 +105,7 @@ func newMultiShardArrayCursors(ctx context.Context, start, end int64, asc bool)
104105 return m
105106}
106107
107- func (m * multiShardArrayCursors ) createCursor (row SeriesRow ) cursors.Cursor {
108+ func (m * multiShardArrayCursors ) createCursor (row SeriesRow ) ( cursors.Cursor , error ) {
108109 m .req .Name = row .Name
109110 m .req .Tags = row .SeriesTags
110111 m .req .Field = row .Field
@@ -123,26 +124,29 @@ func (m *multiShardArrayCursors) createCursor(row SeriesRow) cursors.Cursor {
123124 }
124125
125126 if cur == nil || err != nil {
126- return nil
127+ return nil , err
127128 }
128129
129130 switch c := cur .(type ) {
130131 case cursors.IntegerArrayCursor :
131132 m .cursors .i .reset (c , row .Query , cond )
132- return & m .cursors .i
133+ return & m .cursors .i , nil
133134 case cursors.FloatArrayCursor :
134135 m .cursors .f .reset (c , row .Query , cond )
135- return & m .cursors .f
136+ return & m .cursors .f , nil
136137 case cursors.UnsignedArrayCursor :
137138 m .cursors .u .reset (c , row .Query , cond )
138- return & m .cursors .u
139+ return & m .cursors .u , nil
139140 case cursors.StringArrayCursor :
140141 m .cursors .s .reset (c , row .Query , cond )
141- return & m .cursors .s
142+ return & m .cursors .s , nil
142143 case cursors.BooleanArrayCursor :
143144 m .cursors .b .reset (c , row .Query , cond )
144- return & m .cursors .b
145+ return & m .cursors .b , nil
145146 default :
146- return nil
147+ return nil , & errors2.Error {
148+ Code : errors2 .EInvalid ,
149+ Msg : fmt .Sprintf ("unsupported cursor type: %s" , arrayCursorType (cur )),
150+ }
147151 }
148152}
0 commit comments