MCPcopy Create free account
hub / github.com/brimdata/super / Read

Method Read

sio/arrowio/reader.go:96–127  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

94}
95
96func (r *Reader) Read() (*super.Value, error) {
97 for r.batch == nil {
98 batch, err := r.rbr.Read()
99 if err != nil {
100 if err == io.EOF {
101 return nil, nil
102 }
103 return nil, err
104 }
105 if batch.NumRows() > 0 {
106 r.batch = batch
107 r.i = 0
108 } else {
109 batch.Release()
110 }
111 }
112 r.builder.Truncate()
113 for j, array := range r.batch.Columns() {
114 typ := r.topLevelType.Fields[j].Type
115 nullable := r.topLevelFields[j].Nullable
116 if err := r.buildScodeWithNullable(typ, array, r.i, nullable); err != nil {
117 return nil, err
118 }
119 }
120 r.val = super.NewValue(r.topLevelType, r.builder.Bytes())
121 r.i++
122 if r.i >= int(r.batch.NumRows()) {
123 r.batch.Release()
124 r.batch = nil
125 }
126 return &r.val, nil
127}
128
129var dayTimeIntervalFields = []super.Field{
130 {Name: "days", Type: super.TypeInt32},

Callers 1

isArrowStreamFunction · 0.95

Calls 6

NewValueFunction · 0.92
ReleaseMethod · 0.80
TruncateMethod · 0.80
ReadMethod · 0.65
BytesMethod · 0.45

Tested by

no test coverage detected