On Thu, Dec 22, 2022 at 2:02 PM Richard Guo <guofengli...@gmail.com> wrote:
> I happened to notice $subject. It happens when we build eqfunctions for > each grouping set. > > /* for each grouping set */ > for (int k = 0; k < phasedata->numsets; k++) > { > int length = phasedata->gset_lengths[k]; > > if (phasedata->eqfunctions[length - 1] != NULL) > continue; > > phasedata->eqfunctions[length - 1] = > execTuplesMatchPrepare(scanDesc, > length, > aggnode->grpColIdx, > aggnode->grpOperators, > aggnode->grpCollations, > (PlanState *) aggstate); > } > > If it is an empty grouping set, its length will be zero, and accessing > phasedata->eqfunctions[length - 1] is not right. > > I think we can just skip building the eqfunctions for empty grouping > set. > Attached is a trivial patch for the fix. Thanks Richard
v1-0001-Skip-building-eqfunctions-for-empty-grouping-set.patch
Description: Binary data