Attached is the patch to fix RM #4362 trigger function create script.
Please review it.
While I can see how this works, I question why we have the string "SETOF" in prorettypname anyway? That's a separate property, so it should be in a separate variable. What if I have a type called "SETOFDavesStuff" (unlikely, but it illustrates the point)?
We have used pg_get_function_result(func_oid) to get the returns clause for function and assign its value to prorettypename variable. I have followed the same logic for trigger function and fixed it. Similar logic has already been used for functions.
I have tested it with two different type "SETOF TypeTest" and "SETOFType" for function, as trigger_function only have return type either trigger or event_trigger. I haven't found any issue with the reverse engineered sql and create script as well.