Crate egglog_bridge

Crate egglog_bridge 

Source
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

Macros§

add_expressions
define_rule

Structs§

ActionRegistry
A live registry of action handles for use by typed primitives.
EGraph
The state associated with an egglog program.
FunctionConfig
Properties of a function added to an EGraph.
FunctionId
An id representing an egglog function
RuleBuilder
RuleId
An egglog-style rule
ScanEntry
A raw row yielded by a table scan; vals includes the trailing output/eclass column.
TableAction
This is an intern-able struct that holds all the data needed to do table operations with an ExecutionState, assuming that the FunctionId for the table is known ahead of time.
UnionAction
A variant of TableAction for the union-find.

Enums§

ColumnTy
DefaultVal
How defaults are computed for the given function.
Function
MergeFn
How to resolve FD conflicts for a table.
QueryEntry
TableKind
Coarse classification of a table — Constructor mints a fresh eclass id when a row is missed; Function does not. Mirrors the FunctionSubtype split on the egglog side without dragging that type into the bridge crate.

Type Aliases§

Result
SideChannel
A useful type definition for external functions that need to pass data to outside code, such as Panic.