Documentation ¶
Index ¶
- Constants
- func ReadFilterSource(id execute.DatasetID, r Reader, readSpec ReadFilterSpec, ...) execute.Source
- func ReadGroupSource(id execute.DatasetID, r Reader, readSpec ReadGroupSpec, ...) execute.Source
- func ReadTagKeysSource(id execute.DatasetID, r Reader, readSpec ReadTagKeysSpec, ...) execute.Source
- func ReadTagValuesSource(id execute.DatasetID, r Reader, readSpec ReadTagValuesSpec, ...) execute.Source
- type Authorizer
- type BucketsDecoder
- type Dependencies
- type FromDependencies
- type FromOpSpec
- type FromProcedureSpec
- type GroupMode
- type MetaClient
- type PushDownFilterRule
- type PushDownGroupRule
- type PushDownRangeRule
- type PushDownReadTagKeysRule
- type PushDownReadTagValuesRule
- type ReadFilterSpec
- type ReadGroupPhysSpec
- type ReadGroupSpec
- type ReadRangePhysSpec
- func (s *ReadRangePhysSpec) Copy() plan.ProcedureSpec
- func (s *ReadRangePhysSpec) Kind() plan.ProcedureKind
- func (s *ReadRangePhysSpec) LookupDatabase(ctx context.Context, deps StorageDependencies, a execute.Administration) (string, string, error)
- func (s *ReadRangePhysSpec) TimeBounds(predecessorBounds *plan.Bounds) *plan.Bounds
- type ReadTagKeysPhysSpec
- type ReadTagKeysSpec
- type ReadTagValuesPhysSpec
- type ReadTagValuesSpec
- type Reader
- type Source
- type StorageDependencies
- type TableIterator
Constants ¶
const ( ReadRangePhysKind = "ReadRangePhysKind" ReadGroupPhysKind = "ReadGroupPhysKind" ReadTagKeysPhysKind = "ReadTagKeysPhysKind" ReadTagValuesPhysKind = "ReadTagValuesPhysKind" )
const FromKind = "influxDBFrom"
Variables ¶
This section is empty.
Functions ¶
func ReadFilterSource ¶
func ReadFilterSource(id execute.DatasetID, r Reader, readSpec ReadFilterSpec, a execute.Administration) execute.Source
func ReadGroupSource ¶
func ReadGroupSource(id execute.DatasetID, r Reader, readSpec ReadGroupSpec, a execute.Administration) execute.Source
func ReadTagKeysSource ¶
func ReadTagKeysSource(id execute.DatasetID, r Reader, readSpec ReadTagKeysSpec, a execute.Administration) execute.Source
func ReadTagValuesSource ¶
func ReadTagValuesSource(id execute.DatasetID, r Reader, readSpec ReadTagValuesSpec, a execute.Administration) execute.Source
Types ¶
type Authorizer ¶
type BucketsDecoder ¶
type BucketsDecoder struct {
// contains filtered or unexported fields
}
func (*BucketsDecoder) Close ¶
func (bd *BucketsDecoder) Close() error
type Dependencies ¶
type Dependencies struct { StorageDeps StorageDependencies FluxDeps flux.Dependencies }
func NewDependencies ¶
func NewDependencies( mc MetaClient, reader Reader, auth Authorizer, authEnabled bool, ) (Dependencies, error)
type FromDependencies ¶
type FromDependencies struct { Reader Reader MetaClient MetaClient Authorizer Authorizer AuthEnabled bool }
func (FromDependencies) Validate ¶
func (d FromDependencies) Validate() error
type FromOpSpec ¶
type FromOpSpec struct { Bucket string `json:"bucket,omitempty"` BucketID string `json:"bucketID,omitempty"` }
func (*FromOpSpec) Kind ¶
func (s *FromOpSpec) Kind() flux.OperationKind
type FromProcedureSpec ¶
func (*FromProcedureSpec) Copy ¶
func (s *FromProcedureSpec) Copy() plan.ProcedureSpec
func (*FromProcedureSpec) Kind ¶
func (s *FromProcedureSpec) Kind() plan.ProcedureKind
func (*FromProcedureSpec) PostPhysicalValidate ¶
func (s *FromProcedureSpec) PostPhysicalValidate(id plan.NodeID) error
type GroupMode ¶
type GroupMode int
func ToGroupMode ¶
ToGroupMode accepts the group mode from Flux and produces the appropriate storage group mode.
type MetaClient ¶
type MetaClient interface { Databases() []meta.DatabaseInfo Database(name string) *meta.DatabaseInfo }
type PushDownFilterRule ¶
type PushDownFilterRule struct{}
PushDownFilterRule is a rule that pushes filters into from procedures to be evaluated in the storage layer. This rule is likely to be replaced by a more generic rule when we have a better framework for pushing filters, etc into sources.
func (PushDownFilterRule) Name ¶
func (PushDownFilterRule) Name() string
func (PushDownFilterRule) Pattern ¶
func (PushDownFilterRule) Pattern() plan.Pattern
type PushDownGroupRule ¶
type PushDownGroupRule struct{}
PushDownGroupRule pushes down a group operation to storage
func (PushDownGroupRule) Name ¶
func (rule PushDownGroupRule) Name() string
func (PushDownGroupRule) Pattern ¶
func (rule PushDownGroupRule) Pattern() plan.Pattern
type PushDownRangeRule ¶
type PushDownRangeRule struct{}
PushDownRangeRule pushes down a range filter to storage
func (PushDownRangeRule) Name ¶
func (rule PushDownRangeRule) Name() string
func (PushDownRangeRule) Pattern ¶
func (rule PushDownRangeRule) Pattern() plan.Pattern
Pattern matches 'from |> range'
type PushDownReadTagKeysRule ¶
type PushDownReadTagKeysRule struct{}
PushDownReadTagKeysRule matches 'ReadRange |> keys() |> keep() |> distinct()'. The 'from()' must have already been merged with 'range' and, optionally, may have been merged with 'filter'. If any other properties have been set on the from procedure, this rule will not rewrite anything.
func (PushDownReadTagKeysRule) Name ¶
func (rule PushDownReadTagKeysRule) Name() string
func (PushDownReadTagKeysRule) Pattern ¶
func (rule PushDownReadTagKeysRule) Pattern() plan.Pattern
type PushDownReadTagValuesRule ¶
type PushDownReadTagValuesRule struct{}
PushDownReadTagValuesRule matches 'ReadRange |> keep(columns: [tag]) |> group() |> distinct(column: tag)'. The 'from()' must have already been merged with 'range' and, optionally, may have been merged with 'filter'. If any other properties have been set on the from procedure, this rule will not rewrite anything.
func (PushDownReadTagValuesRule) Name ¶
func (rule PushDownReadTagValuesRule) Name() string
func (PushDownReadTagValuesRule) Pattern ¶
func (rule PushDownReadTagValuesRule) Pattern() plan.Pattern
type ReadFilterSpec ¶
type ReadGroupPhysSpec ¶
type ReadGroupPhysSpec struct { plan.DefaultCost ReadRangePhysSpec GroupMode flux.GroupMode GroupKeys []string AggregateMethod string }
func (*ReadGroupPhysSpec) Copy ¶
func (s *ReadGroupPhysSpec) Copy() plan.ProcedureSpec
func (*ReadGroupPhysSpec) Kind ¶
func (s *ReadGroupPhysSpec) Kind() plan.ProcedureKind
type ReadGroupSpec ¶
type ReadGroupSpec struct { ReadFilterSpec GroupMode GroupMode GroupKeys []string AggregateMethod string }
type ReadRangePhysSpec ¶
type ReadRangePhysSpec struct { plan.DefaultCost Bucket string BucketID string // FilterSet is set to true if there is a filter. FilterSet bool // Filter is the filter to use when calling into // storage. It must be possible to push down this // filter. Filter *semantic.FunctionExpression Bounds flux.Bounds }
func (*ReadRangePhysSpec) Copy ¶
func (s *ReadRangePhysSpec) Copy() plan.ProcedureSpec
func (*ReadRangePhysSpec) Kind ¶
func (s *ReadRangePhysSpec) Kind() plan.ProcedureKind
func (*ReadRangePhysSpec) LookupDatabase ¶
func (s *ReadRangePhysSpec) LookupDatabase(ctx context.Context, deps StorageDependencies, a execute.Administration) (string, string, error)
func (*ReadRangePhysSpec) TimeBounds ¶
func (s *ReadRangePhysSpec) TimeBounds(predecessorBounds *plan.Bounds) *plan.Bounds
TimeBounds implements plan.BoundsAwareProcedureSpec.
type ReadTagKeysPhysSpec ¶
type ReadTagKeysPhysSpec struct {
ReadRangePhysSpec
}
func (*ReadTagKeysPhysSpec) Copy ¶
func (s *ReadTagKeysPhysSpec) Copy() plan.ProcedureSpec
func (*ReadTagKeysPhysSpec) Kind ¶
func (s *ReadTagKeysPhysSpec) Kind() plan.ProcedureKind
type ReadTagKeysSpec ¶
type ReadTagKeysSpec struct {
ReadFilterSpec
}
type ReadTagValuesPhysSpec ¶
type ReadTagValuesPhysSpec struct { ReadRangePhysSpec TagKey string }
func (*ReadTagValuesPhysSpec) Copy ¶
func (s *ReadTagValuesPhysSpec) Copy() plan.ProcedureSpec
func (*ReadTagValuesPhysSpec) Kind ¶
func (s *ReadTagValuesPhysSpec) Kind() plan.ProcedureKind
type ReadTagValuesSpec ¶
type ReadTagValuesSpec struct { ReadFilterSpec TagKey string }
type Reader ¶
type Reader interface { ReadFilter(ctx context.Context, spec ReadFilterSpec, alloc *memory.Allocator) (TableIterator, error) ReadGroup(ctx context.Context, spec ReadGroupSpec, alloc *memory.Allocator) (TableIterator, error) ReadTagKeys(ctx context.Context, spec ReadTagKeysSpec, alloc *memory.Allocator) (TableIterator, error) ReadTagValues(ctx context.Context, spec ReadTagValuesSpec, alloc *memory.Allocator) (TableIterator, error) Close() }
type Source ¶
type Source struct {
// contains filtered or unexported fields
}
func (*Source) AddTransformation ¶
func (s *Source) AddTransformation(t execute.Transformation)
type StorageDependencies ¶
type StorageDependencies struct { Reader Reader MetaClient MetaClient Authorizer Authorizer AuthEnabled bool }
func GetStorageDependencies ¶
func GetStorageDependencies(ctx context.Context) StorageDependencies
func (StorageDependencies) Inject ¶
func (d StorageDependencies) Inject(ctx context.Context) context.Context
func (StorageDependencies) Validate ¶
func (d StorageDependencies) Validate() error
type TableIterator ¶
type TableIterator interface { flux.TableIterator Statistics() cursors.CursorStats }
TableIterator is a table iterator that also keeps track of cursor statistics from the storage engine.