pg_upless
Detect Useless UPDATE
Repository
rodo/pg_upless
https://github.com/rodo/pg_upless
Source
pg_upless-0.0.3.tar.gz
pg_upless-0.0.3.tar.gz
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_upless | 0.0.3 | ADMIN | PostgreSQL | SQL |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 5180 | pg_upless | No | No | No | Yes | Yes | No | - |
| Related | plpgsql pg_readonly pg_savior safeupdate pg_permissions pgaudit set_user pg_drop_events table_log |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.0.3 | 1817161514 | pg_upless | plpgsql |
| RPM | PIGSTY | 0.0.3 | 1817161514 | pg_upless_$v | - |
| DEB | PIGSTY | 0.0.3 | 1817161514 | postgresql-$v-pg-upless | - |
Build
You can build the RPM / DEB packages for pg_upless using pig build:
pig build pkg pg_upless # build RPM / DEB packages
Install
You can install pg_upless 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 pg_upless; # Install for current active PG version
pig ext install -y pg_upless -v 18 # PG 18
pig ext install -y pg_upless -v 17 # PG 17
pig ext install -y pg_upless -v 16 # PG 16
pig ext install -y pg_upless -v 15 # PG 15
pig ext install -y pg_upless -v 14 # PG 14
dnf install -y pg_upless_18 # PG 18
dnf install -y pg_upless_17 # PG 17
dnf install -y pg_upless_16 # PG 16
dnf install -y pg_upless_15 # PG 15
dnf install -y pg_upless_14 # PG 14
apt install -y postgresql-18-pg-upless # PG 18
apt install -y postgresql-17-pg-upless # PG 17
apt install -y postgresql-16-pg-upless # PG 16
apt install -y postgresql-15-pg-upless # PG 15
apt install -y postgresql-14-pg-upless # PG 14
Create Extension:
CREATE EXTENSION pg_upless CASCADE; -- requires: plpgsql
Usage
pg_upless detects UPDATE statements that change no actual values (common with ORMs). It works by installing triggers on monitored tables and collecting statistics. It is intended as a diagnostic tool, not for permanent use.
Start Monitoring
-- Monitor a specific table
SELECT pg_upless_start('public', 'boats');
-- Monitor all tables in a schema
SELECT pg_upless_start('public');
Stop Monitoring
-- Stop monitoring a specific table
SELECT pg_upless_stop('public', 'boats');
-- Stop monitoring all tables in a schema
SELECT pg_upless_stop('public');
View Statistics
The extension creates two tables in the pg_upless schema:
pg_upless_stats– stores counts of total vs useless updates per tablepg_upless_start_time– records when monitoring started (for rate calculations)
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.