InfluxElixir.Client.Local.SQLEval (InfluxElixir v0.1.40)

Copy Markdown View Source

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

Types

What an expression evaluates to.

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

value()

@type value() ::
  InfluxElixir.Client.Local.SQLNumber.t()
  | binary()
  | boolean()
  | DateTime.t()
  | nil

What an expression evaluates to.

Functions

eval(arg, point)

The expression's value for the point.

eval_compared(expr, point, literals)

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.