Skip to content

Commit c3f73ec

Browse files
committed
Update release notes: 33 reports, amcheck corruption checks, m1 rename
1 parent eb5f07c commit c3f73ec

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

RELEASE_NOTES.md

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
# postgres_dba 7.0
22

3-
**30 reports** | Tested on **PostgreSQL 13–18** | Works with `pg_monitor` role
3+
**33 reports** | Tested on **PostgreSQL 13–18** | Works with `pg_monitor` role
44

55
## New Reports
66

7-
### c1 — Buffer cache contents
7+
### Corruption checks (c1, c2, c3) — powered by `amcheck`
8+
9+
Three levels of integrity checking, all requiring `CREATE EXTENSION amcheck`:
10+
11+
| Report | Lock | What it checks | When to use |
12+
|--------|------|----------------|-------------|
13+
| **c1** | AccessShareLock | B-tree pages, GIN indexes (PG18+), heap+TOAST (PG14+) | **Production primary** — safe, non-blocking |
14+
| **c2** | ShareLock ⚠️ | B-tree parent-child ordering, sibling pointers, rootdescend, checkunique (PG14+) | **Clones or standbys** — detects glibc/collation corruption |
15+
| **c3** | ShareLock ⚠️⚠️ | Everything in c2 + heapallindexed + verify_heapam with full TOAST | **Clones only** — proves every heap tuple is indexed, slow on large DBs |
16+
17+
All three check system catalog indexes (`pg_catalog`, `pg_toast`) — because catalog corruption is the scariest kind.
18+
19+
Robustness:
20+
- Graceful handling when `amcheck` extension is not installed
21+
- No false corruption reports on insufficient privileges (reports skipped count)
22+
- Version-conditional: uses appropriate function signatures for PG11–18
23+
- GIN support via `gin_index_check()` on PostgreSQL 18+
24+
25+
### m1 — Buffer cache contents
826
What's in your `shared_buffers` right now. Shows cached size vs total size, % of cache used per object, and dirty buffer counts. Requires `pg_buffercache` extension.
927

1028
### s3 — Workload profile by query type
@@ -24,14 +42,14 @@ Categories reorganized for consistency:
2442

2543
| Old | New | Reason |
2644
|-----|-----|--------|
27-
| b6 | **c1** | Buffer cache isn't bloat — moved to new **c** (cache) category |
45+
| b6 | **m1** | Buffer cache **m** (memory) category |
2846
| c1 | **p1** | Index creation progress → **p** (progress) category |
2947
| p1 | **x1** | Alignment padding (experimental) → **x** (experimental) category |
3048

3149
## Bug Fixes
3250

3351
- **i3**: Fixed `operator is not unique` error when `intarray` extension is installed (added explicit `::int2[]` cast)
34-
- **s1, s2**: Fixed `blk_read_time does not exist` error on PostgreSQL 17+ (`blk_read_time`/`blk_write_time` renamed to `shared_blk_read_time`/`shared_blk_write_time` in pg_stat_statements 1.11)
52+
- **s3**: Fixed `function round(double precision, integer) does not exist` — added `::numeric` casts
3553
- **i2**: Removed unused `redundant_indexes_grouped` CTE (dead code)
3654
- **s1**: Removed duplicate `sum(calls)` in the pre-PG13 code path
3755

@@ -51,10 +69,10 @@ Categories reorganized for consistency:
5169
## CI Improvements
5270

5371
- Added `PAGER=cat` to all `psql` invocations (prevents pager hangs)
54-
- Added `intarray` and `pg_buffercache` extensions to test matrix
72+
- Added `intarray`, `pg_buffercache`, and `amcheck` extensions to test matrix
5573
- Added foreign key test tables for i3 regression testing
5674
- Added dedicated i3 regression test with `intarray` installed
5775

5876
## Compatibility
5977

60-
Tested on PostgreSQL 13, 14, 15, 16, 17, and 18 — all 30 reports pass with both superuser and `pg_monitor` roles.
78+
Tested on PostgreSQL 13, 14, 15, 16, 17, and 18 — all 33 reports pass with both superuser and `pg_monitor` roles.

0 commit comments

Comments
 (0)