eckit::sql::expression::ColumnExpression class

Base classes

class SQLExpression

Derived classes

class BitColumnExpression

Public static functions

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

Constructors, destructors, conversion operators

ColumnExpression(const std::string&, const SQLTable*, int begin = -1, int end = -1)
ColumnExpression(const std::string&, const std::string& tableReference, int begin = -1, int end = -1)
ColumnExpression(const ColumnExpression&) defaulted
~ColumnExpression()

Public functions

auto table() -> const SQLTable*
auto current() -> const double*
auto clone() const -> std::shared_ptr<SQLExpression> override
auto reshift(int minColumnShift) const -> std::shared_ptr<SQLExpression> override
auto nominalShift(int n) -> SQLExpression*
auto andSplit(expression::Expressions&) -> bool 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 isAggregate() const -> bool virtual
void partialResult() virtual
auto isBitfield() const -> bool virtual
auto bitfieldDef() const -> BitfieldDef
auto hasMissingValue() const -> bool virtual
auto missingValue() const -> double
auto shared_from_this(T... args) -> T
auto weak_from_this(T... args) -> T

Private functions

void print(std::ostream& s) const override
void preprepare(SQLSelect&) override
void prepare(SQLSelect& sql) override
void updateType(SQLSelect& sql) override
void cleanup(SQLSelect& sql) override
auto eval(bool& missing) const -> double override
void eval(double* out, bool& missing) const override
auto evalAsString(bool& missing) const -> std::string override
auto isConstant() const -> bool override
void output(SQLOutput& s) const override
auto tableColumnToFullname(const SQLColumn& column) const -> std::string virtual
auto type() const -> const type::SQLType* override
void expandStars(const std::vector<std::reference_wrapper<const SQLTable>>&, Expressions&) override
void tables(std::set<const SQLTable*>&) override

Function documentation

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

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

bool eckit::sql::expression::ColumnExpression::isNumber() const virtual

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

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

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

bool eckit::sql::expression::ColumnExpression::isAggregate() const virtual

void eckit::sql::expression::ColumnExpression::partialResult() virtual

bool eckit::sql::expression::ColumnExpression::isBitfield() const virtual

BitfieldDef eckit::sql::expression::ColumnExpression::bitfieldDef() const

bool eckit::sql::expression::ColumnExpression::hasMissingValue() const virtual

double eckit::sql::expression::ColumnExpression::missingValue() const

void eckit::sql::expression::ColumnExpression::preprepare(SQLSelect&) override private

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.