Hi.While merging PostgreSQL to our (Shardman) fork, I've noticed that it uses the same pull_var_clause() flag as we do (coming from https://www.postgresql.org/message-id/CAFjFpRc8ZoDm0%2Bzhx%2BMckwGyEqkOzWcpVqbvjaxwdGarZSNrmA%40mail.gmail.com). I was a bit surprised, the patch hasn't landed to master. But flag somehow slipped in (but only as no-op). The attached patch removes useless flag.
-- Best regards, Alexander Pyhalov, Postgres Professional
From aa0322557f93ba9b021222aecdbb047c2f95ed29 Mon Sep 17 00:00:00 2001 From: Alexander Pyhalov <[email protected]> Date: Wed, 21 Jan 2026 17:45:59 +0300 Subject: [PATCH] Remove PVC_INCLUDE_CONVERTROWTYPES no-op --- src/backend/optimizer/path/equivclass.c | 3 +-- src/include/optimizer/optimizer.h | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c index a4fcfcc86c8..e3697df51a2 100644 --- a/src/backend/optimizer/path/equivclass.c +++ b/src/backend/optimizer/path/equivclass.c @@ -1007,8 +1007,7 @@ find_computable_ec_member(PlannerInfo *root, exprvars = pull_var_clause((Node *) exprs, PVC_INCLUDE_AGGREGATES | PVC_INCLUDE_WINDOWFUNCS | - PVC_INCLUDE_PLACEHOLDERS | - PVC_INCLUDE_CONVERTROWTYPES); + PVC_INCLUDE_PLACEHOLDERS); setup_eclass_member_iterator(&it, ec, relids); while ((em = eclass_member_iterator_next(&it)) != NULL) diff --git a/src/include/optimizer/optimizer.h b/src/include/optimizer/optimizer.h index 485f641b3b4..3d27a019609 100644 --- a/src/include/optimizer/optimizer.h +++ b/src/include/optimizer/optimizer.h @@ -193,8 +193,6 @@ extern SortGroupClause *get_sortgroupref_clause_noerr(Index sortref, * output list */ #define PVC_RECURSE_PLACEHOLDERS 0x0020 /* recurse into PlaceHolderVar * arguments */ -#define PVC_INCLUDE_CONVERTROWTYPES 0x0040 /* include ConvertRowtypeExprs in - * output list */ extern Bitmapset *pull_varnos(PlannerInfo *root, Node *node); extern Bitmapset *pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup); -- 2.43.0
