| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
| Cc: | Xuneng Zhou <xunengzhou(at)gmail(dot)com>, yangyz <1197620467(at)qq(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Add pg_stat_recovery system view |
| Date: | 2026-03-06 15:45:05 |
| Message-ID: | 297458.1772811905@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Chao Li <li(dot)evan(dot)chao(at)gmail(dot)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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Xuneng Zhou | 2026-03-06 15:49:41 | Re: Add pg_stat_recovery system view |
| Previous Message | Álvaro Herrera | 2026-03-06 15:33:23 | Re: Rework SLRU I/O errors handle |