On Thu, Aug 01, 2019 at 02:10:08PM +0530, Jeevan Ladhe wrote: > The only thing is that, if the caller cares about the error during > the parsing or not.
That's where the root of the problem is. We should really make things so as the caller of this routine cares about errors. With your patch a caller could do pg_lsn_in_internal('G/G', NULL), and then get InvalidXLogRecPtr which is plain wrong. It is true that a caller may not care about the error, but the idea is to make callers *think* about the error case when they implement something and decide if it is valid or not. The float and numeric code paths do that, not pg_lsn with this patch. It would actually be fine to move ereport(ERROR) from pg_lsn_in to pg_lsn_in_internal and trigger these if have_error is NULL, but that means a duplication and the code is simple. -- Michael
signature.asc
Description: PGP signature