On Fri, Mar 29, 2019 at 12:27 PM Masahiko Sawada <sawada.m...@gmail.com> wrote: > Yeah, but since multiple relations might be specified in VACUUM > command we need to process index_cleanup option after opened each > relations. Maybe we need to process all options except for > INDEX_CLEANUP in ExecVacuum() and pass VacuumStmt down to vacuum_rel() > and process it in manner of you suggested after opened the relation. > Is that right?
Blech, no, let's not do that. We'd better use some method that can indicate yes/no/default. Something like psql's trivalue thingy, but probably not exactly that. We can define an enum for this purpose, for example - VACUUM_INDEX_CLEANUP_{ENABLED,DISABLED,DEFAULT}. Or maybe there's some other way. But let's not pass bits of the parse tree around any more than really required. > > I think it would be better to just ignore the INDEX_CLEANUP option > > when FULL is specified. > > Okay, but why do we ignore that in this case while we complain in the > case of FULL and DISABLE_PAGE_SKIPPING? Well, that's a fair point, I guess. If we go that that route, we'll need to make sure that setting the reloption doesn't prevent VACUUM FULL from working -- the complaint must only affect an explicit option on the VACUUM command line. I think we should have a regression test for that. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company