1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +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

@ -63,29 +63,42 @@ class SimpleColumn_UINT : public SimpleColumn
{
}
inline virtual SimpleColumn_UINT* clone() const
inline virtual SimpleColumn_UINT* clone() const override
{
return new SimpleColumn_UINT<len>(*this);
}
/** Evaluate methods */
virtual inline const std::string& getStrVal(rowgroup::Row& row, bool& isNull);
virtual inline int64_t getIntVal(rowgroup::Row& row, bool& isNull);
virtual inline uint64_t getUintVal(rowgroup::Row& row, bool& isNull);
virtual inline float getFloatVal(rowgroup::Row& row, bool& isNull);
virtual inline double getDoubleVal(rowgroup::Row& row, bool& isNull);
virtual inline long double getLongDoubleVal(rowgroup::Row& row, bool& isNull);
virtual inline IDB_Decimal getDecimalVal(rowgroup::Row& row, bool& isNull);
virtual inline const std::string& getStrVal(rowgroup::Row& row, bool& isNull) override;
virtual inline int64_t getIntVal(rowgroup::Row& row, bool& isNull) override;
virtual inline uint64_t getUintVal(rowgroup::Row& row, bool& isNull) override;
virtual inline float getFloatVal(rowgroup::Row& row, bool& isNull) override;
virtual inline double getDoubleVal(rowgroup::Row& row, bool& isNull) override;
virtual inline long double getLongDoubleVal(rowgroup::Row& row, bool& isNull) override;
virtual inline IDB_Decimal getDecimalVal(rowgroup::Row& row, bool& isNull) override;
/** The serialize interface */
virtual void serialize(messageqcpp::ByteStream&) const;
virtual void unserialize(messageqcpp::ByteStream&);
virtual void serialize(messageqcpp::ByteStream&) const override;
virtual void unserialize(messageqcpp::ByteStream&) override;
uint64_t fNullVal;
virtual std::string toCppCode(IncludeSet& includes) const override;
private:
void setNullVal();
};
template <int len>
std::string SimpleColumn_UINT<len>::toCppCode(IncludeSet& includes) const
{
includes.insert("simplecolumn_uint.h");
std::stringstream ss;
ss << "SimpleColumn_UINT<" << len << ">(" << std::quoted(fSchemaName) << ", " << std::quoted(fTableName)
<< ", " << std::quoted(fColumnName) << ", " << fisColumnStore << ", " << sessionID() << ")";
return ss.str();
}
template <int len>
SimpleColumn_UINT<len>::SimpleColumn_UINT() : SimpleColumn()
{