>
> > IIUC, if *any* error occurs outside of a deserialize callback, first the
> "error"
> > code will be called, followed by "done" which will then trigger the
> > end_extra_stats
> > callback that will perform the cleanup.
>
> That is true. But problem is, without an error indication,
> end_extra_stats(STATS_READ) can only blindly perform cleanup works. As you
> are providing general purposed callbacks, who knows what scenarios
> extensions would do, so it’s better to provide more information to
> callbacks. IMO, letting end_extra_stats() know current situation (normal or
> failure, even error code) is very meaningful. For example, my extension may
> want to log “I am forced to quite due to outside error” or “I am done
> successfully” in end_extra_stats(). Anyway, that’s my own opinion. If you
> and Michael still consider that’s not a problem, I won’t argue more.


Thanks for explaining. If there is a good use-case to add more detail to
the “end” callback, it’s not very obvious yet. Maybe in the future, there
will be a convincing reason to do so.

When we hit the clean-up code on any “error”, it should be accompanied by
an error log. That is
done in all cases inside pgstat.c, and I expect an extension to log the
error as well.


--
Sami Imseih
Amazon Web Services (AWS)

Reply via email to