plan

package
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2014 License: Apache-2.0 Imports: 4 Imported by: 33

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateIndex

type CreateIndex struct {
	Type      string             `json:"type"`
	Pool      string             `json:"pool"`
	Bucket    string             `json:"bucket"`
	Name      string             `json:"name"`
	IndexType string             `json:"index_type"`
	Primary   bool               `json:"primary"`
	On        ast.ExpressionList `json:"on"`
}

func NewCreateIndex

func NewCreateIndex(pool string, bucket string, name string, index_type string, primary bool, on ast.ExpressionList) *CreateIndex

func (*CreateIndex) Sources

func (this *CreateIndex) Sources() []PlanElement

type DropIndex

type DropIndex struct {
	Type   string `json:"type"`
	Pool   string `json:"pool"`
	Bucket string `json:"bucket"`
	Name   string `json:"name"`
}

func NewDropIndex

func NewDropIndex(pool string, bucket string, name string) *DropIndex

func (*DropIndex) Sources

func (this *DropIndex) Sources() []PlanElement

type EliminateDuplicates

type EliminateDuplicates struct {
	Type  string      `json:"type"`
	Input PlanElement `json:"input"`
}

func NewEliminateDuplicates

func NewEliminateDuplicates(input PlanElement) *EliminateDuplicates

func (*EliminateDuplicates) Sources

func (this *EliminateDuplicates) Sources() []PlanElement

type Explain

type Explain struct {
	Type  string      `json:"type"`
	Input PlanElement `json:"input"`
}

func NewExplain

func NewExplain(input PlanElement) *Explain

func (*Explain) Sources

func (this *Explain) Sources() []PlanElement

type FastCount added in v0.6.0

type FastCount struct {
	Type       string         `json:"type"`
	CountIndex string         `json:"index"`
	Bucket     string         `json:"bucket"`
	Pool       string         `json:"pool"`
	Ranges     ScanRanges     `json:"ranges"`
	Expr       ast.Expression `json:"expr"`
}

func NewFastCount added in v0.6.0

func NewFastCount(pool string, bucket string, index string, expr ast.Expression, ranges ScanRanges) *FastCount

func (*FastCount) Sources added in v0.6.0

func (this *FastCount) Sources() []PlanElement

type Fetch

type Fetch struct {
	Type       string         `json:"type"`
	Input      PlanElement    `json:"input"`
	Bucket     string         `json:"bucket"`
	Pool       string         `json:"pool"`
	Projection ast.Expression `json:"projection"`
	As         string         `json:"as"`
	Ids        []string       `json:"ids"`
}

func NewFetch

func NewFetch(input PlanElement, pool string, bucket string, projection ast.Expression, as string) *Fetch

func (*Fetch) ConvertToIds added in v0.6.0

func (this *Fetch) ConvertToIds(ids []string)

func (*Fetch) Sources

func (this *Fetch) Sources() []PlanElement

type Filter

type Filter struct {
	Type  string         `json:"type"`
	Input PlanElement    `json:"input"`
	Expr  ast.Expression `json:"expr"`
}

func NewFilter

func NewFilter(input PlanElement, expr ast.Expression) *Filter

func (*Filter) Sources

func (this *Filter) Sources() []PlanElement

type Grouper

type Grouper struct {
	Type       string             `json:"type"`
	Input      PlanElement        `json:"input"`
	Group      ast.ExpressionList `json:"group"`
	Aggregates ast.ExpressionList `json:"aggregates"`
}

func NewGroup

func NewGroup(input PlanElement, group ast.ExpressionList, agg ast.ExpressionList) *Grouper

func (*Grouper) Sources

func (this *Grouper) Sources() []PlanElement

type KeyJoin added in v0.7.0

type KeyJoin struct {
	Type       string            `json:"type"`
	Input      PlanElement       `json:"input"`
	Pool       string            `json:"pool"`
	Bucket     string            `json:"bucket"`
	Projection ast.Expression    `json:"projection"`
	JoinType   string            `json:"jointype"`
	Oper       string            `json:"operator"`
	Keys       ast.KeyExpression `json:"keys"`
	As         string            `json:"as"`
}

func NewKeyJoin added in v0.7.0

func NewKeyJoin(input PlanElement, pool string, bucket string, projection ast.Expression, joinType string, oper string, keys ast.KeyExpression, as string) *KeyJoin

func (*KeyJoin) Sources added in v0.7.0

func (this *KeyJoin) Sources() []PlanElement

type KeyScan added in v0.7.0

type KeyScan struct {
	Type    string   `json:"type"`
	KeyList []string `json:"keys"`
}

func NewKeyScan added in v0.7.0

func NewKeyScan(keylist []string) *KeyScan

func (*KeyScan) Sources added in v0.7.0

func (this *KeyScan) Sources() []PlanElement

type Limit

type Limit struct {
	Type  string      `json:"type"`
	Input PlanElement `json:"input"`
	Val   int         `json:"value"`
}

func NewLimit

func NewLimit(input PlanElement, limit int) *Limit

func (*Limit) Sources

func (this *Limit) Sources() []PlanElement

type Offset

type Offset struct {
	Type  string      `json:"type"`
	Input PlanElement `json:"input"`
	Val   int         `json:"value"`
}

func NewOffset

func NewOffset(input PlanElement, offset int) *Offset

func (*Offset) Sources

func (this *Offset) Sources() []PlanElement

type Order

type Order struct {
	Type            string                `json:"type"`
	Input           PlanElement           `json:"input"`
	Sort            []*ast.SortExpression `json:"sort"`
	ExplicitAliases []string              `json:"explicit_aliases"`
}

func NewOrder

func NewOrder(input PlanElement, sort []*ast.SortExpression, explicitAliases []string) *Order

func (*Order) Sources

func (this *Order) Sources() []PlanElement

type Plan

type Plan struct {
	Root PlanElement `json:"root"`
}

type PlanChannel

type PlanChannel chan Plan

type PlanElement

type PlanElement interface {
	Sources() []PlanElement
}

type Projector

type Projector struct {
	Type         string                   `json:"type"`
	Input        PlanElement              `json:"input"`
	Result       ast.ResultExpressionList `json:"result"`
	ProjectEmpty bool                     `json:"-"`
}

func NewProjector

func NewProjector(input PlanElement, result ast.ResultExpressionList, projectEmpty bool) *Projector

func (*Projector) Sources

func (this *Projector) Sources() []PlanElement

type ProjectorInline

type ProjectorInline struct {
	Type   string                `json:"type"`
	Input  PlanElement           `json:"input"`
	Result *ast.ResultExpression `json:"result"`
}

func NewProjectorInline

func NewProjectorInline(input PlanElement, result *ast.ResultExpression) *ProjectorInline

func (*ProjectorInline) Sources

func (this *ProjectorInline) Sources() []PlanElement

type Scan

type Scan struct {
	Type      string     `json:"type"`
	ScanIndex string     `json:"index"`
	Bucket    string     `json:"bucket"`
	Pool      string     `json:"pool"`
	Ranges    ScanRanges `json:"ranges"`
	Cover     bool       `json:"cover"`
	As        string     `json:"as"`
}

func NewScan

func NewScan(pool string, bucket string, index string, ranges ScanRanges) *Scan

func (*Scan) Sources

func (this *Scan) Sources() []PlanElement

type ScanRange

type ScanRange struct {
	Low       catalog.LookupValue
	High      catalog.LookupValue
	Inclusion catalog.RangeInclusion
	Limit     int64
}

func (*ScanRange) IsSubsetOf added in v0.6.0

func (this *ScanRange) IsSubsetOf(that *ScanRange) bool

func (ScanRange) MarshalJSON

func (sr ScanRange) MarshalJSON() ([]byte, error)

func (*ScanRange) Overlap added in v0.6.0

func (sr *ScanRange) Overlap(other *ScanRange) (rv *ScanRange)

type ScanRanges

type ScanRanges []*ScanRange

func (ScanRanges) String added in v0.6.0

func (sr ScanRanges) String() string

type Unnest added in v0.7.0

type Unnest struct {
	Type     string         `json:"type"`
	Input    PlanElement    `json:"input"`
	Over     ast.Expression `json:"over"`
	JoinType string         `json:"jointype"`
	As       string         `json:"as"`
}

func NewUnnest added in v0.7.0

func NewUnnest(input PlanElement, over ast.Expression, jointype string, as string) *Unnest

func (*Unnest) Sources added in v0.7.0

func (this *Unnest) Sources() []PlanElement

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL