expressions

package
v0.0.0-...-b19370d Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Conjunctions

func Conjunctions(e impls.Expression) []impls.Expression

func Disjunctions

func Disjunctions(e impls.Expression) []impls.Expression

func Fields

func Fields(expr impls.Expression) []fields.Field

func FilterDifference

func FilterDifference(filter, childFilter impls.Expression) impls.Expression

func FilterIntersection

func FilterIntersection(filter, childFilter impls.Expression) impls.Expression

func NewAddition

func NewAddition(left, right impls.Expression) impls.Expression

func NewAnd

func NewAnd(left, right impls.Expression) impls.Expression

func NewBetween

func NewBetween(left, middle, right impls.Expression) impls.Expression

func NewBetweenSymmetric

func NewBetweenSymmetric(left, middle, right impls.Expression) impls.Expression

func NewConcat

func NewConcat(left, right impls.Expression) impls.Expression

func NewConstant

func NewConstant(value any) impls.Expression

func NewDivision

func NewDivision(left, right impls.Expression) impls.Expression

func NewEquals

func NewEquals(left, right impls.Expression) impls.Expression

func NewFunction

func NewFunction(name string, args []impls.Expression) impls.Expression

func NewGreaterThan

func NewGreaterThan(left, right impls.Expression) impls.Expression

func NewGreaterThanEquals

func NewGreaterThanEquals(left, right impls.Expression) impls.Expression

func NewILike

func NewILike(left, right impls.Expression) impls.Expression

func NewIsDistinctFrom

func NewIsDistinctFrom(left, right impls.Expression) impls.Expression

func NewIsFalse

func NewIsFalse(expression impls.Expression) impls.Expression

func NewIsNull

func NewIsNull(expression impls.Expression) impls.Expression

func NewIsTrue

func NewIsTrue(expression impls.Expression) impls.Expression

func NewIsUnknown

func NewIsUnknown(expression impls.Expression) impls.Expression

func NewLessThan

func NewLessThan(left, right impls.Expression) impls.Expression

func NewLessThanEquals

func NewLessThanEquals(left, right impls.Expression) impls.Expression

func NewLike

func NewLike(left, right impls.Expression) impls.Expression

func NewMultiplication

func NewMultiplication(left, right impls.Expression) impls.Expression

func NewNamed

func NewNamed(field fields.Field) impls.Expression

func NewNot

func NewNot(expression impls.Expression) impls.Expression

func NewOr

func NewOr(left, right impls.Expression) impls.Expression

func NewOrderExpression

func NewOrderExpression(expressions []impls.ExpressionWithDirection) impls.OrderExpression

func NewSubtraction

func NewSubtraction(left, right impls.Expression) impls.Expression

func NewUnaryMinus

func NewUnaryMinus(expression impls.Expression) impls.Expression

func NewUnaryPlus

func NewUnaryPlus(expression impls.Expression) impls.Expression

func PartitionAggregatedFieldReferences

func PartitionAggregatedFieldReferences(
	ctx impls.Cataloger,
	exprs []impls.Expression,
	groupings []impls.Expression,
) (
	aggregatedFields []fields.Field,
	nonAggregatedFields []fields.Field,
	containsAggregate bool,
	_ error,
)

func SubsumesOrder

func SubsumesOrder(a, b impls.OrderExpression) bool

func UnionFilters

func UnionFilters(filters ...impls.Expression) impls.Expression

func UnwrapAggregate

func UnwrapAggregate(ctx impls.Cataloger, expr impls.Expression) (impls.Aggregate, []impls.Expression, bool)

Types

type ArithmeticType

type ArithmeticType int
const (
	ArithmeticTypeUnknown ArithmeticType = iota
	ArithmeticTypeAddition
	ArithmeticTypeSubtraction
	ArithmeticTypeMultiplication
	ArithmeticTypeDivision
)

func ArithmeticTypeFromString

func ArithmeticTypeFromString(operator string) ArithmeticType

func IsArithmetic

func IsArithmetic(expr impls.Expression) (_ ArithmeticType, left, right impls.Expression)

func (ArithmeticType) IsSymmetric

func (at ArithmeticType) IsSymmetric() bool

func (ArithmeticType) String

func (at ArithmeticType) String() string

type ComparisonType

type ComparisonType int
const (
	ComparisonTypeUnknown ComparisonType = iota
	ComparisonTypeEquals
	ComparisonTypeDistinctFrom
	ComparisonTypeLessThanEquals
	ComparisonTypeLessThan
	ComparisonTypeGreaterThanEquals
	ComparisonTypeGreaterThan
)

func ComparisonTypeFromString

func ComparisonTypeFromString(operator string) ComparisonType

func IsComparison

func IsComparison(expr impls.Expression) (_ ComparisonType, left, right impls.Expression)

func (ComparisonType) Flip

func (ct ComparisonType) Flip() ComparisonType

func (ComparisonType) MatchesOrderType

func (ct ComparisonType) MatchesOrderType(lVal, rVal any) (bool, error)

func (ComparisonType) String

func (ct ComparisonType) String() string

type CompositeExpression

type CompositeExpression interface {
	Children() []impls.Expression
}

type ConstantPlaceholder

type ConstantPlaceholder interface {
	impls.Expression
	SetValue(value any)
}

func NewMutableConstant

func NewMutableConstant() ConstantPlaceholder

type NamedExpression

type NamedExpression interface {
	Field() fields.Field
}

Jump to

Keyboard shortcuts

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