@yawlabs/postgres-mcp 0.6.5 → 0.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +71 -0
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,77 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.6.10] - 2026-05-16
|
|
11
|
+
|
|
12
|
+
### Infrastructure
|
|
13
|
+
- Republishes the 0.6.7-0.6.9 coverage additions, which never reached
|
|
14
|
+
npm. The `pg_top_queries orderBy=calls` numeric-vs-lexical ordering
|
|
15
|
+
test was removed after three round-trips trying to make it
|
|
16
|
+
environment-independent. pg_stat_statements on PG17/18 fingerprints
|
|
17
|
+
`SELECT 1 AS x_a` and `SELECT 2 AS x_b` to the same query id (column
|
|
18
|
+
aliases drop out of the jumble even though they're preserved in the
|
|
19
|
+
displayed text), so two markers with different aliases collapse to
|
|
20
|
+
one entry and the ordering assertion has nothing to compare. Local
|
|
21
|
+
WSL clusters differentiate; CI doesn't. The alias-shadowing trap at
|
|
22
|
+
`stats.ts:60-67` remains documented at the call site and the other
|
|
23
|
+
six coverage additions are unaffected.
|
|
24
|
+
|
|
25
|
+
## [0.6.9] - 2026-05-16 [UNPUBLISHED]
|
|
26
|
+
|
|
27
|
+
Tagged but never published to npm -- the pg_top_queries ordering test
|
|
28
|
+
still failed in CI even after switching marker queries from cursor-
|
|
29
|
+
wrapped handler calls to raw `runInternal`. Root cause was column-alias
|
|
30
|
+
jumbling in pg_stat_statements; the test was removed in 0.6.10.
|
|
31
|
+
|
|
32
|
+
## [0.6.8] - 2026-05-16 [UNPUBLISHED]
|
|
33
|
+
|
|
34
|
+
Tagged but never published to npm -- the v0.6.8 attempt at the
|
|
35
|
+
pg_top_queries test still depended on `pg_stat_statements.track_utility`
|
|
36
|
+
being on, which the CI image's defaults don't guarantee. Shipped in 0.6.9.
|
|
37
|
+
|
|
38
|
+
## [0.6.7] - 2026-05-16 [UNPUBLISHED]
|
|
39
|
+
|
|
40
|
+
Tagged but never published to npm -- the initial coverage additions
|
|
41
|
+
included an ordering test for pg_top_queries that failed in CI on a
|
|
42
|
+
test-stability issue (not a code issue). The other six coverage
|
|
43
|
+
additions shipped in 0.6.10.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Infrastructure
|
|
48
|
+
- Closed seven coverage gaps surfaced by a coverage audit. No behavior
|
|
49
|
+
changes; each test pins a branch the existing suite exercised on only
|
|
50
|
+
one side, or a structural property a regression could silently violate:
|
|
51
|
+
- `pg_inspect_locks` real ACCESS EXCLUSIVE contention with two side
|
|
52
|
+
clients. Covers the LATERAL `unnest(pg_blocking_pids(...))` and the
|
|
53
|
+
per-(blocked, blocker) row shape the v0.6.6 description claims.
|
|
54
|
+
- `pg_top_queries` `orderBy: 'calls'` numeric (not lexical) ordering.
|
|
55
|
+
A 12-call query must rank above a 2-call query -- pins the
|
|
56
|
+
alias-shadowing fix where unqualified `calls` would resolve to the
|
|
57
|
+
text output alias and sort lexically (`"2" > "12"`).
|
|
58
|
+
- `pg_table_bloat` `minDeadRatio` threshold filter, as a relative
|
|
59
|
+
property (filtered rows are at or above the threshold; baseline rows
|
|
60
|
+
below the threshold are absent from filtered). Order-independent.
|
|
61
|
+
- `pg_table_bloat` with-schema filter -- no cross-schema leakage when
|
|
62
|
+
scoped.
|
|
63
|
+
- `pg_seq_scan_tables` and `pg_unused_indexes` no-schema branch --
|
|
64
|
+
spans user schemas and excludes `pg_*` / `information_schema`.
|
|
65
|
+
- `pg_describe_table` on a materialized view -- `kind='materialized_view'`
|
|
66
|
+
branch of the relkind CASE.
|
|
67
|
+
|
|
68
|
+
## [0.6.6] - 2026-05-16
|
|
69
|
+
|
|
70
|
+
### Docs
|
|
71
|
+
- `pg_table_privileges` description now flags the visibility caveat:
|
|
72
|
+
`information_schema.table_privileges` is filtered by what the calling role
|
|
73
|
+
can see, so a least-privileged role may miss grants involving unrelated
|
|
74
|
+
third-party roles. Recommends superuser or `pg_read_all_data` for a
|
|
75
|
+
complete picture.
|
|
76
|
+
- `pg_inspect_locks` description now documents the row shape: one row per
|
|
77
|
+
(blocked_pid, blocking_pid) pair, so a session waiting on multiple
|
|
78
|
+
blockers appears on multiple rows. Suggests grouping by `blocked_pid`
|
|
79
|
+
for a per-blocked-session count.
|
|
80
|
+
|
|
10
81
|
## [0.6.5] - 2026-05-15
|
|
11
82
|
|
|
12
83
|
### Fixed
|
package/dist/index.js
CHANGED
|
@@ -36361,7 +36361,7 @@ var identSchema = external_exports.string().min(1).max(63).refine((v) => Buffer.
|
|
|
36361
36361
|
var adminTools = [
|
|
36362
36362
|
{
|
|
36363
36363
|
name: "pg_inspect_locks",
|
|
36364
|
-
description: "Show current lock contention: which sessions are blocked and who is blocking them. Returns blocked PID, blocking PID, lock types, relation being contested, and the queries involved. Use this first when a tool call hangs or the app feels stuck - it's the fastest way to identify a long-held transaction holding a lock.",
|
|
36364
|
+
description: "Show current lock contention: which sessions are blocked and who is blocking them. Returns blocked PID, blocking PID, lock types, relation being contested, and the queries involved. Use this first when a tool call hangs or the app feels stuck - it's the fastest way to identify a long-held transaction holding a lock. Row shape: one row per (blocked_pid, blocking_pid) pair. A session waiting on multiple blockers appears on multiple rows -- group/deduplicate by `blocked_pid` if you want a per-blocked-session count.",
|
|
36365
36365
|
annotations: {
|
|
36366
36366
|
title: "Inspect blocking locks",
|
|
36367
36367
|
readOnlyHint: true,
|
|
@@ -36447,7 +36447,7 @@ var adminTools = [
|
|
|
36447
36447
|
},
|
|
36448
36448
|
{
|
|
36449
36449
|
name: "pg_table_privileges",
|
|
36450
|
-
description: "Show which roles have which privileges (SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER) on a table or on every table in a schema. If `table` is omitted, the result spans every table in `schema`, ordered by table then grantee. Use this to answer 'who can write to this table?' or to audit schema-wide access before a migration.",
|
|
36450
|
+
description: "Show which roles have which privileges (SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER) on a table or on every table in a schema. If `table` is omitted, the result spans every table in `schema`, ordered by table then grantee. Use this to answer 'who can write to this table?' or to audit schema-wide access before a migration. Visibility caveat: backed by `information_schema.table_privileges`, which postgres filters by what the calling role can see. A least-privileged role may not see grants involving unrelated third-party roles. For a complete picture, run as a superuser or a member of `pg_read_all_data`.",
|
|
36451
36451
|
annotations: {
|
|
36452
36452
|
title: "Show table privileges",
|
|
36453
36453
|
readOnlyHint: true,
|
|
@@ -37550,7 +37550,7 @@ function compareVersions(a, b) {
|
|
|
37550
37550
|
}
|
|
37551
37551
|
|
|
37552
37552
|
// src/index.ts
|
|
37553
|
-
var version2 = true ? "0.6.
|
|
37553
|
+
var version2 = true ? "0.6.10" : (await null).createRequire(import.meta.url)("../package.json").version;
|
|
37554
37554
|
var subcommand = process.argv[2];
|
|
37555
37555
|
if (subcommand === "version" || subcommand === "--version") {
|
|
37556
37556
|
console.log(version2);
|
package/package.json
CHANGED