pgsql: Fix psql \d's query for identifying parent triggers.
От | Tom Lane |
---|---|
Тема | pgsql: Fix psql \d's query for identifying parent triggers. |
Дата | |
Msg-id | E1n9e5j-0007PD-VM@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix psql \d's query for identifying parent triggers. The original coding (from c33869cc3) failed with "more than one row returned by a subquery used as an expression" if there were unrelated triggers of the same tgname on parent partitioned tables. (That's possible because statement-level triggers don't get inherited.) Fix by applying LIMIT 1 after sorting the candidates by inheritance level. Also, wrap the subquery in a CASE so that we don't have to execute it at all when the trigger is visibly non-inherited. Aside from saving some cycles, this avoids the need for a confusing and undocumented NULLIF(). While here, tweak the format of the emitted query to look a bit nicer for "psql -E", and add some explanation of this subquery, because it badly needs it. Report and patch by Justin Pryzby (with some editing by me). Back-patch to v13 where the faulty code came in. Discussion: https://postgr.es/m/20211217154356.GJ17618@telsasoft.com Branch ------ REL_13_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/90e0f9fd8cae7cfb09c11534f690edde6d6ee06c Modified Files -------------- src/bin/psql/describe.c | 45 +++++++++++++++++++++++++--------- src/test/regress/expected/triggers.out | 14 +++++++++++ src/test/regress/sql/triggers.sql | 5 ++++ 3 files changed, 53 insertions(+), 11 deletions(-)
В списке pgsql-committers по дате отправления: