Don't throw an error for LOCK TABLE on a self-referential view.
authorTom Lane <[email protected]>
Thu, 5 Nov 2020 16:44:32 +0000 (11:44 -0500)
committerTom Lane <[email protected]>
Thu, 5 Nov 2020 16:44:32 +0000 (11:44 -0500)
commit0bdf1ef3d53e42c1c050a9f30b663fe72269a129
treefa41cfa5a58b3c13b0a30001da4f5727c93f06c0
parentea9087938131ae0da822ccb96c2d8dc71c177f53
Don't throw an error for LOCK TABLE on a self-referential view.

LOCK TABLE has complained about "infinite recursion" when applied
to a self-referential view, ever since we made it recurse into views
in v11.  However, that breaks pg_dump's new assumption that it's
okay to lock every relation.  There doesn't seem to be any good
reason to throw an error: if we just abandon the recursion, we've
still satisfied the requirement of locking every referenced relation.

Per bug #16703 from Andrew Bille (via Alexander Lakhin).

Discussion: https://postgr.es/m/16703-e348f58aab3cf6cc@postgresql.org
src/backend/commands/lockcmds.c
src/test/regress/expected/lock.out
src/test/regress/sql/lock.sql