You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
feat(TNS): change ORDER BY out-of-memory error message. Replaced bad_alloc with IDBExcept in TNS.
This commit is contained in:
@ -574,6 +574,13 @@ void TupleAnnexStep::executeNoOrderByWithDistinct()
|
||||
dataVec.pop_back();
|
||||
}
|
||||
}
|
||||
catch (const std::bad_alloc&)
|
||||
{
|
||||
auto errorCode = ERR_TNS_DISTINCT_IS_TOO_BIG;
|
||||
auto newException = IDBExcept(errorCode);
|
||||
handleException(std::make_exception_ptr(newException), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
"TupleAnnexStep::executeNoOrderByWithDistinct()");
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
handleException(std::current_exception(), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
@ -676,6 +683,13 @@ void TupleAnnexStep::executeWithOrderBy()
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (const std::bad_alloc&)
|
||||
{
|
||||
auto errorCode = fOrderBy->getErrorCode();
|
||||
auto newException = IDBExcept(errorCode);
|
||||
handleException(std::make_exception_ptr(newException), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
"TupleAnnexStep::executeWithOrderBy()");
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
handleException(std::current_exception(), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
@ -747,6 +761,13 @@ void TupleAnnexStep::finalizeParallelOrderByDistinct()
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (const std::bad_alloc&)
|
||||
{
|
||||
auto errorCode = fOrderBy->getErrorCode();
|
||||
auto newException = IDBExcept(errorCode);
|
||||
handleException(std::make_exception_ptr(newException), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
"TupleAnnexStep::finalizeParallelOrderByDistinct()");
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
handleException(std::current_exception(), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
@ -939,6 +960,13 @@ void TupleAnnexStep::finalizeParallelOrderBy()
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (const std::bad_alloc&)
|
||||
{
|
||||
auto errorCode = fOrderBy->getErrorCode();
|
||||
auto newException = IDBExcept(errorCode);
|
||||
handleException(std::make_exception_ptr(newException), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
"TupleAnnexStep::finalizeParallelOrderBy()");
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
handleException(std::current_exception(), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
@ -1147,6 +1175,13 @@ void TupleAnnexStep::executeParallelOrderBy(uint64_t id)
|
||||
dlOffset++;
|
||||
}
|
||||
}
|
||||
catch (const std::bad_alloc&)
|
||||
{
|
||||
auto errorCode = fOrderBy->getErrorCode();
|
||||
auto newException = IDBExcept(errorCode);
|
||||
handleException(std::make_exception_ptr(newException), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
"TupleAnnexStep::executeParallelOrderBy()");
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
handleException(std::current_exception(), logging::ERR_IN_PROCESS, logging::ERR_ALWAYS_CRITICAL,
|
||||
|
@ -432,6 +432,11 @@ class IdbOrderBy : public IdbCompare
|
||||
{
|
||||
return *fOrderByQueue;
|
||||
}
|
||||
uint64_t getErrorCode() const
|
||||
{
|
||||
return fErrorCode;
|
||||
}
|
||||
|
||||
void returnAllRGDataMemory2RM()
|
||||
{
|
||||
while (!fOrderByQueue->empty())
|
||||
|
Reference in New Issue
Block a user