![]() |
ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
|
Per-query marker context for the inversion-free path, threaded through the recursive query rewrite to reach base inputs nested in subqueries. More...
#include "safe_query.h"

Public Attributes | |
| int | natoms |
| InvFreeMarker * | markers |
| InvFreeMarkerCtx ** | sub |
Per-query marker context for the inversion-free path, threaded through the recursive query rewrite to reach base inputs nested in subqueries.
The detector runs on a flattened copy of the lineage query (single-base SPJ subqueries / views inlined to their base relation in place, so range-table positions are preserved). The resulting per-atom markers are organised into a context tree mirroring the original (un-flattened) query: for range-table position i (0-based), markers[i] is the order marker for a base relation sitting directly at i, while sub[i] is the child context for a flattened subquery at i (whose own base atom carries the marker). Exactly one of markers[i].valid and sub[i]!=NULL holds for a certified atom. A query rewritten with a non-NULL context applies markers to its own base prov Vars and passes sub[i] down when recursing into the subquery at i.
Definition at line 73 of file safe_query.h.
| InvFreeMarker* InvFreeMarkerCtx::markers |
Definition at line 75 of file safe_query.h.
| int InvFreeMarkerCtx::natoms |
Definition at line 74 of file safe_query.h.
| InvFreeMarkerCtx** InvFreeMarkerCtx::sub |
Definition at line 76 of file safe_query.h.