1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-08 14:22:09 +03:00

MCOL-4530: toCppCode() method for ParseTree and TreeNode (#2777)

* toCppCode for ParseTree and TreeNode

* generated tree is compiling

* Put tree constructors into tests

* Minor fixes

* Fixed parse + some constructors

* Fixed includes, removed debug and old data

* Hopefully fix clang errors

* Forgot an override

* More overrides
This commit is contained in:
Andrey Piskunov
2023-03-22 22:25:06 +02:00
committed by GitHub
parent 75da821839
commit 256691652d
60 changed files with 2280 additions and 5130 deletions

View File

@@ -59,6 +59,12 @@ RowColumn::RowColumn(const uint32_t sessionID) : ReturnedColumn(sessionID)
{
}
// For code geneartion purposes
RowColumn::RowColumn(const std::vector<SRCP>& columnVec, const uint32_t sessionID)
: ReturnedColumn(sessionID), fColumnVec(columnVec)
{
}
RowColumn::RowColumn(const RowColumn& rhs, const uint32_t sessionID) : ReturnedColumn(rhs, sessionID)
{
fColumnVec.clear();
@@ -190,4 +196,20 @@ const string SubSelect::toString() const
return string(">SubSelect<");
}
string RowColumn::toCppCode(IncludeSet& includes) const
{
includes.insert("rowcloumn.h");
stringstream ss;
ss << "RowColumn(std::vector<SRCP>{";
if (!fColumnVec.empty())
{
for (size_t i = 0; i < fColumnVec.size() - 1; i++)
ss << "boost::shared_ptr<ReturnedColumn>(new " << fColumnVec.at(i)->toCppCode(includes) << "), ";
ss << "boost::shared_ptr<ReturnedColumn>(new " << fColumnVec.back()->toCppCode(includes) << ")";
}
ss << "})";
return ss.str();
}
} // namespace execplan