Documentation
¶
Index ¶
- Variables
- func BinaryScalarOperation(left parquet.ColumnChunk, right parquet.Value, operator logicalplan.Op) (bool, error)
- func Max(columnIndex parquet.ColumnIndex) parquet.Value
- func Min(columnIndex parquet.ColumnIndex) parquet.Value
- func NullCount(columnIndex parquet.ColumnIndex) int64
- type AlwaysTrueFilter
- type AndExpr
- type BinaryScalarExpr
- type ColumnRef
- type MaxAgg
- type OrExpr
- type Particulate
- type PreExprVisitorFunc
- type TrueNegativeFilter
Constants ¶
This section is empty.
Variables ¶
var ErrUnsupportedBinaryOperation = errors.New("unsupported binary operation")
Functions ¶
func BinaryScalarOperation ¶
func BinaryScalarOperation(left parquet.ColumnChunk, right parquet.Value, operator logicalplan.Op) (bool, error)
BinaryScalarOperation applies the given operator between the given column chunk and value. If BinaryScalarOperation returns true, it means that the operator may be satisfied by at least one value in the column chunk. If it returns false, it means that the operator will definitely not be satisfied by any value in the column chunk.
func Max ¶
func Max(columnIndex parquet.ColumnIndex) parquet.Value
Max returns the maximum value found in the column chunk across all pages.
func Min ¶
func Min(columnIndex parquet.ColumnIndex) parquet.Value
Min returns the minimum value found in the column chunk across all pages.
func NullCount ¶
func NullCount(columnIndex parquet.ColumnIndex) int64
Types ¶
type AlwaysTrueFilter ¶
type AlwaysTrueFilter struct{}
func (*AlwaysTrueFilter) Eval ¶
func (f *AlwaysTrueFilter) Eval(_ Particulate) (bool, error)
type AndExpr ¶
type AndExpr struct {
Left TrueNegativeFilter
Right TrueNegativeFilter
}
type BinaryScalarExpr ¶
type BinaryScalarExpr struct {
Left *ColumnRef
Op logicalplan.Op
Right parquet.Value
}
func (BinaryScalarExpr) Eval ¶
func (e BinaryScalarExpr) Eval(p Particulate) (bool, error)
type ColumnRef ¶
type ColumnRef struct {
ColumnName string
}
func (*ColumnRef) Column ¶
func (c *ColumnRef) Column(p Particulate) (parquet.ColumnChunk, bool, error)
type OrExpr ¶
type OrExpr struct {
Left TrueNegativeFilter
Right TrueNegativeFilter
}
type Particulate ¶
type Particulate interface {
Schema() *parquet.Schema
ColumnChunks() []parquet.ColumnChunk
}
Particulate is an abstraction of something that can be filtered. A parquet.RowGroup is a particulate that is able to be filtered, and wrapping a parquet.File with ParquetFileParticulate allows a file to be filtered.
type PreExprVisitorFunc ¶
type PreExprVisitorFunc func(expr logicalplan.Expr) bool
func (PreExprVisitorFunc) PostVisit ¶
func (f PreExprVisitorFunc) PostVisit(_ logicalplan.Expr) bool
func (PreExprVisitorFunc) PreVisit ¶
func (f PreExprVisitorFunc) PreVisit(expr logicalplan.Expr) bool
func (PreExprVisitorFunc) Visit ¶
func (f PreExprVisitorFunc) Visit(_ logicalplan.Expr) bool
type TrueNegativeFilter ¶
type TrueNegativeFilter interface {
// Eval should be safe to call concurrently.
Eval(Particulate) (bool, error)
}
func BooleanExpr ¶
func BooleanExpr(expr logicalplan.Expr) (TrueNegativeFilter, error)