eckit::sql::expression::SQLExpression class

Derived classes

class ColumnExpression
class ConstantExpression
class Expressions
class NumberExpression
class ParameterExpression
class SQLExpressionEvaluated
class StringExpression
class FunctionExpression

Public static functions

static auto number(double) -> std::shared_ptr<SQLExpression>

Constructors, destructors, conversion operators

SQLExpression()
~SQLExpression() virtual

Public functions

void preprepare(SQLSelect&) virtual
void prepare(SQLSelect&) pure virtual
void updateType(SQLSelect&) virtual
void cleanup(SQLSelect&) pure virtual
auto eval(bool& missing) const -> double pure virtual
void eval(double* out, bool& missing) const virtual
auto evalAsString(bool& missing) const -> std::string virtual
auto andSplit(expression::Expressions&) -> bool virtual
void tables(std::set<const SQLTable*>&) virtual
auto isConstant() const -> bool pure virtual
auto isNumber() const -> bool virtual
auto simplify(bool&) -> std::shared_ptr<SQLExpression> virtual
void title(const std::string&) virtual
auto title() const -> std::string virtual
auto type() const -> const type::SQLType* pure virtual
auto clone() const -> std::shared_ptr<SQLExpression> pure virtual
auto reshift(int minColumnShift) const -> std::shared_ptr<SQLExpression> pure virtual
auto isAggregate() const -> bool virtual
void output(SQLOutput&) const virtual
void partialResult() virtual
void expandStars(const std::vector<std::reference_wrapper<const SQLTable>>&, expression::Expressions&) virtual
auto isBitfield() const -> bool virtual
auto bitfieldDef() const -> BitfieldDef
auto hasMissingValue() const -> bool virtual
auto missingValue() const -> double
void print(std::ostream&) const pure virtual
auto shared_from_this(T... args) -> T
auto weak_from_this(T... args) -> T

Friends

auto operator<<(std::ostream& s, const SQLExpression& p) -> std::ostream&

Function documentation

void eckit::sql::expression::SQLExpression::preprepare(SQLSelect&) virtual

pre-prepare ideally wouldn't exist. To enable a two-pass prepare of SQL columns for SQLSelect, this is here.