![]() |
ProvSQL C/C++ API
Adding support for provenance and uncertainty management to PostgreSQL databases
|
| src | |
| semiring | |
| Boolean.h | Boolean semiring ({false, true}, ∨, ∧, false, true) |
| BoolExpr.h | Boolean-expression (lineage formula) semiring |
| Counting.h | Counting semiring (ℕ, +, ×, 0, 1) |
| Formula.h | Symbolic representation of provenance as a human-readable formula |
| How.h | How-provenance m-semiring (canonical polynomial provenance ℕ[X]) |
| IntervalUnion.h | Interval-union m-semiring over PostgreSQL multirange types |
| Lukasiewicz.h | Łukasiewicz fuzzy m-semiring over \([0,1]\) |
| MinMax.h | Min-max and max-min m-semirings over PostgreSQL enum types |
| Semiring.h | Abstract semiring interface for provenance evaluation |
| Tropical.h | Tropical (min-plus) m-semiring over \(\mathbb{R} \cup \{+\infty\}\) |
| Viterbi.h | Viterbi (max-times) m-semiring over \([0,1]\) |
| Which.h | Which-provenance (lineage) m-semiring |
| Why.h | Why-provenance semiring (set of witness sets) |
| agg_token.c | PostgreSQL I/O functions and cast for the agg_token composite type |
| agg_token.h | Aggregate-provenance token type used in SQL aggregate functions |
| AggMarginalEvaluator.cpp | Implementation of the safe-join aggregate marginal-vector pre-pass (COUNT / SUM / MIN / MAX) |
| AggMarginalEvaluator.h | Exact closed-form HAVING COUNT(*) op C probability over safe-join lineage – the recursive marginal-vector engine of the Ré-Suciu HAVING trichotomy (see doc/source/dev/probability-evaluation.rst) |
| Aggregation.cpp | Aggregation operator and accumulator implementations |
| Aggregation.h | Typed aggregation value, operator, and aggregator abstractions |
| aggregation_evaluate.c | SQL function provsql.aggregation_evaluate() – aggregate provenance evaluation |
| AnalyticEvaluator.cpp | Implementation of the closed-form CDF resolution pass |
| AnalyticEvaluator.h | Closed-form CDF resolution for trivial gate_cmp shapes |
| BooleanCircuit.cpp | Boolean circuit implementation and evaluation algorithms |
| BooleanCircuit.h | Boolean provenance circuit with support for knowledge compilation |
| c_cpp_compatibility.h | Fix macro conflicts between PostgreSQL headers and the C++ STL/Boost |
| CertifiedDDMaterialize.cpp | Implementation of certified-d-D materialisation into the store |
| CertifiedDDMaterialize.h | Content-addressed materialisation of a certified d-D into the mmap provenance store |
| Circuit.h | Generic directed-acyclic-graph circuit template and gate identifier |
| Circuit.hpp | Out-of-line template method implementations for Circuit<gateType> |
| circuit_cache.h | C-linkage interface to the in-process provenance circuit cache |
| CircuitCache.cpp | LRU circuit-gate cache implementation and C-linkage wrappers |
| CircuitCache.h | LRU in-process cache for recently created provenance circuit gates |
| CircuitFromMMap.cpp | Build in-memory circuits from the mmap-backed store |
| CircuitFromMMap.h | Build in-memory circuits from the mmap-backed persistent store |
| classify_query.c | Query-time TID / BID / OPAQUE classifier |
| classify_query.h | Public surface of the query-time TID / BID / OPAQUE classifier |
| CmpEvaluatorCommon.cpp | Implementation of the shared HAVING gate_cmp evaluator machinery |
| CmpEvaluatorCommon.h | Shared machinery for the closed-form HAVING gate_cmp probability evaluators (Poisson-binomial COUNT, MIN / MAX…) |
| compatibility.c | Backport implementations for missing PostgreSQL API functions |
| compatibility.h | PostgreSQL cross-version compatibility shims for ProvSQL |
| compile_to_ddnnf.cpp | SQL function provsql.compile_to_ddnnf() – return the compiled d-DNNF of a provenance circuit as c2d / d4 ".nnf" text |
| compile_to_ddnnf_dot.cpp | SQL function provsql.compile_to_ddnnf_dot() – render the compiled d-DNNF of a provenance circuit as GraphViz DOT |
| CountCmpEvaluator.cpp | Implementation of the Poisson-binomial pre-pass |
| CountCmpEvaluator.h | Closed-form Poisson-binomial CDF resolution for HAVING COUNT(*) op C gate_cmps |
| dDNNF.cpp | D-DNNF circuit operations and evaluation algorithms |
| dDNNF.h | Decomposable Deterministic Negation Normal Form circuit |
| ddnnf_stats.cpp | SQL function provsql.ddnnf_stats() – structural statistics of the d-DNNF a given compiler produces for a provenance circuit |
| dDNNFTreeDecompositionBuilder.cpp | D-DNNF construction from a Boolean circuit and its tree decomposition |
| dDNNFTreeDecompositionBuilder.h | Constructs a d-DNNF from a Boolean circuit and its tree decomposition |
| dimacs_cnf.cpp | Implementation of the DIMACS-CNF to BooleanCircuit parser |
| dimacs_cnf.h | Parse a DIMACS CNF into a ProvSQL BooleanCircuit |
| DotCircuit.cpp | DotCircuit method implementations and GraphViz rendering |
| DotCircuit.h | Provenance circuit variant that renders to GraphViz DOT format |
| DTree.cpp | Implementation of the d-tree anytime interval-bounds engine |
| DTree.h | Anytime interval-bounds probability for monotone DNFs (d-trees) |
| Expectation.cpp | Implementation of the analytical expectation / variance / moment evaluator over scalar RV sub-circuits |
| Expectation.h | Analytical expectation / variance / moment evaluator over RV circuits |
| external_tool.cpp | Implementation of the external-tool helpers |
| external_tool.h | Helpers for invoking external command-line tools |
| flat_map.hpp | Flat (unsorted, contiguous-storage) associative map template |
| flat_set.hpp | Flat (unsorted, contiguous-storage) set template |
| GenericCircuit.cpp | GenericCircuit method implementations |
| GenericCircuit.h | Semiring-agnostic in-memory provenance circuit |
| GenericCircuit.hpp | Template implementation of GenericCircuit::evaluate() |
| Graph.h | Undirected graph used in tree-decomposition computations |
| having_semantics.cpp | Helper definitions for HAVING-clause provenance evaluation |
| having_semantics.hpp | Provenance evaluation helper for HAVING-clause circuits |
| HybridEvaluator.cpp | Implementation of the peephole simplifier |
| HybridEvaluator.h | Peephole simplifier for continuous gate_arith sub-circuits |
| joint_width_query.c | Implementation of the planner-time UCQ recogniser (descriptor extraction) |
| joint_width_query.h | Planner-time recognition of unsafe UCQs for the joint-width compiler |
| JointEncoding.cpp | The data-graph fast-path encoding |
| JointEncoding.h | Phase A of the joint-width UCQ compiler: assemble the joint graph of the data and its correlation structure, and the per-fact gating information the homomorphism DP consumes |
| kcmcp_client.cpp | Implementation of the in-extension KCMCP client (see kcmcp_client.h) |
| kcmcp_client.h | In-extension KCMCP client: compile a Boolean problem on a warm, socket-attached knowledge compiler instead of spawning a CLI tool |
| kcmcp_protocol.cpp | Implementation of the KCMCP wire codec (see kcmcp_protocol.h) |
| kcmcp_protocol.h | Wire codec for KCMCP, the Knowledge Compiler / Model Counter Protocol (see doc/source/dev/kc-server-protocol.rst) |
| kcmcp_server.cpp | Implementation of the tdkc KCMCP reference server (see kcmcp_server.h and doc/source/dev/kc-server-protocol.rst) |
| kcmcp_server.h | The tdkc KCMCP reference server |
| kcmcp_supervisor.c | Background worker that launches and supervises the managed KCMCP knowledge-compiler server (the "managed mode" of the KCMCP client) |
| MappedRegion.h | File-backed memory region with two interchangeable backends |
| MinMaxCmpEvaluator.cpp | Implementation of the MIN / MAX closed-form pre-pass |
| MinMaxCmpEvaluator.h | Closed-form probability resolution for HAVING MIN(a) op C and MAX(a) op C gate_cmps |
| MMappedCircuit.cpp | Persistent mmap-backed circuit: implementation and background-worker entry points |
| MMappedCircuit.h | Persistent, mmap-backed storage for the full provenance circuit |
| MMappedTableInfo.h | Per-table provenance metadata persisted alongside the circuit store |
| MMappedUUIDHashTable.cpp | Open-addressing hash table over a memory-mapped file: implementation |
| MMappedUUIDHashTable.h | Open-addressing hash table mapping UUIDs to integers, backed by an mmap file |
| MMappedVector.h | Append-only vector template backed by a memory-mapped file |
| MMappedVector.hpp | Template implementation of MMappedVector<T> |
| mobius_evaluate.cpp | Möbius-inversion exact route for safe UCQs (the last missing exact route of the Dalvi-Suciu dichotomy) |
| mobius_evaluate.h | Shared declaration for the Möbius-route probability sweep |
| MonteCarloSampler.cpp | Implementation of the RV-aware Monte Carlo sampler |
| MonteCarloSampler.h | Monte Carlo sampling over a GenericCircuit, RV-aware |
| PermutationStrategy.h | Priority-queue-based node-elimination ordering for tree decomposition |
| probability_evaluate.cpp | SQL function provsql.probability_evaluate() – probabilistic circuit evaluation |
| ProbabilityMethod.h | Catalog of probability-evaluation methods (Strategy + registry) |
| provenance.c | SQL function provenance() – error stub for untracked tables |
| provenance_evaluate.c | SQL function provsql.provenance_evaluate() – semiring evaluation |
| provenance_evaluate_compiled.cpp | SQL function provsql.provenance_evaluate_compiled() – C++ semiring evaluation |
| provenance_evaluate_compiled.hpp | Template helper for populating provenance mappings from SPI results |
| provsql.c | PostgreSQL planner hook for transparent provenance tracking |
| provsql_config.h | Build-configuration switches shared across the C and C++ sources |
| provsql_error.h | Uniform error-reporting macros for ProvSQL |
| provsql_migrate_mmap.cpp | Migrate old flat provsql mmap files to the per-database layout |
| provsql_mmap.c | Background worker registration and IPC primitives for mmap-backed storage |
| provsql_mmap.h | Background worker and IPC primitives for mmap-backed circuit storage |
| provsql_shmem.c | Shared-memory segment lifecycle and LWLock management |
| provsql_shmem.h | Shared-memory segment and inter-process pipe management |
| provsql_utils.c | OID lookup, constants cache, and utility functions for ProvSQL |
| provsql_utils.h | Core types, constants, and utilities shared across ProvSQL |
| provsql_utils_cpp.cpp | C++ UUID utility function implementations |
| provsql_utils_cpp.h | C++ utility functions for UUID manipulation |
| qual_classify.c | Implementation of the shared predicate-tree classification helpers |
| qual_classify.h | Predicate-tree classification helpers shared by the query rewriters (the safe-query rewrite and the joint-width UCQ recogniser) |
| random_variable_type.c | PostgreSQL I/O and constructor functions for the random_variable type |
| RandomVariable.cpp | Implementation of distribution parsing/formatting/moments |
| RandomVariable.h | Continuous random-variable helpers (distribution parsing, moments) |
| RangeCheck.cpp | Implementation of the support-based bound check pass |
| RangeCheck.h | Support-based bound check for continuous-RV comparators |
| reachability_evaluate.cpp | SQL entry points for decomposition-aligned reachability compilation over bounded-treewidth data |
| ReachabilityCompiler.cpp | Implementation of the decomposition-aligned reachability compiler |
| ReachabilityCompiler.h | Decomposition-aligned compilation of two-terminal reachability over bounded-treewidth data into a d-D |
| RvAnalyticalCurves.cpp | SQL function provsql.rv_analytical_curves(token, samples, prov) |
| RvHistogram.cpp | SQL function provsql.rv_histogram(token, bins) |
| RvSample.cpp | SQL function provsql.rv_sample(token, n, prov) |
| safe_query.c | Hierarchical-CQ rewriter for the 'boolean' provenance class (provsql.provenance GUC) |
| safe_query.h | Public surface of the safe-query (hierarchical-CQ) rewriter |
| safe_query_cert.c | Serialise / parse for the inversion-free tractability certificate |
| safe_query_cert.h | Tractability certificate for the inversion-free UCQ(OBDD) path |
| scoped_tempdir.h | |
| shapley.cpp | SQL functions for Shapley and Banzhaf power-index computation |
| SimplifiedSubgraph.cpp | SQL function provsql.simplified_circuit_subgraph() |
| StructuredDNNF.cpp | Implementation of the structured-d-DNNF builder (see StructuredDNNF.h) |
| StructuredDNNF.h | In-process structured-d-DNNF construction over a query-derived variable order, for the inversion-free UCQ(OBDD) probability path |
| subset.cpp | Valid-world enumeration for aggregate HAVING predicates |
| subset.hpp | Enumerate tuple subsets satisfying an aggregate HAVING predicate |
| SumCmpEvaluator.cpp | Implementation of the weighted-sum DP pre-pass |
| SumCmpEvaluator.h | Closed-form probability resolution for HAVING SUM(a) op C gate_cmps via a weighted-sum DP |
| tdkc_interrupt.h | Build-loop interrupt hook for the standalone tdkc binary |
| to_prov.cpp | SQL function provsql.to_provxml() – XML/JSON circuit export |
| tool_available.cpp | SQL function provsql.tool_available() – report whether an external tool is on the backend's resolved PATH |
| tool_registry_sql.cpp | SQL surface for the external-tool registry (ToolRegistry.h) |
| tool_registry_sync.h | Reload the in-memory external-tool registry from its persistent overrides |
| ToolRegistry.cpp | Seed and mutation logic for the external-tool registry |
| ToolRegistry.h | In-memory catalog of the external tools ProvSQL can invoke |
| tree_decomposition_dot.cpp | SQL function provsql.tree_decomposition_dot() – return a GraphViz DOT visualisation of the tree decomposition of the provenance circuit's primal graph |
| TreeDecomposition.cpp | Tree decomposition construction, manipulation, and I/O |
| TreeDecomposition.h | Tree decomposition of a Boolean circuit for knowledge compilation |
| TreeDecompositionKnowledgeCompiler.cpp | Standalone tdkc tool: tree-decomposition-based knowledge compiler |
| tseytin_cnf.cpp | SQL function provsql.tseytin_cnf() – return the DIMACS CNF produced by the Tseytin transformation of a provenance circuit |
| ucq_joint_evaluate.cpp | SQL entry points for the joint-width UCQ compiler |
| UCQJointCompiler.cpp | Implementation of the joint-width UCQ compiler's homomorphism DP (data-graph regime) |
| UCQJointCompiler.h | Phase C of the joint-width UCQ compiler: a UCQ-specialised homomorphism-type DP that runs directly over a tree decomposition of the joint encoding, emitting a certified d-D (deterministic, decomposable circuit) by construction |
| view_circuit.cpp | SQL function provsql.view_circuit() – GraphViz DOT circuit visualisation |
| where_provenance.cpp | SQL function provsql.where_provenance() – column-level provenance |
| WhereCircuit.cpp | WhereCircuit method implementations and where-provenance evaluation |
| WhereCircuit.h | Where-provenance circuit tracking column-level data origin |
