Re: Add pg_stat_recovery system view
Chao Li <li.evan.chao@gmail.com>
From: Chao Li <li.evan.chao@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Xuneng Zhou <xunengzhou@gmail.com>,
yangyz <1197620467@qq.com>,
Michael Paquier <michael@paquier.xyz>,
pgsql-hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-09T05:20:45Z
Lists: pgsql-hackers
> On Mar 6, 2026, at 23:45, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Chao Li <li.evan.chao@gmail.com> writes: >> I have one small additional comment on pushed 0001. >> ``` >> if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) >> elog(ERROR, "return type must be a row type"); >> ``` > >> This uses elog(ERROR), while the other functions in the same file use ereport(ERROR). I think ereport is generally preferred nowadays over elog. > > No: you are incorrect and this snippet is perfectly normal (in fact, > probably copied-and-pasted from one of many other occurrences). > The actual coding rule is basically "use ereport() for user-facing > errors and elog() for not-supposed-to-happen errors". What we're > after is to not expend translator effort on not-supposed-to-happen > error messages. While you can build a ereport call that's not > translated, elog() is a lower-notation way to get the same result. > See [1], particularly the elog() discussion near the end of the > page. > > I've not read the patch so I don't know if it made sane ereport-vs- > elog choices elsewhere, but this one is fine. > > regards, tom lane > > [1] https://www.postgresql.org/docs/devel/error-message-reporting.html Hi Tom, Thanks for the detailed explanation. Noted. Would it make sense to mention this distinction in the header comments for ereport and elog in the code? For these logging APIs, I think developers are often more likely to read the code comments than the documentation. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/
Commits
-
Fix order of columns in pg_stat_recovery
- 2d4ead6f4bd0 19 (unreleased) landed
-
Add system view pg_stat_recovery
- 01d485b142e4 19 (unreleased) landed
-
Refactor code retrieving string for RecoveryPauseState
- 42a12856a6a0 19 (unreleased) landed
-
Move definition of XLogRecoveryCtlData to xlogrecovery.h
- 5f8124a0cf33 19 (unreleased) landed