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.

This website is beyond its original expiry date and the content may be out of date. The site owner has been notified and may choose to extend the expiry date and remove this banner. If you have any questions about this, please visit our support portal.