Improve RLS handling in copy.c

Stephen Frost <sfrost@snowman.net>

Commit: 3d5cb31c9a17bad8bbc587c09404b2aa1e6c3aac
Author: Stephen Frost <sfrost@snowman.net>
Date: 2015-07-27T20:48:26Z
Releases: 9.6.0
Improve RLS handling in copy.c

To avoid a race condition where the relation being COPY'd could be
changed into a view or otherwise modified, keep the original lock
on the relation.  Further, fully qualify the relation when building
the query up.

Also remove the poorly thought-out Assert() and check the entire
relationOids list as, post-RLS, there can certainly be multiple
relations involved and the planner does not guarantee their ordering.

Per discussion with Noah and Andres.

Back-patch to 9.5 where RLS was introduced.

Files