aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/catalog/information_schema.sql11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql
index f4e69f4a264..3bb4b0f88e1 100644
--- a/src/backend/catalog/information_schema.sql
+++ b/src/backend/catalog/information_schema.sql
@@ -2089,8 +2089,15 @@ CREATE VIEW triggers AS
CAST(
-- To determine action order, partition by schema, table,
-- event_manipulation (INSERT/DELETE/UPDATE), ROW/STATEMENT (1),
- -- BEFORE/AFTER (66), then order by trigger name
- rank() OVER (PARTITION BY n.oid, c.oid, em.num, t.tgtype & 1, t.tgtype & 66 ORDER BY t.tgname)
+ -- BEFORE/AFTER (66), then order by trigger name. It's preferable
+ -- to partition by view output columns, so that query constraints
+ -- can be pushed down below the window function.
+ rank() OVER (PARTITION BY CAST(n.nspname AS sql_identifier),
+ CAST(c.relname AS sql_identifier),
+ em.num,
+ t.tgtype & 1,
+ t.tgtype & 66
+ ORDER BY t.tgname)
AS cardinal_number) AS action_order,
CAST(
CASE WHEN pg_has_role(c.relowner, 'USAGE')