1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

MCOL-5352 Properly handle PP restart for DML/DDL operations.

This commit is contained in:
Denis Khalikov
2024-02-01 13:27:01 +00:00
committed by Leonid Fedorov
parent e43472aedc
commit c17f24b90f
31 changed files with 736 additions and 401 deletions

View File

@ -93,7 +93,8 @@ class DDLPackageProcessor
NETWORK_ERROR,
PARTITION_WARNING,
WARN_NO_PARTITION,
DROP_TABLE_NOT_IN_CATALOG_ERROR
DROP_TABLE_NOT_IN_CATALOG_ERROR,
PP_LOST_CONNECTION
};
enum DebugLevel /** @brief Debug level type enumeration */
@ -247,6 +248,18 @@ class DDLPackageProcessor
// std::cout << "in DDLPackageProcessor constructor " << this << std::endl;
}
/** @brief Function wrapper for `processPackageInternal`.
*/
DDLResult processPackage(ddlpackage::SqlStatement* sqlStmt);
/** @brief Check that give exception is related to PP lost connection.
*/
bool checkPPLostConnection(std::string error);
/** @brief Internal implementation for `process` package command.
*/
virtual DDLResult processPackageInternal(ddlpackage::SqlStatement* sqlStmt);
/** @brief destructor
*/
EXPORT virtual ~DDLPackageProcessor();
@ -373,6 +386,8 @@ class DDLPackageProcessor
*/
EXPORT void fetchLogFile(TableLogInfo& tableLogInfos, uint64_t uniqueId);
// virtual EXPORT DDLResult processPackage(ddlpackage::TruncTableStatement& truncTableStmt);
BRM::TxnID fTxnid;
protected:
@ -835,6 +850,8 @@ class DDLPackageProcessor
void cleanString(std::string& s);
// std::string fDDLLogFileName;
DebugLevel fDebugLevel; // internal use debug level
const std::string PPLostConnectionErrorCode = "MCS-2045";
};
/** @brief helper template function to do safe from string to type conversions
*
@ -849,4 +866,3 @@ bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)
} // namespace ddlpackageprocessor
#undef EXPORT