On Thu, Sep 21, 2017 at 8:18 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> "Bossart, Nathan" <bossa...@amazon.com> writes:
>> On 9/20/17, 2:29 PM, "Tom Lane" <t...@sss.pgh.pa.us> wrote:
>>> The idea of "fast failing" because some later VacuumRelation struct might
>>> contain an error seems like useless complication, both in terms of the
>>> implementation and the user-visible behavior.
>
>> I agree that the patch might be simpler without this, but the user-visible
>> behavior is the reason I had included it.  In short, my goal was to avoid
>> errors halfway through a long-running VACUUM statement because the user
>> misspelled a relation/column name or the relation/column was dropped.
>
> I don't particularly buy that argument, because it's not the case that
> the preceding processing was wasted when that happens.  We've done and
> committed the vacuuming work for the earlier relations.

I think that the problem can be seen differently though: the next
relations on the list would not be processed as well. For example in
parallel of a manual VACUUM triggered by a cron job, say that a rogue
admin removes a column for a relation to be VACUUM-ed. The relations
processed before the relation redefined would have been vacuumed and
the transaction doing the vacuum committed, but the ones listed after
would not have been updated in this nightly VACUUM. From this angle
this sounds like a fair concern to me. I agree that the rogue admin
should not have done that to begin with.
-- 
Michael


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to