Documentation
¶
Index ¶
- Variables
- func FanIn(op Op) int
- func IsRoot(e Expr) bool
- func IsRootField(e Expr) bool
- func RootField(e Expr) (string, bool)
- func UnpackJSON(buf []byte) (interface{}, error)
- type Agg
- type ArrayExpr
- type Assignment
- type BinaryExpr
- type Call
- type Case
- type Cast
- type CommitMeta
- type Conditional
- type Const
- type Cut
- type Dot
- type Drop
- type Entry
- type Explode
- type Expr
- type Field
- type File
- type Filter
- type From
- type Fuse
- type HTTP
- type Head
- type Join
- type LakeMeta
- type MapExpr
- type Merge
- type Method
- type Op
- type Parallel
- type Pass
- type Path
- type Pick
- type Pool
- type PoolMeta
- type Pushdown
- type Put
- type RecordExpr
- type Ref
- type RegexpMatch
- type RegexpSearch
- type Rename
- type Search
- type SelectExpr
- type SeqExpr
- type Sequential
- type SetExpr
- type Shape
- type Sort
- type Source
- type Summarize
- type Switch
- type Tail
- type Top
- type Trunk
- type TypeProc
- type UnaryExpr
- type Uniq
Constants ¶
This section is empty.
Variables ¶
var PassOp = &Pass{Kind: "Pass"}
var Root = &Path{Kind: "Path", Name: []string{}}
Functions ¶
func IsRootField ¶
func UnpackJSON ¶
Types ¶
type Agg ¶
type Assignment ¶
type Assignment struct {
Kind string `json:"kind" unpack:""`
LHS Expr `json:"lhs"`
RHS Expr `json:"rhs"`
}
func (*Assignment) ExprDAG ¶
func (*Assignment) ExprDAG()
type BinaryExpr ¶
type BinaryExpr struct {
Kind string `json:"kind" unpack:""`
Op string `json:"op"`
LHS Expr `json:"lhs"`
RHS Expr `json:"rhs"`
}
func (*BinaryExpr) ExprDAG ¶
func (*BinaryExpr) ExprDAG()
type Call ¶
type Cast ¶
type CommitMeta ¶
type CommitMeta struct {
Kind string `json:"kind" unpack:""`
Pool ksuid.KSUID `json:"pool"`
Commit ksuid.KSUID `json:"branch"`
Meta string `json:"meta"`
ScanLower Expr `json:"scan_lower"`
ScanUpper Expr `json:"scan_upper"`
ScanOrder string `json:"scan_order"`
}
func (*CommitMeta) Source ¶
func (*CommitMeta) Source()
type Conditional ¶
type Conditional struct {
Kind string `json:"kind" unpack:""`
Cond Expr `json:"cond"`
Then Expr `json:"then"`
Else Expr `json:"else"`
}
func (*Conditional) ExprDAG ¶
func (*Conditional) ExprDAG()
type Const ¶
type Cut ¶
type Cut struct {
Kind string `json:"kind" unpack:""`
Args []Assignment `json:"args"`
Quiet bool `json:"quiet"`
}
type Dot ¶
type Explode ¶
type File ¶
type Filter ¶
func FilterToOp ¶
type HTTP ¶
type Join ¶
type Join struct {
Kind string `json:"kind" unpack:""`
Style string `json:"style"`
LeftKey Expr `json:"left_key"`
RightKey Expr `json:"right_key"`
Args []Assignment `json:"args"`
}
type Merge ¶
type Op ¶
type Op interface {
OpNode()
}
func UnpackJSONAsOp ¶
UnpackJSONAsOp transforms a JSON representation of an operator into an dag.Op.
func UnpackMapAsOp ¶
type Pick ¶
type Pick struct {
Kind string `json:"kind" unpack:""`
Args []Assignment `json:"args"`
}
type Pool ¶
type PoolMeta ¶
type Put ¶
type Put struct {
Kind string `json:"kind" unpack:""`
Args []Assignment `json:"args"`
}
type RecordExpr ¶
func (*RecordExpr) ExprDAG ¶
func (*RecordExpr) ExprDAG()
type RegexpMatch ¶
type RegexpMatch struct {
Kind string `json:"kind" unpack:""`
Pattern string `json:"pattern"`
Expr Expr `json:"expr"`
}
func (*RegexpMatch) ExprDAG ¶
func (*RegexpMatch) ExprDAG()
type RegexpSearch ¶
func (*RegexpSearch) ExprDAG ¶
func (*RegexpSearch) ExprDAG()
type Rename ¶
type Rename struct {
Kind string `json:"kind" unpack:""`
Args []Assignment `json:"args"`
}
type Search ¶
type SelectExpr ¶
type SelectExpr struct {
Kind string `json:"kind" unpack:""`
Selectors []Expr `json:"selectors"`
Methods []Call `json:"methods"`
}
func (*SelectExpr) ExprDAG ¶
func (*SelectExpr) ExprDAG()
type SeqExpr ¶
type Sequential ¶
func (*Sequential) Append ¶
func (seq *Sequential) Append(op Op)
func (*Sequential) Delete ¶
func (seq *Sequential) Delete(at, length int)
func (*Sequential) IsEntry ¶
func (seq *Sequential) IsEntry() bool
func (*Sequential) OpNode ¶
func (*Sequential) OpNode()
func (*Sequential) Prepend ¶
func (seq *Sequential) Prepend(front Op)
type Sort ¶
type Summarize ¶
type Summarize struct {
Kind string `json:"kind" unpack:""`
Duration *astzed.Primitive `json:"duration"`
Limit int `json:"limit"`
Keys []Assignment `json:"keys"`
Aggs []Assignment `json:"aggs"`
InputSortDir int `json:"input_sort_dir,omitempty"`
PartialsIn bool `json:"partials_in,omitempty"`
PartialsOut bool `json:"partials_out,omitempty"`
}
type Switch ¶
type Top ¶
type Trunk ¶
type Trunk struct {
Kind string `json:"kind" unpack:""`
Source Source `json:"source"`
Seq *Sequential `json:"seq"`
Pushdown Pushdown `json:"pushdown"`
}
A Trunk is the path into a DAG for any input source. It contains the source to scan as well as the sequential operators to apply to the scan before being joined, merged, or output. A DAG can be just one Trunk or an assembly of different Trunks mixed in using the From Op. The Trunk is the one place where the optimizer places pushed down predicates so the runtime can move the pushed down operators into each scan scheduler for each source when the runtime is built. When computation is distribtued over the network, the optimized pushdown is naturally carried in the serialized DAG via each Trunk.