class
ColumnExpression
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.