Evaluates a SQL expression (InfluxElixir.Client.Local.SQLExpr) against one
point, with the engine's number types (see
InfluxElixir.Client.Local.SQLNumber): a UInt64 column
({:uint_col, name}, which InfluxElixir.Client.Local.SQLTyping puts where
the store registered one) reads as a UInt64, so u / 2 is the decimal
division the engine makes of it.
A missing field or a non-numeric operand makes an arithmetic result null,
which the aggregates skip. time is the point's timestamp; the parser only
lets it reach MIN, MAX and COUNT, the aggregates DataFusion accepts over a
Timestamp. A failure only a value can show (a division by zero, a cast
that cannot be performed) is thrown as {:query_error, error} for the
executor to answer.
Summary
Functions
The expression's value for the point.
The value of an expression that a comparison sets against integer
literals, as the engine's optimizer leaves it: a CAST to an integer
type is removed when the literals fit that type and then the type of what
it casts (verified: CAST(big AS INT) > 1 compares big with 1 and
fails for no value, while CAST(big AS INT) > 3000000000 casts, and fails
for a big past Int32). A cast that stays is the cast; with no literals
it is the plain value.
Types
@type value() :: InfluxElixir.Client.Local.SQLNumber.t() | binary() | boolean() | DateTime.t() | nil
What an expression evaluates to.
Functions
@spec eval( InfluxElixir.Client.Local.SQLExpr.t(), InfluxElixir.Client.Local.SQLRow.point() ) :: value()
The expression's value for the point.
@spec eval_compared( InfluxElixir.Client.Local.SQLExpr.t(), InfluxElixir.Client.Local.SQLRow.point(), [ integer() ] ) :: value()
The value of an expression that a comparison sets against integer
literals, as the engine's optimizer leaves it: a CAST to an integer
type is removed when the literals fit that type and then the type of what
it casts (verified: CAST(big AS INT) > 1 compares big with 1 and
fails for no value, while CAST(big AS INT) > 3000000000 casts, and fails
for a big past Int32). A cast that stays is the cast; with no literals
it is the plain value.