Expand description
An implementation of egglog-style queries on top of core-relations.
This module translates a well-typed egglog-esque query into the abstractions
from the core-relations crate. The main higher-level functionality that it
implements are seminaive evaluation, default values, and merge functions.
This crate is essentially involved in desugaring: it elaborates the encoding of core egglog functionality, but it does not implement algorithms for joins, union-finds, etc.
Modules§
Macros§
Structs§
- Action
Registry - A live registry of action handles for use by typed primitives.
- EGraph
- The state associated with an egglog program.
- Function
Config - Properties of a function added to an
EGraph. - Function
Id - An id representing an egglog function
- Rule
Builder - RuleId
- An egglog-style rule
- Scan
Entry - A raw row yielded by a table scan;
valsincludes the trailing output/eclass column. - Table
Action - This is an intern-able struct that holds all the data needed
to do table operations with an
ExecutionState, assuming that theFunctionIdfor the table is known ahead of time. - Union
Action - A variant of
TableActionfor the union-find.
Enums§
- Column
Ty - Default
Val - How defaults are computed for the given function.
- Function
- MergeFn
- How to resolve FD conflicts for a table.
- Query
Entry - Table
Kind - Coarse classification of a table —
Constructormints a fresh eclass id when a row is missed;Functiondoes not. Mirrors theFunctionSubtypesplit on the egglog side without dragging that type into the bridge crate.
Type Aliases§
- Result
- Side
Channel - A useful type definition for external functions that need to pass data
to outside code, such as
Panic.