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

Method Pull

runtime/sam/op/meta/sequence.go:121–157  ·  view source on GitHub ↗
(done bool)

Source from the content-addressed store, hash-verified

119}
120
121func (s *SearchScanner) Pull(done bool) (sbuf.Batch, error) {
122 if done {
123 var err error
124 if s.scanner != nil {
125 _, err = s.scanner.Pull(true)
126 s.scanner = nil
127 }
128 return nil, err
129 }
130 for {
131 if s.scanner == nil {
132 o, b, err := s.parent.Pull(done)
133 if b == nil || err != nil {
134 return nil, err
135 }
136 ranges, err := data.RangeFromBitVector(s.rctx.Context, s.pool.Storage(), s.pool.DataPath, o, b)
137 if err != nil {
138 return nil, err
139 }
140 if len(ranges) == 0 {
141 continue
142 }
143 s.scanner, err = newObjectScanner(s.rctx.Context, s.rctx.Sctx, s.pool, o, ranges, s.pushdown, s.progress)
144 if err != nil {
145 return nil, err
146 }
147 }
148 batch, err := s.scanner.Pull(false)
149 if err != nil {
150 return nil, err
151 }
152 if batch != nil {
153 return batch, nil
154 }
155 s.scanner = nil
156 }
157}
158
159func newScanner(ctx context.Context, sctx *super.Context, pool *db.Pool, u *sup.UnmarshalBSUPContext, pruner expr.Evaluator, pushdown sbuf.Pushdown, progress *vio.Progress, val super.Value) (sbuf.Puller, *data.Object, error) {
160 named, ok := val.Type().(*super.TypeNamed)

Callers

nothing calls this directly

Calls 4

RangeFromBitVectorFunction · 0.92
newObjectScannerFunction · 0.85
StorageMethod · 0.80
PullMethod · 0.65

Tested by

no test coverage detected