Skip to content

Bring README up to date for 1.0.0 - #10

Merged
Xof merged 1 commit into
masterfrom
readme-1.0.0-currency
Jul 21, 2026
Merged

Bring README up to date for 1.0.0#10
Xof merged 1 commit into
masterfrom
readme-1.0.0-currency

Conversation

@Xof

@Xof Xof commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Makes README.md reflect the current module before the 1.0.0 tag. Doc-only (plus removing one stray artifact); no code change.

Why: master's README still opened by calling the per-statement cost "the only criterion currently supported" — stale now that transaction_cost_limit (issue #4) and filter_select_only (issue #2) exist — and it documented only three of the four GUCs. This also recovers the intro fix and artifact removal that were lost when a prior polish commit was pushed to an already-merged branch.

Changes (all verified against the code, and the module_loaded/SQLSTATE examples verified on a live PG 18.3 server):

  • Rewrote the intro to name all three controls.
  • Added a Configuration section with a parameter table (type, default, who may set) covering all four GUCs, and grouped each limit's material under its own heading.
  • Documented plan_filter.module_loaded and a non-superuser detection query.
  • Documented that rejections raise SQLSTATE 54001 with the two message strings, for callers mapping the error (e.g. the issue-Limit transaction cost #4 HTTP 429 case).
  • Clarified that at least one limit must be non-zero to activate the module.
  • Generalized per-user overrides to all plan_filter.* limits, with a transaction_cost_limit example.
  • Noted the EXPLAIN escape hatch needs superuser (the GUC is SUSET).
  • Dropped the docs/superpowers/ design-spec process artifact (rationale is in docs/adr/0004) and gitignored the path.

The README described only statement_cost_limit as "the only criterion"
and documented three of the four GUCs in loose, interleaved prose. Make
it reflect the current module:

- Rewrite the intro to name all three controls (statement and transaction
  cost limits, and the SELECT-only scope)
- Add a Configuration section with a parameter table (type, default, who
  may set) covering all four GUCs
- Document plan_filter.module_loaded and how a non-superuser can use it to
  detect that the filter is active
- State that rejections raise SQLSTATE 54001, with the two message strings,
  for callers that map the error (e.g. to HTTP 429)
- Note that at least one limit must be non-zero to activate the module,
  rather than singling out statement_cost_limit
- Generalize the per-user override guidance to all plan_filter.* limits and
  add a transaction_cost_limit example
- Note the EXPLAIN escape hatch requires superuser (the GUC is SUSET)
- Group each limit's material under its own heading

Also drop the docs/superpowers/ design-spec artifact (rationale lives in
docs/adr/0004) and gitignore that path.
@Xof
Xof merged commit c1afc73 into master Jul 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant