Correct, we need a field tgposition on pg_trigger and when it´s null we follow normal ordering
select * from pg_trigger where tgrelid = X and tgtype = Y order by tgposition nulls last, tgname
regards,
Marcos
Em qua., 15 de set. de 2021 às 09:35, Andreas Karlsson <andreas@proxel.se> escreveu:
On 9/15/21 1:40 PM, Tom Lane wrote: > Marcos Pegoraro <marcos@f10.com.br> writes: >> Alphabetical order of triggers sometimes makes me write a_Recalc or z_Calc >> to be sure it´ll be the first or the last trigger with same event of that >> table > >> Oracle and SQL Server have FOLLOWS and PRECEDES when defining trigger >> execution order. Firebird has POSITION, which I like it more. > > Color me skeptical: doesn't that introduce more complication without > fundamentally solving anything? You still don't know which position > numbers other triggers have used, so it seems like this is just a > different way to spell the same problem.
I guess one advantage is that it would make the intent of the DDL author more clear to a reader and that it also makes it more clear to people new to PostgreSQL that trigger order is something that is important to reason about.
If those small advantages are worth the complication is another question (I am skpetical), but if we would implement this I prefer the Firebird solution over the Oralce/MSSQL solution since the Firebird solution is simpler while achieving the same thing plus that the Firefird solution seems like it would be obviously backwards compatible with our current solution.