greenplumn exception 源码
greenplumn exception 代码
文件路径:/src/backend/gporca/libgpopt/src/exception.cpp
//---------------------------------------------------------------------------
// Greenplum Database
// Copyright (C) 2011 EMC Corp.
//
// @filename:
// exception.cpp
//
// @doc:
// Initialization of GPOPT-specific exception messages
//---------------------------------------------------------------------------
#include "gpopt/exception.h"
#include "gpos/error/CMessage.h"
#include "gpos/error/CMessageRepository.h"
using namespace gpos;
//---------------------------------------------------------------------------
// @function:
// EresExceptionInit
//
// @doc:
// Message initialization for GPOPT exceptions
//
//---------------------------------------------------------------------------
GPOS_RESULT
gpopt::EresExceptionInit(CMemoryPool *mp)
{
//---------------------------------------------------------------------------
// Basic DXL messages in English
//---------------------------------------------------------------------------
CMessage rgmsg[ExmiSentinel] = {
CMessage(CException(gpopt::ExmaGPOPT, gpopt::ExmiNoPlanFound),
CException::ExsevError,
GPOS_WSZ_WSZLEN(
"No plan has been computed for required properties"),
0, GPOS_WSZ_WSZLEN("No plan found")),
CMessage(
CException(gpopt::ExmaGPOPT, gpopt::ExmiInvalidPlanAlternative),
CException::ExsevError,
GPOS_WSZ_WSZLEN(
"Plan identifier %lld out of range, max plans: %lld"),
2, // plan id, max plans
GPOS_WSZ_WSZLEN("Plan enumeration")),
CMessage(CException(gpopt::ExmaGPOPT, gpopt::ExmiUnsupportedOp),
CException::ExsevNotice,
GPOS_WSZ_WSZLEN("Operator %ls not supported"),
1, // operator type
GPOS_WSZ_WSZLEN("Unsupported operator")),
CMessage(CException(gpopt::ExmaGPOPT, gpopt::ExmiUnexpectedOp),
CException::ExsevError,
GPOS_WSZ_WSZLEN("Unexpected Operator %ls"),
1, // operator type
GPOS_WSZ_WSZLEN("Unexpected operator")),
CMessage(CException(gpopt::ExmaGPOPT, gpopt::ExmiUnsupportedPred),
CException::ExsevNotice,
GPOS_WSZ_WSZLEN("Predicate %s not supported"),
1, // predicate type
GPOS_WSZ_WSZLEN("Unsupported predicate")),
CMessage(
CException(gpopt::ExmaGPOPT,
gpopt::ExmiUnsupportedCompositePartKey),
CException::ExsevNotice,
GPOS_WSZ_WSZLEN(
"Feature not supported by the Pivotal Query Optimizer: composite partitioning keys"),
0,
GPOS_WSZ_WSZLEN(
"Feature not supported by the Pivotal Query Optimizer: composite partitioning keys")),
CMessage(
CException(gpopt::ExmaGPOPT,
gpopt::ExmiUnsupportedNonDeterministicUpdate),
CException::ExsevNotice,
GPOS_WSZ_WSZLEN(
"Feature not supported by the Pivotal Query Optimizer: non-deterministic DML statements"),
0,
GPOS_WSZ_WSZLEN(
"Feature not supported by the Pivotal Query Optimizer: non-deterministic DML statements")),
CMessage(CException(gpopt::ExmaGPOPT,
gpopt::ExmiUnsatisfiedRequiredProperties),
CException::ExsevError,
GPOS_WSZ_WSZLEN("Plan does not satisfy required properties"),
0,
GPOS_WSZ_WSZLEN("Plan does not satisfy required properties")),
CMessage(
CException(gpopt::ExmaGPOPT, gpopt::ExmiEvalUnsupportedScalarExpr),
CException::ExsevError,
GPOS_WSZ_WSZLEN(
"Expecting a scalar expression like (const cmp const), ignoring casts"),
0, GPOS_WSZ_WSZLEN("Not a constant scalar expression")),
CMessage(
CException(gpopt::ExmaGPOPT,
gpopt::ExmiCTEProducerConsumerMisAligned),
CException::ExsevError,
GPOS_WSZ_WSZLEN(
"CTE Producer-Consumer execution locality mismatch for CTE id %lld"),
1,
GPOS_WSZ_WSZLEN(
"CTE Producer-Consumer execution locality mismatch")),
CMessage(CException(gpopt::ExmaGPOPT, gpopt::ExmiNoStats),
CException::ExsevError,
GPOS_WSZ_WSZLEN("Missing group stats in %ls"), 1,
GPOS_WSZ_WSZLEN("Missing group stats")),
};
GPOS_RESULT eres = GPOS_FAILED;
GPOS_TRY
{
// copy exception array into heap
CMessage *rgpmsg[gpopt::ExmiSentinel];
CMessageRepository *pmr = CMessageRepository::GetMessageRepository();
for (ULONG i = 0; i < GPOS_ARRAY_SIZE(rgpmsg); i++)
{
rgpmsg[i] = GPOS_NEW(mp) CMessage(rgmsg[i]);
pmr->AddMessage(ElocEnUS_Utf8, rgpmsg[i]);
}
eres = GPOS_OK;
}
GPOS_CATCH_EX(ex)
{
return GPOS_FAILED;
}
GPOS_CATCH_END;
return eres;
}
// EOF
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦