Expand description
Base fact extraction from a planned project.
Translates the project’s object graph into relational facts consumed by
the Datalog fixed-point computation in super::datalog.
§Base Facts
Each base fact corresponds to a Datalog relation used by the propagation
rules in super::datalog:
| Relation | Source | Meaning |
|---|---|---|
ObjectInSchema(obj, db, sch) | Project hierarchy | Object obj lives in db.sch |
DependsOn(child, parent) | project.dependency_graph | child references parent in its query |
StmtUsesCluster(obj, cluster) | IN CLUSTER clause on main CREATE | Object’s statement runs on cluster |
IndexUsesCluster(obj, idx, cluster) | IN CLUSTER clause on CREATE INDEX | Index idx on obj runs on cluster |
ClusterBoundary(cluster) | Evaluator-derived from cluster usage facts | The set of clusters eligible to become DirtyCluster |
IsSink(obj) | Statement::CreateSink | Object writes to an external system |
IsReplacement(obj) | Schema is in project.replacement_schemas | Object uses in-place replacement protocol |
ClusterBoundary is derived as the set of all clusters referenced by
statements or indexes in the project.
Structs§
- Base
Facts 🔒 - Base facts extracted from the project for Datalog computation.
Functions§
- extract_
base_ 🔒facts - Extract all base facts from the project for Datalog computation.