ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
Loading...
Searching...
No Matches
safe_proj_slot Struct Reference

One projected column of an atom's wrapping subquery. More...

Public Attributes

AttrNumber base_attno
int class_id
AttrNumber outer_attno
 1-based column in the inner sub-Query's targetList (or per-atom DISTINCT wrap for outer-wrap atoms). Matches the slot's position in the atom's proj_slots for outer-wrap atoms, for first-member grouped atoms, and for shared slots on non-first-member grouped atoms. Differs for singleton head Vars on non-first-members: those get the next position in the group's unified inner targetList after all earlier members' slots.

Detailed Description

One projected column of an atom's wrapping subquery.

base_attno is the column of the base relation that supplies this slot. class_id is the variable-equivalence-class representative index from the union-find; only shared classes (those touching at least two atoms) ever appear as slots, of which the root class is one.

The output column number of the slot inside the inner SELECT DISTINCT is the 1-based position of the slot in its atom's proj_slots list; the root-class slot is always first, so its output attno is 1.

Definition at line 268 of file safe_query.c.

Member Data Documentation

◆ base_attno

AttrNumber safe_proj_slot::base_attno

Definition at line 269 of file safe_query.c.

◆ class_id

int safe_proj_slot::class_id

Definition at line 270 of file safe_query.c.

◆ outer_attno

AttrNumber safe_proj_slot::outer_attno

1-based column in the inner sub-Query's targetList (or per-atom DISTINCT wrap for outer-wrap atoms). Matches the slot's position in the atom's proj_slots for outer-wrap atoms, for first-member grouped atoms, and for shared slots on non-first-member grouped atoms. Differs for singleton head Vars on non-first-members: those get the next position in the group's unified inner targetList after all earlier members' slots.

Definition at line 271 of file safe_query.c.


The documentation for this struct was generated from the following file: