You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Fix problems with ParamListInfo serialization mechanism.
Commitd1b7c1f introduced a mechanismfor serializing a ParamListInfo structure to be passed to a parallelworker. However, this mechanism failed to handle external expandedvalues, as pointed out by Noah Misch. Repair.Moreover, plpgsql_param_fetch requires adjustment because theserialization mechanism needs it to skip evaluating unused parametersjust as we would do when it is called from copyParamList, but params== estate->paramLI in that case. To fix, make the bms_is_member testin that function unconditional.Finally, have setup_param_list set a new ParamListInfo field,paramMask, to the parameters actually used in the expression, so thatwe don't try to fetch those that are not needed when serializing aparameter list. This isn't necessary for correctness, but it makesthe performance of the parallel executor code comparable to what wedo for cases involving cursors.Design suggestions and extensive review by Noah Misch. Patch by me.