eckit::sql::expression::function::FunctionIntegerExpression class

Base classes

class FunctionExpression

Derived classes

class FunctionROWNUMBER
class FunctionTDIFF
class FunctionTHIN
class FunctionTIMESTAMP

Public static functions

static void registerIntegerFunctions()
static auto arity() -> int
static auto help() -> const char*
static auto number(double) -> std::shared_ptr<SQLExpression>

Constructors, destructors, conversion operators

FunctionIntegerExpression(const std::string&, const expression::Expressions&)
~FunctionIntegerExpression()

Public functions

auto type() const -> const eckit::sql::type::SQLType* override
void output(SQLOutput& s) const override
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 isConstant() const -> bool override
auto simplify(bool&) -> std::shared_ptr<SQLExpression> override
auto isAggregate() const -> bool override
void partialResult() override
auto reshift(int minColumnShift) const -> std::shared_ptr<SQLExpression> override
auto args() -> expression::Expressions&
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
auto isNumber() const -> bool virtual
void title(const std::string&) virtual
auto title() const -> std::string virtual
auto clone() const -> std::shared_ptr<SQLExpression> pure 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
auto shared_from_this(T... args) -> T
auto weak_from_this(T... args) -> T

Function documentation

static const char* eckit::sql::expression::function::FunctionIntegerExpression::help()

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

void eckit::sql::expression::function::FunctionIntegerExpression::print(std::ostream& s) const override

void eckit::sql::expression::function::FunctionIntegerExpression::preprepare(SQLSelect&) override

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

void eckit::sql::expression::function::FunctionIntegerExpression::prepare(SQLSelect& sql) override

void eckit::sql::expression::function::FunctionIntegerExpression::updateType(SQLSelect& sql) override

void eckit::sql::expression::function::FunctionIntegerExpression::cleanup(SQLSelect& sql) override

bool eckit::sql::expression::function::FunctionIntegerExpression::isConstant() const override

std::shared_ptr<SQLExpression> eckit::sql::expression::function::FunctionIntegerExpression::simplify(bool&) override

bool eckit::sql::expression::function::FunctionIntegerExpression::isAggregate() const override

void eckit::sql::expression::function::FunctionIntegerExpression::partialResult() override

std::shared_ptr<SQLExpression> eckit::sql::expression::function::FunctionIntegerExpression::reshift(int minColumnShift) const override

expression::Expressions& eckit::sql::expression::function::FunctionIntegerExpression::args()

double eckit::sql::expression::function::FunctionIntegerExpression::eval(bool& missing) const pure virtual

void eckit::sql::expression::function::FunctionIntegerExpression::eval(double* out, bool& missing) const virtual

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

bool eckit::sql::expression::function::FunctionIntegerExpression::andSplit(expression::Expressions&) virtual

bool eckit::sql::expression::function::FunctionIntegerExpression::isNumber() const virtual

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

std::string eckit::sql::expression::function::FunctionIntegerExpression::title() const virtual

std::shared_ptr<SQLExpression> eckit::sql::expression::function::FunctionIntegerExpression::clone() const pure virtual

void eckit::sql::expression::function::FunctionIntegerExpression::expandStars(const std::vector<std::reference_wrapper<const SQLTable>>&, expression::Expressions&) virtual

bool eckit::sql::expression::function::FunctionIntegerExpression::isBitfield() const virtual

BitfieldDef eckit::sql::expression::function::FunctionIntegerExpression::bitfieldDef() const

bool eckit::sql::expression::function::FunctionIntegerExpression::hasMissingValue() const virtual

double eckit::sql::expression::function::FunctionIntegerExpression::missingValue() const