You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by yj...@apache.org on 2025/01/13 08:23:12 UTC
(cloudberry) 09/21: Remove FIXME: no longer to pass paramExecTypes as a param (7X) (#15649)
This is an automated email from the ASF dual-hosted git repository.
yjhjstz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 261f6bdffef46807953d095c953f8259a56eb9df
Author: Yongtao Huang <99...@users.noreply.github.com>
AuthorDate: Wed May 31 17:31:15 2023 +0800
Remove FIXME: no longer to pass paramExecTypes as a param (7X) (#15649)
Long log:
Postgres added `paramExecTypes` in struct `PlannedStmt` at commit [e64861c7](https://github.com/postgres/postgres/commit/e64861c7).
In gpdb 7X, we have queryDesc->plannedstmt->paramExecTypes,
so no need to pass var `paramExecTypes` as a param.
Signed-off-by: Yongtao Huang <yo...@vmware.com>
---
src/backend/cdb/dispatcher/cdbdisp_query.c | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
diff --git a/src/backend/cdb/dispatcher/cdbdisp_query.c b/src/backend/cdb/dispatcher/cdbdisp_query.c
index 82d7fbe093..626cb6465a 100644
--- a/src/backend/cdb/dispatcher/cdbdisp_query.c
+++ b/src/backend/cdb/dispatcher/cdbdisp_query.c
@@ -125,12 +125,10 @@ static List *formIdleSegmentIdList(void);
static bool param_walker(Node *node, ParamWalkerContext *context);
static Oid findParamType(List *params, int paramid);
-static Bitmapset *getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData *intPrm,
- List **paramExecTypes);
+static Bitmapset *getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData *intPrm);
static SerializedParams *serializeParamsForDispatch(QueryDesc *queryDesc,
ParamListInfo externParams,
ParamExecData *execParams,
- List *paramExecTypes,
Bitmapset *sendParams);
@@ -145,8 +143,6 @@ static SerializedParams *serializeParamsForDispatch(QueryDesc *queryDesc,
* 'sendParams' indicates which parameters are included and 'execParams'
* contains their values. 'paramExecTypes' is a list indexed by paramid,
* containing the datatype OID of each parameter.
- * GPDB_11_MERGE_FIXME: In PostgreSQL v11, we have paramExecTypes in
- * PlannedStmt, so it will no longer be necessary to pass it as a param.
*
* If cancelOnError is true, then any dispatching error, a cancellation
* request from the client, or an error from any of the associated QEs,
@@ -185,7 +181,6 @@ CdbDispatchPlan(struct QueryDesc *queryDesc,
{
PlannedStmt *stmt;
bool is_SRI = false;
- List *paramExecTypes;
Bitmapset *sendParams;
Assert(Gp_role == GP_ROLE_DISPATCH);
@@ -245,11 +240,11 @@ CdbDispatchPlan(struct QueryDesc *queryDesc,
* values that need to be included with the query. Then serialize them,
* and also any PARAM_EXTERN parameters.
*/
- sendParams = getExecParamsToDispatch(stmt, execParams, ¶mExecTypes);
+ sendParams = getExecParamsToDispatch(stmt, execParams);
queryDesc->ddesc->paramInfo =
serializeParamsForDispatch(queryDesc,
queryDesc->params,
- execParams, paramExecTypes, sendParams);
+ execParams, sendParams);
/*
* Cursor queries and bind/execute path queries don't run on the
@@ -1468,7 +1463,6 @@ static SerializedParams *
serializeParamsForDispatch(QueryDesc *queryDesc,
ParamListInfo externParams,
ParamExecData *execParams,
- List *paramExecTypes,
Bitmapset *sendParams)
{
SerializedParams *result = makeNode(SerializedParams);
@@ -1517,7 +1511,7 @@ serializeParamsForDispatch(QueryDesc *queryDesc,
/* materialize Exec params */
if (!bms_is_empty(sendParams))
{
- int numExecParams = list_length(paramExecTypes);
+ int numExecParams = list_length(queryDesc->plannedstmt->paramExecTypes);
int x;
result->nExecParams = numExecParams;
@@ -1528,7 +1522,7 @@ serializeParamsForDispatch(QueryDesc *queryDesc,
{
ParamExecData *prm = &execParams[x];
SerializedParamExecData *sprm = &result->execParams[x];
- Oid ptype = list_nth_oid(paramExecTypes, x);
+ Oid ptype = list_nth_oid(queryDesc->plannedstmt->paramExecTypes, x);
sprm->value = prm->value;
sprm->isnull = prm->isnull;
@@ -1563,8 +1557,7 @@ serializeParamsForDispatch(QueryDesc *queryDesc,
* in the EState->es_param_exec_vals array.
*/
static Bitmapset *
-getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData *intPrm,
- List **paramExecTypes)
+getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData *intPrm)
{
ParamWalkerContext context;
int i;
@@ -1573,10 +1566,8 @@ getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData *intPrm,
Bitmapset *sendParams = NULL;
if (nIntPrm == 0)
- {
- *paramExecTypes = NIL;
return NULL;
- }
+
Assert(intPrm != NULL); /* So there must be some internal parameters. */
/*
@@ -1611,12 +1602,10 @@ getExecParamsToDispatch(PlannedStmt *stmt, ParamExecData *intPrm,
* Now set the bit corresponding to each init plan param. Use the datatype
* info harvested above.
*/
- *paramExecTypes = NIL;
for (i = 0; i < nIntPrm; i++)
{
Oid paramType = findParamType(context.params, i);
- *paramExecTypes = lappend_oid(*paramExecTypes, paramType);
if (paramType != InvalidOid)
{
sendParams = bms_add_member(sendParams, i);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org