--On 4. November 2014 17:18:14 -0500 Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
Yeah, and I think that it's entirely reasonable for rewriting ALTER TABLEs to update the xmin of the rewritten tuples; after all, the output data could be arbitrarily different from what the previous transactions put into the table. But that is not the question here. If the COPY blocks until the ALTER completes --- as it must --- why is its execution snapshot not taken *after* the lock is acquired?
COPY waits in DoCopy() but its snapshot gets acquired in PortalRunUtility() earlier. SELECT has it's lock already during transform/analyse phase and its snapshot is taken much later. Looks like we need something that analyses a utility statement to get its lock before executing.
-- Thanks Bernd -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general