Re: Add pg_stat_recovery system view
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Chao Li <li.evan.chao@gmail.com>
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-06T15:45:05Z
Lists: pgsql-hackers
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
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