This is an automated email from the ASF dual-hosted git repository.

reshke pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/cbdb-postgres-merge by this 
push:
     new e728ad0326d Resolve GPORCA issue for Value * node.
e728ad0326d is described below

commit e728ad0326db7bf55ec23a9bf7b5fcc0f85a29da
Author: reshke <[email protected]>
AuthorDate: Mon Dec 29 09:16:39 2025 +0000

    Resolve GPORCA issue for Value * node.
    
    As of 
https://github.com/postgres/postgres/commit/639a86e36aaecb84faaf941dcd0b183ba0aba9e9
    we do not use Value * node. Adapt orca for that.
---
 src/backend/gpopt/gpdbwrappers.cpp                     |  4 ++--
 src/backend/gpopt/translate/CMappingVarColId.cpp       |  3 +--
 src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp | 10 +++++-----
 src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp  |  3 +--
 src/backend/gpopt/translate/CTranslatorUtils.cpp       |  7 ++-----
 src/include/gpopt/gpdbwrappers.h                       |  5 ++---
 6 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/src/backend/gpopt/gpdbwrappers.cpp 
b/src/backend/gpopt/gpdbwrappers.cpp
index 92f7b8bacb0..81bbf954cbd 100644
--- a/src/backend/gpopt/gpdbwrappers.cpp
+++ b/src/backend/gpopt/gpdbwrappers.cpp
@@ -1483,7 +1483,7 @@ gpdb::LookupTypeCache(Oid type_id, int flags)
        return nullptr;
 }
 
-Value *
+String *
 gpdb::MakeStringValue(char *str)
 {
        GP_WRAP_START;
@@ -1494,7 +1494,7 @@ gpdb::MakeStringValue(char *str)
        return nullptr;
 }
 
-Value *
+Integer *
 gpdb::MakeIntegerValue(long i)
 {
        GP_WRAP_START;
diff --git a/src/backend/gpopt/translate/CMappingVarColId.cpp 
b/src/backend/gpopt/translate/CMappingVarColId.cpp
index 55d5c4c9bf0..87746018ebe 100644
--- a/src/backend/gpopt/translate/CMappingVarColId.cpp
+++ b/src/backend/gpopt/translate/CMappingVarColId.cpp
@@ -237,8 +237,7 @@ CMappingVarColId::Load(ULONG query_level, ULONG RTE_index,
        // add mapping information for columns
        ForEach(col_name, col_names)
        {
-               Value *value = (Value *) lfirst(col_name);
-               CHAR *col_name_char_array = strVal(value);
+               CHAR *col_name_char_array = strVal(lfirst(col_name));
 
                CWStringDynamic *column_name =
                        CDXLUtils::CreateDynamicStringFromCharArray(m_mp,
diff --git a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp 
b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
index 0d16ea490e6..ace13c6cb3e 100644
--- a/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
+++ b/src/backend/gpopt/translate/CTranslatorDXLToPlStmt.cpp
@@ -1756,7 +1756,7 @@ CTranslatorDXLToPlStmt::TranslateDXLTvfToRangeTblEntry(
                        CTranslatorUtils::CreateMultiByteCharStringFromWCString(
                                
dxl_proj_elem->GetMdNameAlias()->GetMDName()->GetBuffer());
 
-               Value *val_colname = gpdb::MakeStringValue(col_name_char_array);
+               String *val_colname = 
gpdb::MakeStringValue(col_name_char_array);
                alias->colnames = gpdb::LAppend(alias->colnames, val_colname);
 
                // save mapping col id -> index in translate context
@@ -1895,7 +1895,7 @@ 
CTranslatorDXLToPlStmt::TranslateDXLValueScanToRangeTblEntry(
                        CTranslatorUtils::CreateMultiByteCharStringFromWCString(
                                
dxl_proj_elem->GetMdNameAlias()->GetMDName()->GetBuffer());
 
-               Value *val_colname = gpdb::MakeStringValue(col_name_char_array);
+               String *val_colname = 
gpdb::MakeStringValue(col_name_char_array);
                alias->colnames = gpdb::LAppend(alias->colnames, val_colname);
 
                // save mapping col id -> index in translate context
@@ -5309,7 +5309,7 @@ CTranslatorDXLToPlStmt::ProcessDXLTblDescr(
                        for (INT dropped_col_attno = last_attno + 1;
                                 dropped_col_attno < attno; dropped_col_attno++)
                        {
-                               Value *val_dropped_colname = 
gpdb::MakeStringValue(PStrDup(""));
+                               String *val_dropped_colname = 
gpdb::MakeStringValue(PStrDup(""));
                                alias->colnames =
                                        gpdb::LAppend(alias->colnames, 
val_dropped_colname);
                        }
@@ -5318,7 +5318,7 @@ CTranslatorDXLToPlStmt::ProcessDXLTblDescr(
                        CHAR *col_name_char_array =
                                
CTranslatorUtils::CreateMultiByteCharStringFromWCString(
                                        
dxl_col_descr->MdName()->GetMDName()->GetBuffer());
-                       Value *val_colname = 
gpdb::MakeStringValue(col_name_char_array);
+                       String *val_colname = 
gpdb::MakeStringValue(col_name_char_array);
 
                        alias->colnames = gpdb::LAppend(alias->colnames, 
val_colname);
                        last_attno = attno;
@@ -5328,7 +5328,7 @@ CTranslatorDXLToPlStmt::ProcessDXLTblDescr(
        // if there are any dropped columns at the end, add those too to the 
RangeTblEntry
        for (ULONG ul = last_attno + 1; ul <= num_of_non_sys_cols; ul++)
        {
-               Value *val_dropped_colname = gpdb::MakeStringValue(PStrDup(""));
+               String *val_dropped_colname = 
gpdb::MakeStringValue(PStrDup(""));
                alias->colnames = gpdb::LAppend(alias->colnames, 
val_dropped_colname);
        }
 
diff --git a/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp 
b/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
index 700b596c93b..014fd8ba23a 100644
--- a/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
+++ b/src/backend/gpopt/translate/CTranslatorQueryToDXL.cpp
@@ -4130,8 +4130,7 @@ 
CTranslatorQueryToDXL::TranslateJoinExprInFromToDXL(JoinExpr *join_expr)
                GPOS_ASSERT(IsA(join_alias_node, Var) ||
                                        IsA(join_alias_node, FuncExpr) ||
                                        IsA(join_alias_node, CoalesceExpr));
-               Value *value = (Value *) lfirst(lc_col_name);
-               CHAR *col_name_char_array = strVal(value);
+               CHAR *col_name_char_array = strVal(lfirst(lc_col_name));
 
                // create the DXL node holding the target list entry and add it 
to proj list
                CDXLNode *project_elem_dxlnode = TranslateExprToDXLProject(
diff --git a/src/backend/gpopt/translate/CTranslatorUtils.cpp 
b/src/backend/gpopt/translate/CTranslatorUtils.cpp
index e87e8636d56..221f295df52 100644
--- a/src/backend/gpopt/translate/CTranslatorUtils.cpp
+++ b/src/backend/gpopt/translate/CTranslatorUtils.cpp
@@ -485,11 +485,10 @@ 
CTranslatorUtils::GetColumnDescriptorsFromRecord(CMemoryPool *mp,
        ForThree(col_name, col_names, col_type, col_types, col_type_modifier,
                         col_type_modifiers)
        {
-               Value *value = (Value *) lfirst(col_name);
                Oid coltype = lfirst_oid(col_type);
                INT type_modifier = lfirst_int(col_type_modifier);
 
-               CHAR *col_name_char_array = strVal(value);
+               CHAR *col_name_char_array = strVal(lfirst(col_name));
                CWStringDynamic *column_name =
                        CDXLUtils::CreateDynamicStringFromCharArray(mp,
                                                                                
                                col_name_char_array);
@@ -531,9 +530,7 @@ 
CTranslatorUtils::GetColumnDescriptorsFromRecord(CMemoryPool *mp,
 
        ForEach(col_name, col_names)
        {
-               Value *value = (Value *) lfirst(col_name);
-
-               CHAR *col_name_char_array = strVal(value);
+               CHAR *col_name_char_array = strVal(lfirst(col_name));
                CWStringDynamic *column_name =
                        CDXLUtils::CreateDynamicStringFromCharArray(mp,
                                                                                
                                col_name_char_array);
diff --git a/src/include/gpopt/gpdbwrappers.h b/src/include/gpopt/gpdbwrappers.h
index feb9a0273fe..6af34138faa 100644
--- a/src/include/gpopt/gpdbwrappers.h
+++ b/src/include/gpopt/gpdbwrappers.h
@@ -36,7 +36,6 @@ struct TypeCacheEntry;
 using Numeric = struct NumericData *;
 using HeapTuple = struct HeapTupleData *;
 using Relation = struct RelationData *;
-struct Value;
 using TupleDesc = struct TupleDescData *;
 struct Query;
 using ScanKey = struct ScanKeyData *;
@@ -393,10 +392,10 @@ void ListFreeDeep(List *list);
 TypeCacheEntry *LookupTypeCache(Oid type_id, int flags);
 
 // create a value node for a string
-Value *MakeStringValue(char *str);
+String *MakeStringValue(char *str);
 
 // create a value node for an integer
-Value *MakeIntegerValue(long i);
+Integer *MakeIntegerValue(long i);
 
 // create a constant of type int4
 Node *MakeIntConst(int32 intValue);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to