Contents
Welcome to ProvSQL's documentation!
ProvSQL is a PostgreSQL extension that adds semiring provenance and uncertainty management to SQL queries. It transparently rewrites queries to track which input tuples contribute to each result, then evaluates the provenance in any user-chosen semiring -- Boolean reachability, counting, probability, Shapley values, and more.
This documentation is organized into three parts:
- The user-guide explains how to install, configure, and use ProvSQL from the SQL level. Start here if you are new to ProvSQL.
- The dev-guide describes ProvSQL's internal architecture and is aimed at contributors. It covers the PostgreSQL extension concepts ProvSQL relies on, the architecture and component map, the query rewriting pipeline, memory management, the where-provenance and data-modification subsystems, aggregation and semiring evaluation, probability computation, coding conventions, testing, debugging, and the build system.
- The api-ref provides auto-generated reference documentation for the SQL and C/C++ APIs (via Doxygen).