mirror of
https://github.com/postgres/postgres.git
synced 2025-06-22 02:52:08 +03:00
psql: show cloned triggers in partitions
In a partition, row triggers that had been cloned from their parent partitioned table would not be listed at all in psql's \d, which could surprise users, per insistent complaint from Ashutosh Bapat (though his aim was elsewhere). The simplest possible fix, suggested by Peter Eisentraut, seems to be to list triggers marked as internal if they have a row in pg_depend that points to some other trigger. Author: Álvaro Herrera Discussion: https://postgr.es/m/20180618165910.p26vhk7dpq65ix54@alvherre.pgsql
This commit is contained in:
@ -2713,7 +2713,11 @@ describeOneTableDetails(const char *schemaname,
|
|||||||
pset.sversion >= 80300 ?
|
pset.sversion >= 80300 ?
|
||||||
"t.tgconstraint <> 0 AS tgisinternal" :
|
"t.tgconstraint <> 0 AS tgisinternal" :
|
||||||
"false AS tgisinternal"), oid);
|
"false AS tgisinternal"), oid);
|
||||||
if (pset.sversion >= 90000)
|
if (pset.sversion >= 110000)
|
||||||
|
appendPQExpBuffer(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D') \n"
|
||||||
|
" OR EXISTS (SELECT 1 FROM pg_catalog.pg_depend WHERE objid = t.oid \n"
|
||||||
|
" AND refclassid = 'pg_catalog.pg_trigger'::regclass))");
|
||||||
|
else if (pset.sversion >= 90000)
|
||||||
/* display/warn about disabled internal triggers */
|
/* display/warn about disabled internal triggers */
|
||||||
appendPQExpBuffer(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D'))");
|
appendPQExpBuffer(&buf, "(NOT t.tgisinternal OR (t.tgisinternal AND t.tgenabled = 'D'))");
|
||||||
else if (pset.sversion >= 80300)
|
else if (pset.sversion >= 80300)
|
||||||
|
Reference in New Issue
Block a user