This patch will cause psql's \d to fail hard against any pre-v19 server. That's not acceptable. Note the comment at the top of describe.c:
* Support for the various \d ("describe") commands. Note that the current * expectation is that all functions in this file will succeed when working * with servers of versions 9.2 and up. It's okay to omit irrelevant * information for an old server, but not to fail outright. (But failing * against a pre-9.2 server is allowed.)
I didn't see that at the top of the file, and didn't think the new function would break it all.
You could get around that with a conditional on the server version, as is done elsewhere in describe.c. But I kind of wonder why we need this new function at all. Isn't "pg_get_triggerdef(oid, false)" close enough?
No. That works to print out the CREATE TRIGGER statement with the schema.relation name. I am trying to make `pretty` print similar to what is in pg_get_viewdef and pg_get_functiondef which formats the output.
An alternative suggestion is to keep "pg_get_triggerdef(oid, true)" doing exactly what it does today and have the newly-introduced function be the one that has new behavior. This might be a smarter plan anyway to avoid side-swiping other clients that are expecting the current behavior.
Thinking aloud, I would need to create a new function like pg_get_triggerdef_worker and let it handle the formatting.