You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by ma...@apache.org on 2025/08/29 04:10:22 UTC
(cloudberry) branch main updated: Fix dangling pointer issue when mix data from diffrent ORCA caches
This is an automated email from the ASF dual-hosted git repository.
maxyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/main by this push:
new c962f925a6a Fix dangling pointer issue when mix data from diffrent ORCA caches
c962f925a6a is described below
commit c962f925a6a4e457d6a6564d61d5e3ec1c697d76
Author: hanwei <ha...@hashdata.cn>
AuthorDate: Fri Aug 29 09:56:47 2025 +0800
Fix dangling pointer issue when mix data from diffrent ORCA caches
When execute many sql statements in a session, it maybe panic. Cause a
kind of cache will refer another cache, but another cache's entries will
be evicted over time and lead to dangling pointer. So deep copy is
sometimes neccesary.
---
src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp b/src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp
index 83afda566bf..7256409eb54 100644
--- a/src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp
+++ b/src/backend/gpopt/translate/CTranslatorScalarToDXL.cpp
@@ -542,7 +542,7 @@ CTranslatorScalarToDXL::CreateScalarCmpFromOpExpr(
const CWStringConst *str = GetDXLArrayCmpType(mdid);
CDXLScalarComp *dxlop = GPOS_NEW(m_mp) CDXLScalarComp(
- m_mp, mdid, GPOS_NEW(m_mp) CWStringConst(str->GetBuffer()));
+ m_mp, mdid, GPOS_NEW(m_mp) CWStringConst(m_mp, str->GetBuffer()));
// create the DXL node holding the scalar comparison operator
CDXLNode *dxlnode = GPOS_NEW(m_mp) CDXLNode(m_mp, dxlop);
@@ -592,7 +592,7 @@ CTranslatorScalarToDXL::TranslateOpExprToDXL(
CDXLScalarOpExpr *dxlop = GPOS_NEW(m_mp)
CDXLScalarOpExpr(m_mp, mdid, return_type_mdid,
- GPOS_NEW(m_mp) CWStringConst(str->GetBuffer()));
+ GPOS_NEW(m_mp) CWStringConst(m_mp, str->GetBuffer()));
// create the DXL node holding the scalar opexpr
CDXLNode *dxlnode = GPOS_NEW(m_mp) CDXLNode(m_mp, dxlop);
@@ -702,7 +702,7 @@ CTranslatorScalarToDXL::CreateScalarArrayCompFromExpr(
m_mp,
GPOS_NEW(m_mp)
CMDIdGPDB(IMDId::EmdidGeneral, scalar_array_op_expr->opno),
- GPOS_NEW(m_mp) CWStringConst(op_name->GetBuffer()), type);
+ GPOS_NEW(m_mp) CWStringConst(m_mp, op_name->GetBuffer()), type);
// create the DXL node holding the scalar opexpr
CDXLNode *dxlnode = GPOS_NEW(m_mp) CDXLNode(m_mp, dxlop);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org