@@ -3,6 +3,7 @@ package reads
3
3
import (
4
4
"context"
5
5
"fmt"
6
+
6
7
errors2 "github.com/influxdata/influxdb/v2/kit/platform/errors"
7
8
8
9
"github.com/influxdata/flux/interval"
@@ -104,7 +105,7 @@ func newMultiShardArrayCursors(ctx context.Context, start, end int64, asc bool)
104
105
return m
105
106
}
106
107
107
- func (m * multiShardArrayCursors ) createCursor (row SeriesRow ) cursors.Cursor {
108
+ func (m * multiShardArrayCursors ) createCursor (row SeriesRow ) ( cursors.Cursor , error ) {
108
109
m .req .Name = row .Name
109
110
m .req .Tags = row .SeriesTags
110
111
m .req .Field = row .Field
@@ -123,26 +124,29 @@ func (m *multiShardArrayCursors) createCursor(row SeriesRow) cursors.Cursor {
123
124
}
124
125
125
126
if cur == nil || err != nil {
126
- return nil
127
+ return nil , err
127
128
}
128
129
129
130
switch c := cur .(type ) {
130
131
case cursors.IntegerArrayCursor :
131
132
m .cursors .i .reset (c , row .Query , cond )
132
- return & m .cursors .i
133
+ return & m .cursors .i , nil
133
134
case cursors.FloatArrayCursor :
134
135
m .cursors .f .reset (c , row .Query , cond )
135
- return & m .cursors .f
136
+ return & m .cursors .f , nil
136
137
case cursors.UnsignedArrayCursor :
137
138
m .cursors .u .reset (c , row .Query , cond )
138
- return & m .cursors .u
139
+ return & m .cursors .u , nil
139
140
case cursors.StringArrayCursor :
140
141
m .cursors .s .reset (c , row .Query , cond )
141
- return & m .cursors .s
142
+ return & m .cursors .s , nil
142
143
case cursors.BooleanArrayCursor :
143
144
m .cursors .b .reset (c , row .Query , cond )
144
- return & m .cursors .b
145
+ return & m .cursors .b , nil
145
146
default :
146
- return nil
147
+ return nil , & errors2.Error {
148
+ Code : errors2 .EInvalid ,
149
+ Msg : fmt .Sprintf ("unsupported cursor type: %s" , arrayCursorType (cur )),
150
+ }
147
151
}
148
152
}
0 commit comments