提交 219fe0c4 编写于 作者: J Jesse Zhang

Format ORCA and GPOPT.

The canonical config file is in src/backend/gpopt/.clang-format (instead
of under the non-existent src/backend/gporca), I've created one (instead
of two) symlink, for GPOPT headers. Care has been taken to repoint the
symlink to the canonical config under gpopt, instead of gpopt as it is
under HEAD.

This is spiritually a cherry-pick of commit 2f7dd76c.
(cherry picked from commit 2f7dd76c)
上级 8b7421b2
...@@ -40,24 +40,26 @@ extern MemoryContext MessageContext; ...@@ -40,24 +40,26 @@ extern MemoryContext MessageContext;
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
PlannedStmt * PlannedStmt *
CGPOptimizer::GPOPTOptimizedPlan CGPOptimizer::GPOPTOptimizedPlan(
(
Query *query, Query *query,
bool *had_unexpected_failure // output : set to true if optimizer unexpectedly failed to produce plan bool *
) had_unexpected_failure // output : set to true if optimizer unexpectedly failed to produce plan
)
{ {
SOptContext gpopt_context; SOptContext gpopt_context;
PlannedStmt* plStmt = NULL; PlannedStmt *plStmt = NULL;
GPOS_TRY GPOS_TRY
{ {
plStmt = COptTasks::GPOPTOptimizedPlan(query, &gpopt_context, had_unexpected_failure); plStmt = COptTasks::GPOPTOptimizedPlan(query, &gpopt_context,
had_unexpected_failure);
// clean up context // clean up context
gpopt_context.Free(gpopt_context.epinQuery, gpopt_context.epinPlStmt); gpopt_context.Free(gpopt_context.epinQuery, gpopt_context.epinPlStmt);
} }
GPOS_CATCH_EX(ex) GPOS_CATCH_EX(ex)
{ {
// clone the error message before context free. // clone the error message before context free.
CHAR* serialized_error_msg = gpopt_context.CloneErrorMsg(MessageContext); CHAR *serialized_error_msg =
gpopt_context.CloneErrorMsg(MessageContext);
// clean up context // clean up context
gpopt_context.Free(gpopt_context.epinQuery, gpopt_context.epinPlStmt); gpopt_context.Free(gpopt_context.epinQuery, gpopt_context.epinPlStmt);
...@@ -66,36 +68,41 @@ CGPOptimizer::GPOPTOptimizedPlan ...@@ -66,36 +68,41 @@ CGPOptimizer::GPOPTOptimizedPlan
// tries to do something smart with them. Also, ERRCODE_INTERNAL_ERROR // tries to do something smart with them. Also, ERRCODE_INTERNAL_ERROR
// is handled specially in elog.c, and we don't want that for "normal" // is handled specially in elog.c, and we don't want that for "normal"
// application errors. // application errors.
if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL, gpdxl::ExmiQuery2DXLNotNullViolation)) if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL,
gpdxl::ExmiQuery2DXLNotNullViolation))
{ {
errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN); errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN);
errfinish(errcode(ERRCODE_NOT_NULL_VIOLATION), errfinish(errcode(ERRCODE_NOT_NULL_VIOLATION),
errmsg("%s", serialized_error_msg)); errmsg("%s", serialized_error_msg));
} }
else if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL, gpdxl::ExmiOptimizerError) || else if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL, gpdxl::ExmiOptimizerError) ||
NULL != serialized_error_msg) NULL != serialized_error_msg)
{ {
Assert(NULL != serialized_error_msg); Assert(NULL != serialized_error_msg);
errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN); errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN);
errfinish(errcode(ERRCODE_INTERNAL_ERROR), errfinish(errcode(ERRCODE_INTERNAL_ERROR),
errmsg("%s", serialized_error_msg)); errmsg("%s", serialized_error_msg));
} }
else if (GPOS_MATCH_EX(ex, gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError)) else if (GPOS_MATCH_EX(ex, gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError))
{ {
PG_RE_THROW(); PG_RE_THROW();
} }
else if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL, gpdxl::ExmiNoAvailableMemory)) else if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL,
gpdxl::ExmiNoAvailableMemory))
{ {
errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN); errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN);
errfinish(errcode(ERRCODE_INTERNAL_ERROR), errfinish(errcode(ERRCODE_INTERNAL_ERROR),
errmsg("No available memory to allocate string buffer.")); errmsg("No available memory to allocate string buffer."));
} }
else if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL, gpdxl::ExmiInvalidComparisonTypeCode)) else if (GPOS_MATCH_EX(ex, gpdxl::ExmaDXL,
gpdxl::ExmiInvalidComparisonTypeCode))
{ {
errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN); errstart(ERROR, ex.Filename(), ex.Line(), NULL, TEXTDOMAIN);
errfinish(errcode(ERRCODE_INTERNAL_ERROR), errfinish(
errmsg("Invalid comparison type code. Valid values are Eq, NEq, LT, LEq, GT, GEq.")); errcode(ERRCODE_INTERNAL_ERROR),
errmsg(
"Invalid comparison type code. Valid values are Eq, NEq, LT, LEq, GT, GEq."));
} }
} }
GPOS_CATCH_END; GPOS_CATCH_END;
...@@ -112,10 +119,7 @@ CGPOptimizer::GPOPTOptimizedPlan ...@@ -112,10 +119,7 @@ CGPOptimizer::GPOPTOptimizedPlan
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
char * char *
CGPOptimizer::SerializeDXLPlan CGPOptimizer::SerializeDXLPlan(Query *query)
(
Query *query
)
{ {
return COptTasks::Optimize(query); return COptTasks::Optimize(query);
} }
...@@ -129,9 +133,8 @@ CGPOptimizer::SerializeDXLPlan ...@@ -129,9 +133,8 @@ CGPOptimizer::SerializeDXLPlan
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CGPOptimizer::InitGPOPT () CGPOptimizer::InitGPOPT()
{ {
if (optimizer_use_gpdb_allocators) if (optimizer_use_gpdb_allocators)
{ {
CMemoryPoolPallocManager::Init(); CMemoryPoolPallocManager::Init();
...@@ -153,7 +156,7 @@ CGPOptimizer::InitGPOPT () ...@@ -153,7 +156,7 @@ CGPOptimizer::InitGPOPT ()
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CGPOptimizer::TerminateGPOPT () CGPOptimizer::TerminateGPOPT()
{ {
gpopt_terminate(); gpopt_terminate();
gpdxl_terminate(); gpdxl_terminate();
...@@ -168,13 +171,9 @@ CGPOptimizer::TerminateGPOPT () ...@@ -168,13 +171,9 @@ CGPOptimizer::TerminateGPOPT ()
// Expose GP optimizer API to C files // Expose GP optimizer API to C files
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
extern "C" extern "C" {
{ PlannedStmt *
PlannedStmt *GPOPTOptimizedPlan GPOPTOptimizedPlan(Query *query, bool *had_unexpected_failure)
(
Query *query,
bool *had_unexpected_failure
)
{ {
return CGPOptimizer::GPOPTOptimizedPlan(query, had_unexpected_failure); return CGPOptimizer::GPOPTOptimizedPlan(query, had_unexpected_failure);
} }
...@@ -188,12 +187,9 @@ PlannedStmt *GPOPTOptimizedPlan ...@@ -188,12 +187,9 @@ PlannedStmt *GPOPTOptimizedPlan
// Serialize planned statement to DXL // Serialize planned statement to DXL
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
extern "C" extern "C" {
{ char *
char *SerializeDXLPlan SerializeDXLPlan(Query *query)
(
Query *query
)
{ {
return CGPOptimizer::SerializeDXLPlan(query); return CGPOptimizer::SerializeDXLPlan(query);
} }
...@@ -207,9 +203,9 @@ char *SerializeDXLPlan ...@@ -207,9 +203,9 @@ char *SerializeDXLPlan
// Initialize GPTOPT and dependent libraries // Initialize GPTOPT and dependent libraries
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
extern "C" extern "C" {
{ void
void InitGPOPT () InitGPOPT()
{ {
GPOS_TRY GPOS_TRY
{ {
...@@ -234,9 +230,9 @@ void InitGPOPT () ...@@ -234,9 +230,9 @@ void InitGPOPT ()
// Terminate GPOPT and dependent libraries // Terminate GPOPT and dependent libraries
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
extern "C" extern "C" {
{ void
void TerminateGPOPT () TerminateGPOPT()
{ {
GPOS_TRY GPOS_TRY
{ {
......
此差异已折叠。
...@@ -35,12 +35,7 @@ using namespace gpmd; ...@@ -35,12 +35,7 @@ using namespace gpmd;
// Constructs a file-based metadata provider // Constructs a file-based metadata provider
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CMDProviderRelcache::CMDProviderRelcache CMDProviderRelcache::CMDProviderRelcache(CMemoryPool *mp) : m_mp(mp)
(
CMemoryPool *mp
)
:
m_mp(mp)
{ {
GPOS_ASSERT(NULL != m_mp); GPOS_ASSERT(NULL != m_mp);
} }
...@@ -54,19 +49,16 @@ CMDProviderRelcache::CMDProviderRelcache ...@@ -54,19 +49,16 @@ CMDProviderRelcache::CMDProviderRelcache
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CWStringBase * CWStringBase *
CMDProviderRelcache::GetMDObjDXLStr CMDProviderRelcache::GetMDObjDXLStr(CMemoryPool *mp, CMDAccessor *md_accessor,
( IMDId *md_id) const
CMemoryPool *mp,
CMDAccessor *md_accessor,
IMDId *md_id
)
const
{ {
IMDCacheObject *md_obj = CTranslatorRelcacheToDXL::RetrieveObject(mp, md_accessor, md_id); IMDCacheObject *md_obj =
CTranslatorRelcacheToDXL::RetrieveObject(mp, md_accessor, md_id);
GPOS_ASSERT(NULL != md_obj); GPOS_ASSERT(NULL != md_obj);
CWStringDynamic *str = CDXLUtils::SerializeMDObj(m_mp, md_obj, true /*fSerializeHeaders*/, false /*findent*/); CWStringDynamic *str = CDXLUtils::SerializeMDObj(
m_mp, md_obj, true /*fSerializeHeaders*/, false /*findent*/);
// cleanup DXL object // cleanup DXL object
md_obj->Release(); md_obj->Release();
......
...@@ -31,27 +31,22 @@ using namespace gpdxl; ...@@ -31,27 +31,22 @@ using namespace gpdxl;
// Ctor: single CTE // Ctor: single CTE
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CCTEListEntry::CCTEListEntry CCTEListEntry::CCTEListEntry(CMemoryPool *mp, ULONG query_level,
( CommonTableExpr *cte, CDXLNode *cte_producer)
CMemoryPool *mp, : m_query_level(query_level), m_cte_info(NULL)
ULONG query_level,
CommonTableExpr *cte,
CDXLNode *cte_producer
)
:
m_query_level(query_level),
m_cte_info(NULL)
{ {
GPOS_ASSERT(NULL != cte && NULL != cte_producer); GPOS_ASSERT(NULL != cte && NULL != cte_producer);
m_cte_info = GPOS_NEW(mp) HMSzCTEInfo(mp); m_cte_info = GPOS_NEW(mp) HMSzCTEInfo(mp);
Query *cte_query = (Query*) cte->ctequery; Query *cte_query = (Query *) cte->ctequery;
#ifdef GPOS_DEBUG #ifdef GPOS_DEBUG
BOOL result = BOOL result =
#endif #endif
m_cte_info->Insert(cte->ctename, GPOS_NEW(mp) SCTEProducerInfo(cte_producer, cte_query->targetList)); m_cte_info->Insert(
cte->ctename,
GPOS_NEW(mp) SCTEProducerInfo(cte_producer, cte_query->targetList));
GPOS_ASSERT(result); GPOS_ASSERT(result);
} }
...@@ -63,35 +58,30 @@ CCTEListEntry::CCTEListEntry ...@@ -63,35 +58,30 @@ CCTEListEntry::CCTEListEntry
// Ctor: multiple CTEs // Ctor: multiple CTEs
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CCTEListEntry::CCTEListEntry CCTEListEntry::CCTEListEntry(CMemoryPool *mp, ULONG query_level, List *cte_list,
( CDXLNodeArray *cte_dxl_arr)
CMemoryPool *mp, : m_query_level(query_level), m_cte_info(NULL)
ULONG query_level,
List *cte_list,
CDXLNodeArray *cte_dxl_arr
)
:
m_query_level(query_level),
m_cte_info(NULL)
{ {
GPOS_ASSERT(NULL != cte_dxl_arr); GPOS_ASSERT(NULL != cte_dxl_arr);
GPOS_ASSERT(cte_dxl_arr->Size() == gpdb::ListLength(cte_list)); GPOS_ASSERT(cte_dxl_arr->Size() == gpdb::ListLength(cte_list));
m_cte_info = GPOS_NEW(mp) HMSzCTEInfo(mp); m_cte_info = GPOS_NEW(mp) HMSzCTEInfo(mp);
const ULONG num_cte = cte_dxl_arr->Size(); const ULONG num_cte = cte_dxl_arr->Size();
for (ULONG ul = 0; ul < num_cte; ul++) for (ULONG ul = 0; ul < num_cte; ul++)
{ {
CDXLNode *cte_producer = (*cte_dxl_arr)[ul]; CDXLNode *cte_producer = (*cte_dxl_arr)[ul];
CommonTableExpr *cte = (CommonTableExpr*) gpdb::ListNth(cte_list, ul); CommonTableExpr *cte = (CommonTableExpr *) gpdb::ListNth(cte_list, ul);
Query *cte_query = (Query *) cte->ctequery;
Query *cte_query = (Query*) cte->ctequery;
#ifdef GPOS_DEBUG #ifdef GPOS_DEBUG
BOOL result = BOOL result =
#endif #endif
m_cte_info->Insert(cte->ctename, GPOS_NEW(mp) SCTEProducerInfo(cte_producer, cte_query->targetList)); m_cte_info->Insert(cte->ctename,
GPOS_NEW(mp) SCTEProducerInfo(
cte_producer, cte_query->targetList));
GPOS_ASSERT(result); GPOS_ASSERT(result);
GPOS_ASSERT(NULL != m_cte_info->Find(cte->ctename)); GPOS_ASSERT(NULL != m_cte_info->Find(cte->ctename));
} }
...@@ -106,18 +96,14 @@ CCTEListEntry::CCTEListEntry ...@@ -106,18 +96,14 @@ CCTEListEntry::CCTEListEntry
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
const CDXLNode * const CDXLNode *
CCTEListEntry::GetCTEProducer CCTEListEntry::GetCTEProducer(const CHAR *cte_str) const
(
const CHAR *cte_str
)
const
{ {
SCTEProducerInfo *cte_info = m_cte_info->Find(cte_str); SCTEProducerInfo *cte_info = m_cte_info->Find(cte_str);
if (NULL == cte_info) if (NULL == cte_info)
{ {
return NULL; return NULL;
} }
return cte_info->m_cte_producer; return cte_info->m_cte_producer;
} }
...@@ -130,18 +116,14 @@ CCTEListEntry::GetCTEProducer ...@@ -130,18 +116,14 @@ CCTEListEntry::GetCTEProducer
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
List * List *
CCTEListEntry::GetCTEProducerTargetList CCTEListEntry::GetCTEProducerTargetList(const CHAR *cte_str) const
(
const CHAR *cte_str
)
const
{ {
SCTEProducerInfo *cte_info = m_cte_info->Find(cte_str); SCTEProducerInfo *cte_info = m_cte_info->Find(cte_str);
if (NULL == cte_info) if (NULL == cte_info)
{ {
return NULL; return NULL;
} }
return cte_info->m_target_list; return cte_info->m_target_list;
} }
...@@ -154,21 +136,20 @@ CCTEListEntry::GetCTEProducerTargetList ...@@ -154,21 +136,20 @@ CCTEListEntry::GetCTEProducerTargetList
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CCTEListEntry::AddCTEProducer CCTEListEntry::AddCTEProducer(CMemoryPool *mp, CommonTableExpr *cte,
( const CDXLNode *cte_producer)
CMemoryPool *mp,
CommonTableExpr *cte,
const CDXLNode *cte_producer
)
{ {
GPOS_ASSERT(NULL == m_cte_info->Find(cte->ctename) && "CTE entry already exists"); GPOS_ASSERT(NULL == m_cte_info->Find(cte->ctename) &&
Query *cte_query = (Query*) cte->ctequery; "CTE entry already exists");
Query *cte_query = (Query *) cte->ctequery;
#ifdef GPOS_DEBUG #ifdef GPOS_DEBUG
BOOL result = BOOL result =
#endif #endif
m_cte_info->Insert(cte->ctename, GPOS_NEW(mp) SCTEProducerInfo(cte_producer, cte_query->targetList)); m_cte_info->Insert(
cte->ctename,
GPOS_NEW(mp) SCTEProducerInfo(cte_producer, cte_query->targetList));
GPOS_ASSERT(result); GPOS_ASSERT(result);
} }
......
...@@ -33,27 +33,23 @@ using namespace gpdxl; ...@@ -33,27 +33,23 @@ using namespace gpdxl;
// Ctor // Ctor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CContextDXLToPlStmt::CContextDXLToPlStmt CContextDXLToPlStmt::CContextDXLToPlStmt(CMemoryPool *mp,
( CIdGenerator *plan_id_counter,
CMemoryPool *mp, CIdGenerator *motion_id_counter,
CIdGenerator *plan_id_counter, CIdGenerator *param_id_counter,
CIdGenerator *motion_id_counter, List **rtable_entries_list,
CIdGenerator *param_id_counter, List **subplan_entries_list)
List **rtable_entries_list, : m_mp(mp),
List **subplan_entries_list m_plan_id_counter(plan_id_counter),
) m_motion_id_counter(motion_id_counter),
: m_param_id_counter(param_id_counter),
m_mp(mp), m_rtable_entries_list(rtable_entries_list),
m_plan_id_counter(plan_id_counter), m_partitioned_tables_list(NULL),
m_motion_id_counter(motion_id_counter), m_num_partition_selectors_array(NULL),
m_param_id_counter(param_id_counter), m_subplan_entries_list(subplan_entries_list),
m_rtable_entries_list(rtable_entries_list), m_result_relation_index(0),
m_partitioned_tables_list(NULL), m_into_clause(NULL),
m_num_partition_selectors_array(NULL), m_distribution_policy(NULL)
m_subplan_entries_list(subplan_entries_list),
m_result_relation_index(0),
m_into_clause(NULL),
m_distribution_policy(NULL)
{ {
m_cte_consumer_info = GPOS_NEW(m_mp) HMUlCTEConsumerInfo(m_mp); m_cte_consumer_info = GPOS_NEW(m_mp) HMUlCTEConsumerInfo(m_mp);
m_num_partition_selectors_array = GPOS_NEW(m_mp) ULongPtrArray(m_mp); m_num_partition_selectors_array = GPOS_NEW(m_mp) ULongPtrArray(m_mp);
...@@ -152,11 +148,8 @@ CContextDXLToPlStmt::GetCurrentParamId() ...@@ -152,11 +148,8 @@ CContextDXLToPlStmt::GetCurrentParamId()
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CContextDXLToPlStmt::AddCTEConsumerInfo CContextDXLToPlStmt::AddCTEConsumerInfo(ULONG cte_id,
( ShareInputScan *share_input_scan)
ULONG cte_id,
ShareInputScan *share_input_scan
)
{ {
GPOS_ASSERT(NULL != share_input_scan); GPOS_ASSERT(NULL != share_input_scan);
...@@ -173,7 +166,8 @@ CContextDXLToPlStmt::AddCTEConsumerInfo ...@@ -173,7 +166,8 @@ CContextDXLToPlStmt::AddCTEConsumerInfo
#ifdef GPOS_DEBUG #ifdef GPOS_DEBUG
BOOL result = BOOL result =
#endif #endif
m_cte_consumer_info->Insert(key, GPOS_NEW(m_mp) SCTEConsumerInfo(cte_plan)); m_cte_consumer_info->Insert(key,
GPOS_NEW(m_mp) SCTEConsumerInfo(cte_plan));
GPOS_ASSERT(result); GPOS_ASSERT(result);
} }
...@@ -187,11 +181,7 @@ CContextDXLToPlStmt::AddCTEConsumerInfo ...@@ -187,11 +181,7 @@ CContextDXLToPlStmt::AddCTEConsumerInfo
// with the given CTE identifier // with the given CTE identifier
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
List * List *
CContextDXLToPlStmt::GetCTEConsumerList CContextDXLToPlStmt::GetCTEConsumerList(ULONG cte_id) const
(
ULONG cte_id
)
const
{ {
SCTEConsumerInfo *cte_info = m_cte_consumer_info->Find(&cte_id); SCTEConsumerInfo *cte_info = m_cte_consumer_info->Find(&cte_id);
if (NULL != cte_info) if (NULL != cte_info)
...@@ -239,19 +229,16 @@ CContextDXLToPlStmt::GetSubplanEntriesList() ...@@ -239,19 +229,16 @@ CContextDXLToPlStmt::GetSubplanEntriesList()
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CContextDXLToPlStmt::AddRTE CContextDXLToPlStmt::AddRTE(RangeTblEntry *rte, BOOL is_result_relation)
(
RangeTblEntry *rte,
BOOL is_result_relation
)
{ {
(* (m_rtable_entries_list)) = gpdb::LAppend((*(m_rtable_entries_list)), rte); (*(m_rtable_entries_list)) = gpdb::LAppend((*(m_rtable_entries_list)), rte);
rte->inFromCl = true; rte->inFromCl = true;
if (is_result_relation) if (is_result_relation)
{ {
GPOS_ASSERT(0 == m_result_relation_index && "Only one result relation supported"); GPOS_ASSERT(0 == m_result_relation_index &&
"Only one result relation supported");
rte->inFromCl = false; rte->inFromCl = false;
m_result_relation_index = gpdb::ListLength(*(m_rtable_entries_list)); m_result_relation_index = gpdb::ListLength(*(m_rtable_entries_list));
} }
...@@ -266,14 +253,12 @@ CContextDXLToPlStmt::AddRTE ...@@ -266,14 +253,12 @@ CContextDXLToPlStmt::AddRTE
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CContextDXLToPlStmt::AddPartitionedTable CContextDXLToPlStmt::AddPartitionedTable(OID oid)
(
OID oid
)
{ {
if (!gpdb::ListMemberOid(m_partitioned_tables_list, oid)) if (!gpdb::ListMemberOid(m_partitioned_tables_list, oid))
{ {
m_partitioned_tables_list = gpdb::LAppendOid(m_partitioned_tables_list, oid); m_partitioned_tables_list =
gpdb::LAppendOid(m_partitioned_tables_list, oid);
} }
} }
...@@ -286,10 +271,7 @@ CContextDXLToPlStmt::AddPartitionedTable ...@@ -286,10 +271,7 @@ CContextDXLToPlStmt::AddPartitionedTable
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CContextDXLToPlStmt::IncrementPartitionSelectors CContextDXLToPlStmt::IncrementPartitionSelectors(ULONG scan_id)
(
ULONG scan_id
)
{ {
// add extra elements to the array if necessary // add extra elements to the array if necessary
const ULONG len = m_num_partition_selectors_array->Size(); const ULONG len = m_num_partition_selectors_array->Size();
...@@ -300,7 +282,7 @@ CContextDXLToPlStmt::IncrementPartitionSelectors ...@@ -300,7 +282,7 @@ CContextDXLToPlStmt::IncrementPartitionSelectors
} }
ULONG *ul = (*m_num_partition_selectors_array)[scan_id]; ULONG *ul = (*m_num_partition_selectors_array)[scan_id];
(*ul) ++; (*ul)++;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -319,7 +301,8 @@ CContextDXLToPlStmt::GetNumPartitionSelectorsList() const ...@@ -319,7 +301,8 @@ CContextDXLToPlStmt::GetNumPartitionSelectorsList() const
for (ULONG ul = 0; ul < len; ul++) for (ULONG ul = 0; ul < len; ul++)
{ {
ULONG *num_partition_selectors = (*m_num_partition_selectors_array)[ul]; ULONG *num_partition_selectors = (*m_num_partition_selectors_array)[ul];
partition_selectors_list = gpdb::LAppendInt(partition_selectors_list, *num_partition_selectors); partition_selectors_list = gpdb::LAppendInt(partition_selectors_list,
*num_partition_selectors);
} }
return partition_selectors_list; return partition_selectors_list;
...@@ -336,7 +319,8 @@ CContextDXLToPlStmt::GetNumPartitionSelectorsList() const ...@@ -336,7 +319,8 @@ CContextDXLToPlStmt::GetNumPartitionSelectorsList() const
void void
CContextDXLToPlStmt::AddSubplan(Plan *plan) CContextDXLToPlStmt::AddSubplan(Plan *plan)
{ {
(* (m_subplan_entries_list)) = gpdb::LAppend((*(m_subplan_entries_list)), plan); (*(m_subplan_entries_list)) =
gpdb::LAppend((*(m_subplan_entries_list)), plan);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -348,15 +332,12 @@ CContextDXLToPlStmt::AddSubplan(Plan *plan) ...@@ -348,15 +332,12 @@ CContextDXLToPlStmt::AddSubplan(Plan *plan)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CContextDXLToPlStmt::AddCtasInfo CContextDXLToPlStmt::AddCtasInfo(IntoClause *into_clause,
( GpPolicy *distribution_policy)
IntoClause *into_clause,
GpPolicy *distribution_policy
)
{ {
GPOS_ASSERT(NULL != into_clause); GPOS_ASSERT(NULL != into_clause);
GPOS_ASSERT(NULL != distribution_policy); GPOS_ASSERT(NULL != distribution_policy);
m_into_clause = into_clause; m_into_clause = into_clause;
m_distribution_policy = distribution_policy; m_distribution_policy = distribution_policy;
} }
......
...@@ -26,14 +26,9 @@ using namespace gpos; ...@@ -26,14 +26,9 @@ using namespace gpos;
// Ctor // Ctor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CDXLTranslateContext::CDXLTranslateContext CDXLTranslateContext::CDXLTranslateContext(CMemoryPool *mp,
( BOOL is_child_agg_node)
CMemoryPool *mp, : m_mp(mp), m_is_child_agg_node(is_child_agg_node)
BOOL is_child_agg_node
)
:
m_mp(mp),
m_is_child_agg_node(is_child_agg_node)
{ {
// initialize hash table // initialize hash table
m_colid_to_target_entry_map = GPOS_NEW(m_mp) ULongToTargetEntryMap(m_mp); m_colid_to_target_entry_map = GPOS_NEW(m_mp) ULongToTargetEntryMap(m_mp);
...@@ -48,15 +43,10 @@ CDXLTranslateContext::CDXLTranslateContext ...@@ -48,15 +43,10 @@ CDXLTranslateContext::CDXLTranslateContext
// Ctor // Ctor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CDXLTranslateContext::CDXLTranslateContext CDXLTranslateContext::CDXLTranslateContext(CMemoryPool *mp,
( BOOL is_child_agg_node,
CMemoryPool *mp, ULongToColParamMap *original)
BOOL is_child_agg_node, : m_mp(mp), m_is_child_agg_node(is_child_agg_node)
ULongToColParamMap *original
)
:
m_mp(mp),
m_is_child_agg_node(is_child_agg_node)
{ {
m_colid_to_target_entry_map = GPOS_NEW(m_mp) ULongToTargetEntryMap(m_mp); m_colid_to_target_entry_map = GPOS_NEW(m_mp) ULongToTargetEntryMap(m_mp);
m_colid_to_paramid_map = GPOS_NEW(m_mp) ULongToColParamMap(m_mp); m_colid_to_paramid_map = GPOS_NEW(m_mp) ULongToColParamMap(m_mp);
...@@ -100,16 +90,14 @@ CDXLTranslateContext::IsParentAggNode() const ...@@ -100,16 +90,14 @@ CDXLTranslateContext::IsParentAggNode() const
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CDXLTranslateContext::CopyParamHashmap CDXLTranslateContext::CopyParamHashmap(ULongToColParamMap *original)
(
ULongToColParamMap *original
)
{ {
// iterate over full map // iterate over full map
ULongToColParamMapIter hashmapiter(original); ULongToColParamMapIter hashmapiter(original);
while (hashmapiter.Advance()) while (hashmapiter.Advance())
{ {
CMappingElementColIdParamId *colidparamid = const_cast<CMappingElementColIdParamId *>(hashmapiter.Value()); CMappingElementColIdParamId *colidparamid =
const_cast<CMappingElementColIdParamId *>(hashmapiter.Value());
const ULONG colid = colidparamid->GetColId(); const ULONG colid = colidparamid->GetColId();
ULONG *key = GPOS_NEW(m_mp) ULONG(colid); ULONG *key = GPOS_NEW(m_mp) ULONG(colid);
...@@ -127,11 +115,7 @@ CDXLTranslateContext::CopyParamHashmap ...@@ -127,11 +115,7 @@ CDXLTranslateContext::CopyParamHashmap
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
const TargetEntry * const TargetEntry *
CDXLTranslateContext::GetTargetEntry CDXLTranslateContext::GetTargetEntry(ULONG colid) const
(
ULONG colid
)
const
{ {
return m_colid_to_target_entry_map->Find(&colid); return m_colid_to_target_entry_map->Find(&colid);
} }
...@@ -145,11 +129,7 @@ CDXLTranslateContext::GetTargetEntry ...@@ -145,11 +129,7 @@ CDXLTranslateContext::GetTargetEntry
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
const CMappingElementColIdParamId * const CMappingElementColIdParamId *
CDXLTranslateContext::GetParamIdMappingElement CDXLTranslateContext::GetParamIdMappingElement(ULONG colid) const
(
ULONG colid
)
const
{ {
return m_colid_to_paramid_map->Find(&colid); return m_colid_to_paramid_map->Find(&colid);
} }
...@@ -163,11 +143,7 @@ CDXLTranslateContext::GetParamIdMappingElement ...@@ -163,11 +143,7 @@ CDXLTranslateContext::GetParamIdMappingElement
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CDXLTranslateContext::InsertMapping CDXLTranslateContext::InsertMapping(ULONG colid, TargetEntry *target_entry)
(
ULONG colid,
TargetEntry *target_entry
)
{ {
// copy key // copy key
ULONG *key = GPOS_NEW(m_mp) ULONG(colid); ULONG *key = GPOS_NEW(m_mp) ULONG(colid);
...@@ -190,11 +166,8 @@ CDXLTranslateContext::InsertMapping ...@@ -190,11 +166,8 @@ CDXLTranslateContext::InsertMapping
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
BOOL BOOL
CDXLTranslateContext::FInsertParamMapping CDXLTranslateContext::FInsertParamMapping(
( ULONG colid, CMappingElementColIdParamId *colidparamid)
ULONG colid,
CMappingElementColIdParamId *colidparamid
)
{ {
// copy key // copy key
ULONG *key = GPOS_NEW(m_mp) ULONG(colid); ULONG *key = GPOS_NEW(m_mp) ULONG(colid);
......
...@@ -27,14 +27,8 @@ using namespace gpos; ...@@ -27,14 +27,8 @@ using namespace gpos;
// Constructor // Constructor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CDXLTranslateContextBaseTable::CDXLTranslateContextBaseTable CDXLTranslateContextBaseTable::CDXLTranslateContextBaseTable(CMemoryPool *mp)
( : m_mp(mp), m_oid(InvalidOid), m_rel_index(0)
CMemoryPool *mp
)
:
m_mp(mp),
m_oid(InvalidOid),
m_rel_index(0)
{ {
// initialize hash table // initialize hash table
m_colid_to_attno_map = GPOS_NEW(m_mp) UlongToIntMap(m_mp); m_colid_to_attno_map = GPOS_NEW(m_mp) UlongToIntMap(m_mp);
...@@ -63,10 +57,7 @@ CDXLTranslateContextBaseTable::~CDXLTranslateContextBaseTable() ...@@ -63,10 +57,7 @@ CDXLTranslateContextBaseTable::~CDXLTranslateContextBaseTable()
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CDXLTranslateContextBaseTable::SetOID CDXLTranslateContextBaseTable::SetOID(OID oid)
(
OID oid
)
{ {
GPOS_ASSERT(oid != InvalidOid); GPOS_ASSERT(oid != InvalidOid);
m_oid = oid; m_oid = oid;
...@@ -81,10 +72,7 @@ CDXLTranslateContextBaseTable::SetOID ...@@ -81,10 +72,7 @@ CDXLTranslateContextBaseTable::SetOID
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void void
CDXLTranslateContextBaseTable::SetRelIndex CDXLTranslateContextBaseTable::SetRelIndex(Index rel_index)
(
Index rel_index
)
{ {
GPOS_ASSERT(0 < rel_index); GPOS_ASSERT(0 < rel_index);
m_rel_index = rel_index; m_rel_index = rel_index;
...@@ -129,11 +117,7 @@ CDXLTranslateContextBaseTable::GetRelIndex() const ...@@ -129,11 +117,7 @@ CDXLTranslateContextBaseTable::GetRelIndex() const
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
INT INT
CDXLTranslateContextBaseTable::GetAttnoForColId CDXLTranslateContextBaseTable::GetAttnoForColId(ULONG colid) const
(
ULONG colid
)
const
{ {
const INT *pi = m_colid_to_attno_map->Find(&colid); const INT *pi = m_colid_to_attno_map->Find(&colid);
if (NULL != pi) if (NULL != pi)
...@@ -155,11 +139,7 @@ CDXLTranslateContextBaseTable::GetAttnoForColId ...@@ -155,11 +139,7 @@ CDXLTranslateContextBaseTable::GetAttnoForColId
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
BOOL BOOL
CDXLTranslateContextBaseTable::InsertMapping CDXLTranslateContextBaseTable::InsertMapping(ULONG dxl_colid, INT att_no)
(
ULONG dxl_colid,
INT att_no
)
{ {
// copy key and value // copy key and value
ULONG *key = GPOS_NEW(m_mp) ULONG(dxl_colid); ULONG *key = GPOS_NEW(m_mp) ULONG(dxl_colid);
......
...@@ -25,12 +25,7 @@ using namespace gpdxl; ...@@ -25,12 +25,7 @@ using namespace gpdxl;
// Constructor // Constructor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CMappingColIdVar::CMappingColIdVar CMappingColIdVar::CMappingColIdVar(CMemoryPool *mp) : m_mp(mp)
(
CMemoryPool *mp
)
:
m_mp(mp)
{ {
} }
......
...@@ -41,20 +41,16 @@ using namespace gpmd; ...@@ -41,20 +41,16 @@ using namespace gpmd;
// Constructor // Constructor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CMappingColIdVarPlStmt::CMappingColIdVarPlStmt CMappingColIdVarPlStmt::CMappingColIdVarPlStmt(
( CMemoryPool *mp, const CDXLTranslateContextBaseTable *base_table_context,
CMemoryPool *mp,
const CDXLTranslateContextBaseTable *base_table_context,
CDXLTranslationContextArray *child_contexts, CDXLTranslationContextArray *child_contexts,
CDXLTranslateContext *output_context, CDXLTranslateContext *output_context,
CContextDXLToPlStmt *dxl_to_plstmt_context CContextDXLToPlStmt *dxl_to_plstmt_context)
) : CMappingColIdVar(mp),
: m_base_table_context(base_table_context),
CMappingColIdVar(mp), m_child_contexts(child_contexts),
m_base_table_context(base_table_context), m_output_context(output_context),
m_child_contexts(child_contexts), m_dxl_to_plstmt_context(dxl_to_plstmt_context)
m_output_context(output_context),
m_dxl_to_plstmt_context(dxl_to_plstmt_context)
{ {
} }
...@@ -95,17 +91,15 @@ CMappingColIdVarPlStmt::GetOutputContext() ...@@ -95,17 +91,15 @@ CMappingColIdVarPlStmt::GetOutputContext()
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
Param * Param *
CMappingColIdVarPlStmt::ParamFromDXLNodeScId CMappingColIdVarPlStmt::ParamFromDXLNodeScId(const CDXLScalarIdent *dxlop)
(
const CDXLScalarIdent *dxlop
)
{ {
GPOS_ASSERT(NULL != m_output_context); GPOS_ASSERT(NULL != m_output_context);
Param *param = NULL; Param *param = NULL;
const ULONG colid = dxlop->GetDXLColRef()->Id(); const ULONG colid = dxlop->GetDXLColRef()->Id();
const CMappingElementColIdParamId *elem = m_output_context->GetParamIdMappingElement(colid); const CMappingElementColIdParamId *elem =
m_output_context->GetParamIdMappingElement(colid);
if (NULL != elem) if (NULL != elem)
{ {
...@@ -128,10 +122,7 @@ CMappingColIdVarPlStmt::ParamFromDXLNodeScId ...@@ -128,10 +122,7 @@ CMappingColIdVarPlStmt::ParamFromDXLNodeScId
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
Var * Var *
CMappingColIdVarPlStmt::VarFromDXLNodeScId CMappingColIdVarPlStmt::VarFromDXLNodeScId(const CDXLScalarIdent *dxlop)
(
const CDXLScalarIdent *dxlop
)
{ {
Index varno = 0; Index varno = 0;
AttrNumber attno = 0; AttrNumber attno = 0;
...@@ -199,14 +190,15 @@ CMappingColIdVarPlStmt::VarFromDXLNodeScId ...@@ -199,14 +190,15 @@ CMappingColIdVarPlStmt::VarFromDXLNodeScId
continue; continue;
} }
Var *var = (Var*) target_entry->expr; Var *var = (Var *) target_entry->expr;
varno = var->varno; varno = var->varno;
} }
} }
if (NULL == target_entry) if (NULL == target_entry)
{ {
GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXL2PlStmtAttributeNotFound, colid); GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXL2PlStmtAttributeNotFound,
colid);
} }
attno = target_entry->resno; attno = target_entry->resno;
...@@ -214,7 +206,7 @@ CMappingColIdVarPlStmt::VarFromDXLNodeScId ...@@ -214,7 +206,7 @@ CMappingColIdVarPlStmt::VarFromDXLNodeScId
// find the original varno and attno for this column // find the original varno and attno for this column
if (IsA(target_entry->expr, Var)) if (IsA(target_entry->expr, Var))
{ {
Var *var = (Var*) target_entry->expr; Var *var = (Var *) target_entry->expr;
varno_old = var->varnoold; varno_old = var->varnoold;
attno_old = var->varoattno; attno_old = var->varoattno;
} }
...@@ -225,14 +217,11 @@ CMappingColIdVarPlStmt::VarFromDXLNodeScId ...@@ -225,14 +217,11 @@ CMappingColIdVarPlStmt::VarFromDXLNodeScId
} }
} }
Var *var = gpdb::MakeVar Var *var = gpdb::MakeVar(varno, attno,
( CMDIdGPDB::CastMdid(dxlop->MdidType())->Oid(),
varno, dxlop->TypeModifier(),
attno, 0 // varlevelsup
CMDIdGPDB::CastMdid(dxlop->MdidType())->Oid(), );
dxlop->TypeModifier(),
0 // varlevelsup
);
// set varnoold and varoattno since makeVar does not set them properly // set varnoold and varoattno since makeVar does not set them properly
var->varnoold = varno_old; var->varnoold = varno_old;
......
...@@ -31,18 +31,14 @@ using namespace gpos; ...@@ -31,18 +31,14 @@ using namespace gpos;
// Ctor // Ctor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CMappingElementColIdParamId::CMappingElementColIdParamId CMappingElementColIdParamId::CMappingElementColIdParamId(ULONG colid,
( ULONG paramid,
ULONG colid, IMDId *mdid,
ULONG paramid, INT type_modifier)
IMDId *mdid, : m_colid(colid),
INT type_modifier m_paramid(paramid),
) m_mdid(mdid),
: m_type_modifier(type_modifier)
m_colid(colid),
m_paramid(paramid),
m_mdid(mdid),
m_type_modifier(type_modifier)
{ {
} }
......
...@@ -31,16 +31,9 @@ using namespace gpos; ...@@ -31,16 +31,9 @@ using namespace gpos;
// Constructor // Constructor
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CMappingElementColIdTE::CMappingElementColIdTE CMappingElementColIdTE::CMappingElementColIdTE(ULONG colid, ULONG query_level,
( TargetEntry *target_entry)
ULONG colid, : m_colid(colid), m_query_level(query_level), m_target_entry(target_entry)
ULONG query_level,
TargetEntry *target_entry
)
:
m_colid(colid),
m_query_level(query_level),
m_target_entry(target_entry)
{ {
} }
......
...@@ -65,9 +65,11 @@ CCatalogUtils::GetFunctionOids() ...@@ -65,9 +65,11 @@ CCatalogUtils::GetFunctionOids()
// Return list of all oids_list from the catalog // Return list of all oids_list from the catalog
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
List *CCatalogUtils::GetAllOids() List *
CCatalogUtils::GetAllOids()
{ {
return list_concat(list_concat(GetRelationOids(), GetOperatorOids()), GetFunctionOids()); return list_concat(list_concat(GetRelationOids(), GetOperatorOids()),
GetFunctionOids());
} }
// EOF // EOF
...@@ -40,13 +40,13 @@ using namespace gpos; ...@@ -40,13 +40,13 @@ using namespace gpos;
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
Var * Var *
CConstExprEvaluatorProxy::CEmptyMappingColIdVar::VarFromDXLNodeScId CConstExprEvaluatorProxy::CEmptyMappingColIdVar::VarFromDXLNodeScId(
( const CDXLScalarIdent * /*scalar_ident*/
const CDXLScalarIdent */*scalar_ident*/ )
)
{ {
elog(LOG, "Expression passed to CConstExprEvaluatorProxy contains variables. " elog(LOG,
"Evaluation will fail and an exception will be thrown."); "Expression passed to CConstExprEvaluatorProxy contains variables. "
"Evaluation will fail and an exception will be thrown.");
GPOS_RAISE(gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError); GPOS_RAISE(gpdxl::ExmaGPDB, gpdxl::ExmiGPDBError);
return NULL; return NULL;
} }
...@@ -61,31 +61,33 @@ CConstExprEvaluatorProxy::CEmptyMappingColIdVar::VarFromDXLNodeScId ...@@ -61,31 +61,33 @@ CConstExprEvaluatorProxy::CEmptyMappingColIdVar::VarFromDXLNodeScId
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
CDXLNode * CDXLNode *
CConstExprEvaluatorProxy::EvaluateExpr CConstExprEvaluatorProxy::EvaluateExpr(const CDXLNode *dxl_expr)
(
const CDXLNode *dxl_expr
)
{ {
// Translate DXL -> GPDB Expr // Translate DXL -> GPDB Expr
Expr *expr = m_dxl2scalar_translator.TranslateDXLToScalar(dxl_expr, &m_emptymapcidvar); Expr *expr = m_dxl2scalar_translator.TranslateDXLToScalar(
dxl_expr, &m_emptymapcidvar);
GPOS_ASSERT(NULL != expr); GPOS_ASSERT(NULL != expr);
// Evaluate the expression // Evaluate the expression
Expr *result = gpdb::EvaluateExpr(expr, Expr *result = gpdb::EvaluateExpr(expr, gpdb::ExprType((Node *) expr),
gpdb::ExprType((Node *)expr), gpdb::ExprTypeMod((Node *) expr));
gpdb::ExprTypeMod((Node *)expr));
if (!IsA(result, Const)) if (!IsA(result, Const))
{ {
#ifdef GPOS_DEBUG #ifdef GPOS_DEBUG
elog(NOTICE, "Expression did not evaluate to Const, but to an expression of type %d", result->type); elog(
#endif NOTICE,
"Expression did not evaluate to Const, but to an expression of type %d",
result->type);
#endif
GPOS_RAISE(gpdxl::ExmaConstExprEval, gpdxl::ExmiConstExprEvalNonConst); GPOS_RAISE(gpdxl::ExmaConstExprEval, gpdxl::ExmiConstExprEvalNonConst);
} }
Const *const_result = (Const *)result; Const *const_result = (Const *) result;
CDXLDatum *datum_dxl = CTranslatorScalarToDXL::TranslateConstToDXL(m_mp, m_md_accessor, const_result); CDXLDatum *datum_dxl = CTranslatorScalarToDXL::TranslateConstToDXL(
CDXLNode *dxl_result = GPOS_NEW(m_mp) CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarConstValue(m_mp, datum_dxl)); m_mp, m_md_accessor, const_result);
CDXLNode *dxl_result = GPOS_NEW(m_mp)
CDXLNode(m_mp, GPOS_NEW(m_mp) CDXLScalarConstValue(m_mp, datum_dxl));
gpdb::GPDBFree(result); gpdb::GPDBFree(result);
gpdb::GPDBFree(expr); gpdb::GPDBFree(expr);
......
...@@ -24,20 +24,14 @@ extern "C" { ...@@ -24,20 +24,14 @@ extern "C" {
using namespace gpos; using namespace gpos;
// ctor // ctor
CMemoryPoolPalloc::CMemoryPoolPalloc() CMemoryPoolPalloc::CMemoryPoolPalloc() : m_cxt(NULL)
: m_cxt(NULL)
{ {
m_cxt = gpdb::GPDBAllocSetContextCreate(); m_cxt = gpdb::GPDBAllocSetContextCreate();
} }
void * void *
CMemoryPoolPalloc::NewImpl CMemoryPoolPalloc::NewImpl(const ULONG bytes, const CHAR *, const ULONG,
( CMemoryPool::EAllocationType eat)
const ULONG bytes,
const CHAR *,
const ULONG,
CMemoryPool::EAllocationType eat
)
{ {
// if it's a singleton allocation, allocate requested memory // if it's a singleton allocation, allocate requested memory
if (CMemoryPool::EatSingleton == eat) if (CMemoryPool::EatSingleton == eat)
...@@ -47,7 +41,8 @@ CMemoryPoolPalloc::NewImpl ...@@ -47,7 +41,8 @@ CMemoryPoolPalloc::NewImpl
// if it's an array allocation, allocate header + requested memory // if it's an array allocation, allocate header + requested memory
else else
{ {
ULONG alloc_size = GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader) + GPOS_MEM_ALIGNED_SIZE(bytes); ULONG alloc_size = GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader) +
GPOS_MEM_ALIGNED_SIZE(bytes);
void *ptr = gpdb::GPDBMemoryContextAlloc(m_cxt, alloc_size); void *ptr = gpdb::GPDBMemoryContextAlloc(m_cxt, alloc_size);
...@@ -56,10 +51,11 @@ CMemoryPoolPalloc::NewImpl ...@@ -56,10 +51,11 @@ CMemoryPoolPalloc::NewImpl
return NULL; return NULL;
} }
SArrayAllocHeader *header = static_cast<SArrayAllocHeader*>(ptr); SArrayAllocHeader *header = static_cast<SArrayAllocHeader *>(ptr);
header->m_user_size = bytes; header->m_user_size = bytes;
return static_cast<BYTE*>(ptr) + GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader); return static_cast<BYTE *>(ptr) +
GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader);
} }
} }
...@@ -72,7 +68,8 @@ CMemoryPoolPalloc::DeleteImpl(void *ptr, CMemoryPool::EAllocationType eat) ...@@ -72,7 +68,8 @@ CMemoryPoolPalloc::DeleteImpl(void *ptr, CMemoryPool::EAllocationType eat)
} }
else else
{ {
void* header = static_cast<BYTE*>(ptr) - GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader); void *header = static_cast<BYTE *>(ptr) -
GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader);
gpdb::GPDBFree(header); gpdb::GPDBFree(header);
} }
} }
...@@ -96,8 +93,10 @@ ULONG ...@@ -96,8 +93,10 @@ ULONG
CMemoryPoolPalloc::UserSizeOfAlloc(const void *ptr) CMemoryPoolPalloc::UserSizeOfAlloc(const void *ptr)
{ {
GPOS_ASSERT(ptr != NULL); GPOS_ASSERT(ptr != NULL);
void* void_header = static_cast<BYTE*>(const_cast<void*>(ptr)) - GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader); void *void_header = static_cast<BYTE *>(const_cast<void *>(ptr)) -
const SArrayAllocHeader *header = static_cast<SArrayAllocHeader*>(void_header); GPOS_MEM_ALIGNED_STRUCT_SIZE(SArrayAllocHeader);
const SArrayAllocHeader *header =
static_cast<SArrayAllocHeader *>(void_header);
return header->m_user_size; return header->m_user_size;
} }
......
...@@ -23,9 +23,9 @@ extern "C" { ...@@ -23,9 +23,9 @@ extern "C" {
using namespace gpos; using namespace gpos;
// ctor // ctor
CMemoryPoolPallocManager::CMemoryPoolPallocManager(CMemoryPool *internal, EMemoryPoolType) CMemoryPoolPallocManager::CMemoryPoolPallocManager(CMemoryPool *internal,
: EMemoryPoolType)
CMemoryPoolManager(internal, EMemoryPoolExternal) : CMemoryPoolManager(internal, EMemoryPoolExternal)
{ {
} }
...@@ -37,14 +37,15 @@ CMemoryPoolPallocManager::NewMemoryPool() ...@@ -37,14 +37,15 @@ CMemoryPoolPallocManager::NewMemoryPool()
} }
void void
CMemoryPoolPallocManager::DeleteImpl(void* ptr, CMemoryPool::EAllocationType eat) CMemoryPoolPallocManager::DeleteImpl(void *ptr,
CMemoryPool::EAllocationType eat)
{ {
CMemoryPoolPalloc::DeleteImpl(ptr, eat); CMemoryPoolPalloc::DeleteImpl(ptr, eat);
} }
// get user requested size of allocation // get user requested size of allocation
ULONG ULONG
CMemoryPoolPallocManager::UserSizeOfAlloc(const void* ptr) CMemoryPoolPallocManager::UserSizeOfAlloc(const void *ptr)
{ {
return CMemoryPoolPalloc::UserSizeOfAlloc(ptr); return CMemoryPoolPalloc::UserSizeOfAlloc(ptr);
} }
...@@ -52,7 +53,8 @@ CMemoryPoolPallocManager::UserSizeOfAlloc(const void* ptr) ...@@ -52,7 +53,8 @@ CMemoryPoolPallocManager::UserSizeOfAlloc(const void* ptr)
GPOS_RESULT GPOS_RESULT
CMemoryPoolPallocManager::Init() CMemoryPoolPallocManager::Init()
{ {
return CMemoryPoolManager::SetupGlobalMemoryPoolManager<CMemoryPoolPallocManager, CMemoryPoolPalloc>(); return CMemoryPoolManager::SetupGlobalMemoryPoolManager<
CMemoryPoolPallocManager, CMemoryPoolPalloc>();
} }
// EOF // EOF
...@@ -40,8 +40,7 @@ extern "C" { ...@@ -40,8 +40,7 @@ extern "C" {
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
extern "C" { extern "C" {
Datum Datum DisableXform(PG_FUNCTION_ARGS)
DisableXform(PG_FUNCTION_ARGS)
{ {
char *szXform = text_to_cstring(PG_GETARG_TEXT_P(0)); char *szXform = text_to_cstring(PG_GETARG_TEXT_P(0));
bool is_result = COptTasks::SetXform(szXform, true /*fDisable*/); bool is_result = COptTasks::SetXform(szXform, true /*fDisable*/);
...@@ -73,8 +72,7 @@ DisableXform(PG_FUNCTION_ARGS) ...@@ -73,8 +72,7 @@ DisableXform(PG_FUNCTION_ARGS)
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
extern "C" { extern "C" {
Datum Datum EnableXform(PG_FUNCTION_ARGS)
EnableXform(PG_FUNCTION_ARGS)
{ {
char *szXform = text_to_cstring(PG_GETARG_TEXT_P(0)); char *szXform = text_to_cstring(PG_GETARG_TEXT_P(0));
bool is_result = COptTasks::SetXform(szXform, false /*fDisable*/); bool is_result = COptTasks::SetXform(szXform, false /*fDisable*/);
......
../../backend/gpopt/.clang-format
\ No newline at end of file
...@@ -22,36 +22,30 @@ ...@@ -22,36 +22,30 @@
class CGPOptimizer class CGPOptimizer
{ {
public: public:
// optimize given query using GP optimizer
// optimize given query using GP optimizer static PlannedStmt *GPOPTOptimizedPlan(
static Query *query,
PlannedStmt *GPOPTOptimizedPlan bool *
( had_unexpected_failure // output : set to true if optimizer unexpectedly failed to produce plan
Query *query, );
bool *had_unexpected_failure // output : set to true if optimizer unexpectedly failed to produce plan
); // serialize planned statement into DXL
static char *SerializeDXLPlan(Query *query);
// serialize planned statement into DXL
static // gpopt initialize and terminate
char *SerializeDXLPlan(Query *query); static void InitGPOPT();
// gpopt initialize and terminate static void TerminateGPOPT();
static
void InitGPOPT();
static
void TerminateGPOPT();
}; };
extern "C" extern "C" {
{
extern PlannedStmt *GPOPTOptimizedPlan(Query *query, bool *had_unexpected_failure); extern PlannedStmt *GPOPTOptimizedPlan(Query *query,
bool *had_unexpected_failure);
extern char *SerializeDXLPlan(Query *query); extern char *SerializeDXLPlan(Query *query);
extern void InitGPOPT (); extern void InitGPOPT();
extern void TerminateGPOPT (); extern void TerminateGPOPT();
} }
#endif // CGPOptimizer_H #endif // CGPOptimizer_H
此差异已折叠。
此差异已折叠。
...@@ -11,8 +11,7 @@ ...@@ -11,8 +11,7 @@
#define GPOPT_funcs_H #define GPOPT_funcs_H
extern "C" extern "C" {
{
#include "postgres.h" #include "postgres.h"
#include "fmgr.h" #include "fmgr.h"
...@@ -21,8 +20,7 @@ extern "C" ...@@ -21,8 +20,7 @@ extern "C"
extern Datum DisableXform(PG_FUNCTION_ARGS); extern Datum DisableXform(PG_FUNCTION_ARGS);
extern Datum EnableXform(PG_FUNCTION_ARGS); extern Datum EnableXform(PG_FUNCTION_ARGS);
extern Datum LibraryVersion(); extern Datum LibraryVersion();
extern const char * OptVersion(void); extern const char *OptVersion(void);
} }
#endif // GPOPT_funcs_H #endif // GPOPT_funcs_H
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册