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]