dataset

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IsDescartes  = true
	NotDescartes = false
)

Variables

This section is empty.

Functions

func Fuse

func Fuse(first GenerateFunc, others ...GenerateFunc) (proto.Dataset, error)

func NewOrderedDataset

func NewOrderedDataset(dataset RandomAccessDataset, items []OrderByItem) proto.Dataset

func NewParallelBuilder

func NewParallelBuilder() parallelBuilder

func Pipe

func Pipe(root proto.Dataset, options ...Option) proto.Dataset

Types

type AggregateItem

type AggregateItem struct {
	// contains filtered or unexported fields
}

type AggregateReducer

type AggregateReducer struct {
	AggItems map[int]merge.Aggregator

	Fields            []proto.Field
	OriginColumnCount int
	// contains filtered or unexported fields
}

func NewGroupReducer

func NewGroupReducer(aggFuncMap map[int]func() merge.Aggregator, fields []proto.Field, originColumnCount int) *AggregateReducer

func (*AggregateReducer) Reduce

func (gr *AggregateReducer) Reduce(next proto.Row) error

func (*AggregateReducer) Row

func (gr *AggregateReducer) Row() proto.Row

type FieldsFunc

type FieldsFunc func([]proto.Field) []proto.Field

type FilterDataset

type FilterDataset struct {
	proto.Dataset
	Predicate PredicateFunc
}

func (FilterDataset) Next

func (f FilterDataset) Next() (proto.Row, error)

type FilterDatasetPrefix

type FilterDatasetPrefix struct {
	proto.Dataset
	Predicate PredicateFunc
	Prefix    string
}

func (FilterDatasetPrefix) Next

func (f FilterDatasetPrefix) Next() (proto.Row, error)

type FuseableDataset

type FuseableDataset struct {
	// contains filtered or unexported fields
}

func (*FuseableDataset) Close

func (fu *FuseableDataset) Close() error

func (*FuseableDataset) Fields

func (fu *FuseableDataset) Fields() ([]proto.Field, error)

func (*FuseableDataset) Next

func (fu *FuseableDataset) Next() (proto.Row, error)

func (*FuseableDataset) ToParallel

func (fu *FuseableDataset) ToParallel() RandomAccessDataset

type GenerateFunc

type GenerateFunc func() (proto.Dataset, error)

type GroupDataset

type GroupDataset struct {
	// Should be an orderedDataset
	proto.Dataset
	// contains filtered or unexported fields
}

func (*GroupDataset) Close

func (gd *GroupDataset) Close() error

func (*GroupDataset) Fields

func (gd *GroupDataset) Fields() ([]proto.Field, error)

func (*GroupDataset) Next

func (gd *GroupDataset) Next() (proto.Row, error)

type JoinColumn

type JoinColumn struct {
	// contains filtered or unexported fields
}

func (*JoinColumn) Column

func (j *JoinColumn) Column() string

type Option

type Option func(*pipeOption)

func Filter

func Filter(predicate PredicateFunc) Option

func FilterPrefix

func FilterPrefix(predicate PredicateFunc, prefix string) Option

func GroupReduce

func GroupReduce(groups []OrderByItem, generateFields FieldsFunc, reducer func() Reducer) Option

func Map

func Map(generateFields FieldsFunc, transform TransformFunc) Option

func Reduce

func Reduce(reducers map[int]reduce.Reducer) Option

type OrderByItem

type OrderByItem struct {
	Column string
	Desc   bool
}

type OrderByValue

type OrderByValue struct {
	OrderValues map[string]proto.Value
}

type PeekableDataset

type PeekableDataset interface {
	proto.Dataset
	// Peek peeks the next row, but will not consume it.
	Peek() (proto.Row, error)
}

PeekableDataset represents a peekable dataset.

func Peekable

func Peekable(origin proto.Dataset) PeekableDataset

Peekable converts a dataset to a peekable one.

type PredicateFunc

type PredicateFunc func(proto.Row) bool

type PriorityQueue

type PriorityQueue struct {
	// contains filtered or unexported fields
}

func NewPriorityQueue

func NewPriorityQueue(rows []*RowItem, orderByItems []OrderByItem) *PriorityQueue

func (*PriorityQueue) Len

func (pq *PriorityQueue) Len() int

func (*PriorityQueue) Less

func (pq *PriorityQueue) Less(i, j int) bool

func (*PriorityQueue) Pop

func (pq *PriorityQueue) Pop() interface{}

func (*PriorityQueue) Push

func (pq *PriorityQueue) Push(x interface{})

func (*PriorityQueue) Swap

func (pq *PriorityQueue) Swap(i, j int)

type RandomAccessDataset

type RandomAccessDataset interface {
	PeekableDataset
	// Len returns the length of sub-datasets.
	Len() int
	// PeekN peeks the next row with specified index.
	PeekN(index int) (proto.Row, error)
	// SetNextN force sets the next index of row.
	SetNextN(index int) error
}

func Parallel

func Parallel(first GenerateFunc, others ...GenerateFunc) (RandomAccessDataset, error)

Parallel creates a thread-safe dataset, which can be random-accessed in parallel.

type ReduceDataset

type ReduceDataset struct {
	proto.Dataset
	Reducers map[int]reduce.Reducer // field_index -> aggregator
	// contains filtered or unexported fields
}

func (*ReduceDataset) Next

func (ad *ReduceDataset) Next() (proto.Row, error)

type Reducer

type Reducer interface {
	// Reduce reduces next row.
	Reduce(next proto.Row) error
	// Row returns the result row.
	Row() proto.Row
}

Reducer represents the way to reduce rows.

type RowItem

type RowItem struct {
	// contains filtered or unexported fields
}

type SortMergeJoin

type SortMergeJoin struct {
	// contains filtered or unexported fields
}

SortMergeJoin assume all outer data and inner data are sorted by join column

func NewSortMergeJoin

func NewSortMergeJoin(joinType ast.JoinType, joinColumn *JoinColumn, outer proto.Dataset, inner proto.Dataset) (*SortMergeJoin, error)

func (*SortMergeJoin) Close

func (s *SortMergeJoin) Close() error

func (*SortMergeJoin) DescartesFlag

func (s *SortMergeJoin) DescartesFlag() bool

func (*SortMergeJoin) EqualIndex

func (s *SortMergeJoin) EqualIndex(key string) int

func (*SortMergeJoin) EqualValue

func (s *SortMergeJoin) EqualValue(key string) proto.Row

func (*SortMergeJoin) EqualValueLen

func (s *SortMergeJoin) EqualValueLen(key string) int

func (*SortMergeJoin) Fields

func (s *SortMergeJoin) Fields() ([]proto.Field, error)

func (*SortMergeJoin) LastInnerRow

func (s *SortMergeJoin) LastInnerRow() proto.Row

func (*SortMergeJoin) LastRow

func (s *SortMergeJoin) LastRow() proto.Row

func (*SortMergeJoin) Next

func (s *SortMergeJoin) Next() (proto.Row, error)

func (*SortMergeJoin) NextOuterRow

func (s *SortMergeJoin) NextOuterRow() proto.Row

func (*SortMergeJoin) ResetLastInnerRow

func (s *SortMergeJoin) ResetLastInnerRow()

func (*SortMergeJoin) ResetLastRow

func (s *SortMergeJoin) ResetLastRow()

func (*SortMergeJoin) ResetNextOuterRow

func (s *SortMergeJoin) ResetNextOuterRow()

func (*SortMergeJoin) SetEqualValue

func (s *SortMergeJoin) SetEqualValue(key string, value proto.Row)

func (*SortMergeJoin) SetLastInnerRow

func (s *SortMergeJoin) SetLastInnerRow(v proto.Row)

func (*SortMergeJoin) SetLastRow

func (s *SortMergeJoin) SetLastRow(v proto.Row)

func (*SortMergeJoin) SetNextOuterRow

func (s *SortMergeJoin) SetNextOuterRow(v proto.Row)

type TransformDataset

type TransformDataset struct {
	proto.Dataset
	FieldsGetter FieldsFunc
	Transform    TransformFunc
	// contains filtered or unexported fields
}

func (*TransformDataset) Fields

func (td *TransformDataset) Fields() ([]proto.Field, error)

func (*TransformDataset) Next

func (td *TransformDataset) Next() (proto.Row, error)

type TransformFunc

type TransformFunc func(proto.Row) (proto.Row, error)

type VirtualDataset

type VirtualDataset struct {
	Columns []proto.Field
	Rows    []proto.Row
}

func (*VirtualDataset) Close

func (cu *VirtualDataset) Close() error

func (*VirtualDataset) Fields

func (cu *VirtualDataset) Fields() ([]proto.Field, error)

func (*VirtualDataset) Next

func (cu *VirtualDataset) Next() (proto.Row, error)

Jump to

Keyboard shortcuts

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