>> As triggers are executed in order of their names, we've prefixed the >> trigger names with "zz". This should work fine as long as no-one uses >> trigger-name which starts with "zz". >>
this seems a lot fragile... why system generated triggers has to be executed following the same rules (talking about order of execution) as user triggers? can't we simply execute them first or last or maybe be clever and mark one to be executed first and others last?
AFAICS, we do not have any category like system triggers. So yeah, it would have been nice to generate triggers with names (starting with __ for example) for such special triggers. But I don't think we disallow user-triggers starting with underscores etc.
So some of the options could be:
- to add a new column in pg_trigger to indicate special or system triggers which can be executed last (sorted order if multiple entries)
or
- invent a prefix "__partition__" or something and disallow user triggers to use such a prefix for their names, plus introduce logic to execute them (again sorted order if multiple entries) last.