diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2022-01-17 21:18:49 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2022-01-17 21:19:02 -0500 |
commit | 9007d4ea774edd815efeb0e0ef954127841beb2f (patch) | |
tree | 970027a68a5249445150e75f202e4cf49b582e0e /src/tutorial/basics.source | |
parent | 839f9636b374d67952fdb2b048f055393bc5a8f4 (diff) | |
download | postgresql-9007d4ea774edd815efeb0e0ef954127841beb2f.tar.gz postgresql-9007d4ea774edd815efeb0e0ef954127841beb2f.zip |
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
Diffstat (limited to 'src/tutorial/basics.source')
0 files changed, 0 insertions, 0 deletions