ClickHouse / ClickHouse/clickhousectl
Show the provider in the Postgres service list
- Dominant language
- Rust
- Stars
- 74
- Forks
- 5
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 196
Description
## Validated scope and current-PR plan — 2026-09-11
This section records the QA review and the current decision to finalize existing PRs without opening new PRs. It supersedes the proposed routing/fix suggestions in the original report below; the original observations are retained. Central plan: #757.
### Work for the existing PRs
Implementation status: the checked sub-items below are implemented on the existing PR branches and validated locally on combined head `82b374816a917cbac3a68194659beaaa5c7c9087`. Required final-head Cloud CI and merging remain pending; this issue stays open. See #757 for the combined validation and CI status.
- [x] #821 — Make negative --limit values reach the existing range validators on logs and slow-query list, as --offset already does; retain the distinct 1–2000 and 1–500 limits.
### Remaining scope
Severity policy, other metrics/help changes, Provider/Port presentation and promotion/restore guidance remain deferred. Promotion advice overlaps #834; connection details overlap #836.
This is a partial assignment. Keep the issue open after these PRs land; use sub-item references rather than a whole-issue closing keyword.
### Validation and corrections
Reproduced misleading separator hint on both --limit -1 forms. Ranges already exist (logs 1–2000, patterns 1–500); the missing piece is negative-value parsing, as in #821. Promotion advice goes with #834; Port with #836; Provider column with new Postgres output work. Severity is currently unconstrained text in the model: establish the supported contract before closing the set. [#820](https://github.com/ClickHouse/clickhousectl/pull/820) is only sort-order validation. A metrics CONTEXT block is optional, not mandatory just because the command is long-form.
---
## Original QA report
Found in the 2026-09-11 QA sweep of the combined PR stack at [`d2c37f81`](https://github.com/ClickHouse/clickhousectl/commit/d2c37f814fff53fe68d636e34103e2d0550bf84d), top PR #823, installed release build (package version still 0.4.2). Reproduced behaviour only; no implementation included.
Severity: low; batch.
- `logs --limit -1` and `slow-queries list --limit -1` still give "unexpected argument … tip: use `-- -1`" — the exact defect #809 fixed for `--offset` on the same commands. Give `--limit` the same `value_parser` range.
- `postgres metrics` is the only long-form data command with no `CONTEXT FOR AGENTS` block, and `--bucket-size-seconds` help does not say that omitting it lets the API choose (README does).
- `logs --severity BOGUS` returns an empty list, exit 0; the help says "such as ERROR, WARNING, or LOG" but there is no enum, so a typo looks like "no matching logs".
- `postgres get` human output has no Port row; `postgres list` has no Provider column although `--filter provider=` exists.
- `promote`'s stderr note says the old primary "can keep reporting isPrimary=true for several minutes; verify … that exactly one service is primary". After promoting a *read replica* the old primary is permanently an independent primary (verified: both writable, divergent data), so `list --filter isPrimary=true` will never show exactly one. The advice is wrong for the case it is attached to.
- The restored instance reports `isPrimary: false` while `state=creating`, flipping to `true` once running — confusing for something that is not a replica. Worth a help line.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the `postgres list` command and the existing `--filter provider=` behavior described in the QA report. Trace where human-readable list rows are assembled, then verify that the provider appears as a column without changing the deferred promotion, connection, or other output work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100