provsql
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
provsql | 1.2.3 | FEAT | MIT | C++ |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2900 | provsql | No | Yes | Yes | Yes | Yes | No | - |
| Related | uuid-ossp |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.2.3 | 1817161514 | provsql | uuid-ossp |
| RPM | PIGSTY | 1.2.3 | 1817161514 | provsql_$v | - |
| DEB | PIGSTY | 1.2.3 | 1817161514 | postgresql-$v-provsql | - |
Build
You can build the RPM / DEB packages for provsql using pig build:
pig build pkg provsql # build RPM / DEB packages
Install
You can install provsql directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install provsql; # Install for current active PG version
pig ext install -y provsql -v 18 # PG 18
pig ext install -y provsql -v 17 # PG 17
pig ext install -y provsql -v 16 # PG 16
pig ext install -y provsql -v 15 # PG 15
pig ext install -y provsql -v 14 # PG 14
dnf install -y provsql_18 # PG 18
dnf install -y provsql_17 # PG 17
dnf install -y provsql_16 # PG 16
dnf install -y provsql_15 # PG 15
dnf install -y provsql_14 # PG 14
apt install -y postgresql-18-provsql # PG 18
apt install -y postgresql-17-provsql # PG 17
apt install -y postgresql-16-provsql # PG 16
apt install -y postgresql-15-provsql # PG 15
apt install -y postgresql-14-provsql # PG 14
Preload:
shared_preload_libraries = 'provsql';
Create Extension:
CREATE EXTENSION provsql CASCADE; -- requires: uuid-ossp
Usage
Sources: README, getting started, user docs, SQL API index
provsql adds semiring provenance and uncertainty management to PostgreSQL. Upstream documents provenance tracking, semiring evaluation, probabilities, Shapley and Banzhaf values, where-provenance, update provenance, and temporal features.
Load the extension
shared_preload_libraries = 'provsql'
CREATE EXTENSION provsql CASCADE;
The CASCADE form installs uuid-ossp automatically if needed. The getting-started guide says the preload step is mandatory because ProvSQL installs a planner hook.
Enable provenance on tables
SELECT provsql.add_provenance('mytable');
SELECT name, provenance()
FROM mytable;
SELECT provsql.remove_provenance('mytable');
The user docs also describe provenance mappings:
SELECT create_provenance_mapping('my_mapping', 'mytable', 'column_name');
SELECT create_provenance_mapping_view('my_mapping_view', 'mytable', 'column_name');
Probability and semiring workflows
Assign probabilities to tuple tokens:
SELECT set_prob(provenance(), 0.8)
FROM mytable
WHERE id = 1;
Evaluate provenance in a semiring:
SELECT city,
provenance_evaluate(
provenance(),
'personnel_level',
'unclassified'::classification_level,
'security_plus',
'security_times'
)
FROM (SELECT DISTINCT city FROM personnel) AS t;
Compute influence scores:
SELECT shapley(provenance(), m.token)
FROM my_mapping AS m;
The docs also describe shapley_all_vars, banzhaf, and banzhaf_all_vars.
Extra modes
Session GUCs documented upstream include:
SET provsql.where_provenance = on;
SET provsql.update_provenance = on;
The user guide separately documents temporal helpers such as get_valid_time, timetravel, timeslice, history, and undo.
Notes
- Upstream tests ProvSQL on PostgreSQL 10 through 18.
- Git tags show
v1.2.3as the current packaged release in the repository.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.