On 2016-12-14 22:00:45 -0500, Robert Haas wrote: > I took a look at Andres's patches today and saw that they can't really > be applied as-is, because they "temporarily" change the master's > ParallelWorkerNumber but have no provision for restoring it after an > ERROR.
Yea, that's not quite right. Although I'm not sure it really matters that much, given that we're not continuing execution after an error. We could just reset it at appropriate points - but that seems ugly. > I think that approach isn't right anyway; it seems to me that > what we want to do is set hash_iv based on we're in a Partial HashAgg, > not whether we're in a parallel worker. For instance, if we're > somehow in a nodeSubplan.c there's no need for this just because we > happen to be in a worker -- I think. That led me to develop the > attached patch. Hm, I'd rather have this be a more general solution - it doesn't seem unlikely that other parts of the system want to know whether they're currently executing a parallel portion of the plan. E.g. it really should be forbidden to do modifications even in the parallel portion of the plan the master executes. Right now that'd escape notice, which I don't think is good. > This may not be perfect, but it causes TPC-H Q18 to complete instead > of hanging forever, so I'm going to commit it RSN unless there are > loud objections combined with promising steps toward some alternative > fix. It's been over a month since these problems were reported, and > it is not good that the tree has been in a broken state for that > entire time. Yea, sorry for that :(. Unfortunately the JIT stuff currently occupies a large portion of my brain. I really hope to come up with a new version of the patch that does the "smarter" expansion soon. Greetings, Andres Freund -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers