On Wed, 13 Nov 2019 at 11:38, Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Wed, Nov 13, 2019 at 6:53 AM Masahiko Sawada > <masahiko.saw...@2ndquadrant.com> wrote: > > > > On Tue, 12 Nov 2019 at 22:33, Amit Kapila <amit.kapil...@gmail.com> wrote: > > > > > > > > > Hmm, I think we should define these flags in the most simple way. > > > Your previous proposal sounds okay to me. > > > > Okay. As you mentioned before, my previous proposal won't work for > > existing index AMs that don't set amparallelvacuumoptions. > > > > You mean to say it won't work because it has to set multiple flags > which means that if IndexAm user doesn't set the value of > amparallelvacuumoptions then it won't work?
Yes. In my previous proposal every index AMs need to set two flags. > > > But since we > > have amcanparallelvacuum which is false by default I think we don't > > need to worry about backward compatibility problem. The existing index > > AM will use neither parallel bulk-deletion nor parallel cleanup by > > default. When it wants to support parallel vacuum they will set > > amparallelvacuumoptions as well as amcanparallelvacuum. > > > > Hmm, I was not thinking of multiple variables rather only one > variable. The default value should indicate that IndexAm doesn't > support a parallel vacuum. Yes. > It might be that we need to do it the way > I originally proposed the different values of amparallelvacuumoptions > or maybe some variant of it where the default value can clearly say > that IndexAm doesn't support a parallel vacuum. Okay. After more thoughts on your original proposal, what I get confused on your proposal is that there are two types of flags that enable and disable options. Looking at 2, 3 and 4, it looks like all options are disabled by default and setting these flags means to enable them. On the other hand looking at 1, it looks like these options are enabled by default and setting the flag means to disable it. 0 makes sense to me. So how about having 0, 2, 3 and 4? Regards, -- Masahiko Sawada http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services