Documentation
¶
Index ¶
- func AppendConditions(ctx context.Context, engine *Engine, filters []string, dialect DialectName, ...) error
- type Column
- type ComparisonCondition
- type ComparisonOperator
- type Condition
- type ConstantCondition
- type ContainsCondition
- type DialectName
- type ElementInCondition
- type Engine
- type Field
- type FieldKind
- type FieldPredicateCondition
- type FieldRef
- type FieldType
- type FunctionValue
- type InCondition
- type LiteralValue
- type LogicalCondition
- type LogicalOperator
- type NotCondition
- type Program
- type RenderOptions
- type Schema
- type Statement
- type ValueExpr
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppendConditions ¶ added in v0.25.2
func AppendConditions(ctx context.Context, engine *Engine, filters []string, dialect DialectName, where *[]string, args *[]any) error
AppendConditions compiles the provided filters and appends the resulting SQL fragments and args.
Types ¶
type ComparisonCondition ¶ added in v0.25.2
type ComparisonCondition struct {
Left ValueExpr
Operator ComparisonOperator
Right ValueExpr
}
ComparisonCondition represents a binary comparison.
type ComparisonOperator ¶ added in v0.25.2
type ComparisonOperator string
ComparisonOperator lists supported comparison operators.
const ( CompareEq ComparisonOperator = "=" CompareNeq ComparisonOperator = "!=" CompareLt ComparisonOperator = "<" CompareLte ComparisonOperator = "<=" CompareGt ComparisonOperator = ">" CompareGte ComparisonOperator = ">=" )
type Condition ¶ added in v0.25.2
type Condition interface {
// contains filtered or unexported methods
}
Condition represents a boolean expression derived from the CEL filter.
type ConstantCondition ¶ added in v0.25.2
type ConstantCondition struct {
Value bool
}
ConstantCondition captures a literal boolean outcome.
type ContainsCondition ¶ added in v0.25.2
ContainsCondition models the <field>.contains(<value>) call.
type DialectName ¶ added in v0.25.2
type DialectName string
DialectName enumerates supported SQL dialects.
const ( DialectSQLite DialectName = "sqlite" DialectMySQL DialectName = "mysql" DialectPostgres DialectName = "postgres" )
type ElementInCondition ¶ added in v0.25.2
ElementInCondition represents the CEL syntax `"value" in field`.
type Engine ¶ added in v0.25.2
type Engine struct {
// contains filtered or unexported fields
}
Engine parses CEL filters into a dialect-agnostic condition tree.
func DefaultEngine ¶ added in v0.25.2
DefaultEngine returns the process-wide memo filter engine.
func (*Engine) Compile ¶ added in v0.25.2
Compile parses the filter string into an executable program.
func (*Engine) CompileToStatement ¶ added in v0.25.2
func (e *Engine) CompileToStatement(ctx context.Context, filter string, opts RenderOptions) (Statement, error)
CompileToStatement compiles and renders the filter in a single step.
type Field ¶ added in v0.25.2
type Field struct {
Name string
Kind FieldKind
Type FieldType
Column Column
JSONPath []string
AliasFor string
SupportsContains bool
Expressions map[DialectName]string
AllowedComparisonOps map[ComparisonOperator]bool
}
Field captures the schema metadata for an exposed CEL identifier.
type FieldPredicateCondition ¶ added in v0.25.2
type FieldPredicateCondition struct {
Field string
}
FieldPredicateCondition asserts that a field evaluates to true.
type FieldRef ¶ added in v0.25.2
type FieldRef struct {
Name string
}
FieldRef references a named schema field.
type FieldType ¶ added in v0.25.2
type FieldType string
FieldType represents the logical type of a field.
type FunctionValue ¶ added in v0.25.2
FunctionValue captures simple function calls like size(tags).
type InCondition ¶ added in v0.25.2
InCondition represents an IN predicate with literal list values.
type LiteralValue ¶ added in v0.25.2
type LiteralValue struct {
Value interface{}
}
LiteralValue holds a literal scalar.
type LogicalCondition ¶ added in v0.25.2
type LogicalCondition struct {
Operator LogicalOperator
Left Condition
Right Condition
}
LogicalCondition composes two conditions with a logical operator.
type LogicalOperator ¶ added in v0.25.2
type LogicalOperator string
LogicalOperator enumerates the supported logical operators.
const ( LogicalAnd LogicalOperator = "AND" LogicalOr LogicalOperator = "OR" )
type NotCondition ¶ added in v0.25.2
type NotCondition struct {
Expr Condition
}
NotCondition negates a child condition.
type Program ¶ added in v0.25.2
type Program struct {
// contains filtered or unexported fields
}
Program stores a compiled filter condition.
func (*Program) ConditionTree ¶ added in v0.25.2
ConditionTree exposes the underlying condition tree.
type RenderOptions ¶ added in v0.25.2
type RenderOptions struct {
Dialect DialectName
PlaceholderOffset int
DisableNullChecks bool
}
RenderOptions configure SQL rendering.
type Schema ¶ added in v0.25.2
Schema collects CEL environment options and field metadata.
func NewSchema ¶ added in v0.25.2
func NewSchema() Schema
NewSchema constructs the memo filter schema and CEL environment.