Re: updates for handling optional argument in system functions
Mark Wong <markwkm@gmail.com>
From: Mark Wong <markwkm@gmail.com>
To: Tristan Partin <tristan@partin.io>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-06-11T14:47:37Z
Lists: pgsql-hackers
Attachments
On Fri, Jun 05, 2026 at 09:04:34PM +0000, Tristan Partin wrote:
> > Patch 1
> >
> > - proargtypes => 'oid bool', prosrc => 'pg_get_ruledef_ext' },
> > + proargtypes => 'oid bool', proargnames => '{rule,pretty}',
> > + proargdefaults => '{false}',prosrc => 'pg_get_ruledef' },
>
> There is a space missing before prosrc in the added line.
>
> Other than that one comment, this looks good to me.
Oops, v8.1 attached to correct that white space.
> I am a little confused how proargdefaults works given the function takes
> two arguments, but you only defined one default, so how does the parser
> know that the false default is in reference to "pretty". I do see there
> is other precedent for this pattern, so it is correct.
I believe that's handled in InsertOneProargdefaultsValue() in
src/backend/bootstrap/bootstrap.c, right below the comment:
/* The values should correspond to the last N argtypes */
Regards,
Mark
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Simplify creation of built-in functions with default arguments.
- 759b03b24ce9 19 (unreleased) cited