eckit::sql::expression::ConstantExpression class

Base classes

class SQLExpression

Public static functions

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

Constructors, destructors, conversion operators

ConstantExpression(double, bool, const type::SQLType*)
ConstantExpression(const ConstantExpression&, const PrivateKey&)
~ConstantExpression() override

Public functions

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

Private functions

void print(std::ostream&) const override

Function documentation

static std::shared_ptr<SQLExpression> eckit::sql::expression::ConstantExpression::number(double)

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

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

void eckit::sql::expression::ConstantExpression::updateType(SQLSelect&) virtual

std::string eckit::sql::expression::ConstantExpression::evalAsString(bool& missing) const virtual

bool eckit::sql::expression::ConstantExpression::andSplit(expression::Expressions&) virtual

void eckit::sql::expression::ConstantExpression::tables(std::set<const SQLTable*>&) virtual

std::shared_ptr<SQLExpression> eckit::sql::expression::ConstantExpression::simplify(bool&) virtual

void eckit::sql::expression::ConstantExpression::title(const std::string&) virtual

std::string eckit::sql::expression::ConstantExpression::title() const virtual

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.