ProvSQL SQL API
Adding support for provenance and uncertainty management to PostgreSQL databases
Loading...
Searching...
No Matches

Reset the internal cache of OID constants used by the query rewriter. More...

Topics

 choose aggregate
 Evaluate provenance as a symbolic formula (e.g., "a ⊗ b ⊕ c").

Functions

VARCHAR sr_formula (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance as a symbolic formula (e.g., "a ⊗ b ⊕ c").
INT sr_counting (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance over the counting semiring (ℕ).
VARCHAR sr_why (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance as why-provenance (set of witness sets).
VARCHAR sr_how (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance as how-provenance (canonical polynomial provenance ℕ[X], universal commutative-semiring provenance).
VARCHAR sr_which (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance as which-provenance (lineage: a single set of contributing labels).
VARCHAR sr_boolexpr (ANYELEMENT token, REGCLASS token2value=NULL)
 Evaluate provenance as a Boolean expression.
BOOLEAN sr_boolean (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance over the Boolean semiring (true/false).
FLOAT sr_tropical (ANYELEMENT token, REGCLASS token2value, BOOLEAN nonnegative=false)
 Evaluate provenance over the tropical (min-plus) m-semiring.
FLOAT sr_viterbi (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance over the Viterbi (max-times) m-semiring.
FLOAT sr_lukasiewicz (ANYELEMENT token, REGCLASS token2value)
 Evaluate provenance over the Łukasiewicz fuzzy m-semiring.
ANYENUM sr_minmax (UUID token, REGCLASS token2value, ANYENUM element_one)
 Evaluate provenance over the min-max m-semiring on a user ENUM.
ANYENUM sr_maxmin (UUID token, REGCLASS token2value, ANYENUM element_one)
 Evaluate provenance over the max-min m-semiring on a user ENUM.

Detailed Description

Reset the internal cache of OID constants used by the query rewriter.

Definitions of compiled semirings.

Source code
provsql.sql line 6934

Types of update operations tracked for temporal provenance

Definitions of compiled semirings

Function Documentation

◆ sr_boolean()

BOOLEAN update_provenance::sr_boolean ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance over the Boolean semiring (true/false).

Source code
provsql.sql line 7051

◆ sr_boolexpr()

VARCHAR update_provenance::sr_boolexpr ( ANYELEMENT token,
REGCLASS token2value = NULL )

Evaluate provenance as a Boolean expression.

The optional token2value mapping labels the leaves of the formula: when omitted, leaves are rendered as bare x<id> placeholders.

Source code
provsql.sql line 7034

◆ sr_counting()

INT update_provenance::sr_counting ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance over the counting semiring (ℕ).

Source code
provsql.sql line 6973

◆ sr_formula()

VARCHAR update_provenance::sr_formula ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance as a symbolic formula (e.g., "a ⊗ b ⊕ c").

Source code
provsql.sql line 6959

◆ sr_how()

VARCHAR update_provenance::sr_how ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance as how-provenance (canonical polynomial provenance ℕ[X], universal commutative-semiring provenance).

Source code
provsql.sql line 7001

◆ sr_lukasiewicz()

FLOAT update_provenance::sr_lukasiewicz ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance over the Łukasiewicz fuzzy m-semiring.

Inputs are read as float8 graded-truth values in \([0,1]\). Addition is \(\max\); multiplication is the Łukasiewicz t-norm \(\max(a + b - 1, 0)\), which preserves crisp truth and avoids the near-zero collapse of long product chains.

Source code
provsql.sql line 7115

◆ sr_maxmin()

ANYENUM update_provenance::sr_maxmin ( UUID token,
REGCLASS token2value,
ANYENUM element_one )

Evaluate provenance over the max-min m-semiring on a user ENUM.

Dual of :sqlfunc:sr_minmax: addition is ENUM-max, multiplication is ENUM-min. The fuzzy / availability / trust shape: alternatives combine to the most permissive label, joins combine to the strictest label. The third argument is a sample value of the carrier ENUM, used only for type inference; its value is ignored.

Parameters
tokenProvenance token to evaluate.
token2valueMapping from input gates to ENUM values.
element_oneSample value of the carrier ENUM (any value works).
Source code
provsql.sql line 7168

◆ sr_minmax()

ANYENUM update_provenance::sr_minmax ( UUID token,
REGCLASS token2value,
ANYENUM element_one )

Evaluate provenance over the min-max m-semiring on a user ENUM.

Inputs are read as values of a user-defined ENUM carrier; addition is ENUM-min, multiplication is ENUM-max. Bottom and top of the ENUM are derived from pg_enum.enumsortorder. The third argument is a sample value of the carrier ENUM, used only for type inference; its value is ignored.

The security shape: alternative derivations combine to the least sensitive label, joins combine to the most sensitive label.

Parameters
tokenProvenance token to evaluate.
token2valueMapping from input gates to ENUM values.
element_oneSample value of the carrier ENUM (any value works).
Source code
provsql.sql line 7143

◆ sr_tropical()

FLOAT update_provenance::sr_tropical ( ANYELEMENT token,
REGCLASS token2value,
BOOLEAN nonnegative = false )

Evaluate provenance over the tropical (min-plus) m-semiring.

Inputs are read as float8 cost values; the additive identity is 'Infinity'::float8 and the multiplicative identity is 0. Returns the cost of the cheapest derivation.

With nonnegative, input costs are checked nonnegative and the semiring is absorptive: evaluation then also accepts circuits carrying the 'absorptive' assumption marker – notably cyclic recursive queries truncated at the absorptive value fixpoint, giving exact min-cost reachability on cyclic data.

Source code
provsql.sql line 7076

◆ sr_viterbi()

FLOAT update_provenance::sr_viterbi ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance over the Viterbi (max-times) m-semiring.

Inputs are read as float8 probability values in \([0,1]\). Returns the probability of the most likely derivation.

Source code
provsql.sql line 7095

◆ sr_which()

VARCHAR update_provenance::sr_which ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance as which-provenance (lineage: a single set of contributing labels).

Source code
provsql.sql line 7015

◆ sr_why()

VARCHAR update_provenance::sr_why ( ANYELEMENT token,
REGCLASS token2value )

Evaluate provenance as why-provenance (set of witness sets).

Source code
provsql.sql line 6987