52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
package tsdb
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/influxdata/influxdb/v2/influxql/query"
|
|
"github.com/influxdata/influxdb/v2/tsdb/cursors"
|
|
)
|
|
|
|
type (
|
|
IntegerArray = cursors.IntegerArray
|
|
FloatArray = cursors.FloatArray
|
|
UnsignedArray = cursors.UnsignedArray
|
|
StringArray = cursors.StringArray
|
|
BooleanArray = cursors.BooleanArray
|
|
|
|
IntegerArrayCursor = cursors.IntegerArrayCursor
|
|
FloatArrayCursor = cursors.FloatArrayCursor
|
|
UnsignedArrayCursor = cursors.UnsignedArrayCursor
|
|
StringArrayCursor = cursors.StringArrayCursor
|
|
BooleanArrayCursor = cursors.BooleanArrayCursor
|
|
|
|
Cursor = cursors.Cursor
|
|
CursorStats = cursors.CursorStats
|
|
CursorRequest = cursors.CursorRequest
|
|
CursorIterator = cursors.CursorIterator
|
|
CursorIterators = cursors.CursorIterators
|
|
)
|
|
|
|
func NewIntegerArrayLen(sz int) *IntegerArray { return cursors.NewIntegerArrayLen(sz) }
|
|
func NewFloatArrayLen(sz int) *FloatArray { return cursors.NewFloatArrayLen(sz) }
|
|
func NewUnsignedArrayLen(sz int) *UnsignedArray { return cursors.NewUnsignedArrayLen(sz) }
|
|
func NewStringArrayLen(sz int) *StringArray { return cursors.NewStringArrayLen(sz) }
|
|
func NewBooleanArrayLen(sz int) *BooleanArray { return cursors.NewBooleanArrayLen(sz) }
|
|
|
|
// EOF represents a "not found" key returned by a Cursor.
|
|
const EOF = query.ZeroTime
|
|
|
|
func CreateCursorIterators(ctx context.Context, shards []*Shard) (CursorIterators, error) {
|
|
q := make(CursorIterators, 0, len(shards))
|
|
for _, s := range shards {
|
|
// possible errors are ErrEngineClosed or ErrShardDisabled, so we can safely skip those shards
|
|
if cq, err := s.CreateCursorIterator(ctx); cq != nil && err == nil {
|
|
q = append(q, cq)
|
|
}
|
|
}
|
|
if len(q) == 0 {
|
|
return nil, nil
|
|
}
|
|
return q, nil
|
|
}
|