Operators ========= Daitum operators are first-class expression nodes, documented here alongside the formula functions. Each renders to a fixed platform expression form and infers its result type from its operands. ``+`` — ADD ----------- Numeric addition. Renders as ``(x + y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY **Result types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY ``-`` — SUBTRACT ---------------- Numeric subtraction. Renders as ``(x - y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY **Result types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY ``*`` — MULTIPLY ---------------- Numeric multiplication. Renders as ``(x * y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY **Result types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY ``/`` — DIVIDE -------------- Numeric division. Renders as ``(x / y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY **Result types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY ``^`` — POWER ------------- Exponentiation. Renders as ``(x ^ y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY **Result types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY ``&`` — CONCAT -------------- String concatenation (the ``+`` operator when either operand is a string). Renders as ``(x & y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY - STRING - STRING_ARRAY - BOOLEAN - BOOLEAN_ARRAY - DATE - DATETIME - DATE_ARRAY - DATETIME_ARRAY - TIME - TIME_ARRAY **Result types** .. container:: supported-types - STRING - STRING_ARRAY ``<`` — LESS_THAN ----------------- Less-than comparison. Renders as ``(x < y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY - DATE - DATETIME - DATE_ARRAY - DATETIME_ARRAY - TIME - TIME_ARRAY - BOOLEAN - BOOLEAN_ARRAY **Result types** .. container:: supported-types - BOOLEAN - BOOLEAN_ARRAY ``>`` — GREATER_THAN -------------------- Greater-than comparison. Renders as ``(x > y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY - DATE - DATETIME - DATE_ARRAY - DATETIME_ARRAY - TIME - TIME_ARRAY - BOOLEAN - BOOLEAN_ARRAY **Result types** .. container:: supported-types - BOOLEAN - BOOLEAN_ARRAY ``<=`` — LESS_EQUAL ------------------- Less-than-or-equal comparison. Renders as ``(x <= y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY - DATE - DATETIME - DATE_ARRAY - DATETIME_ARRAY - TIME - TIME_ARRAY - BOOLEAN - BOOLEAN_ARRAY **Result types** .. container:: supported-types - BOOLEAN - BOOLEAN_ARRAY ``>=`` — GREATER_EQUAL ---------------------- Greater-than-or-equal comparison. Renders as ``(x >= y)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY - DATE - DATETIME - DATE_ARRAY - DATETIME_ARRAY - TIME - TIME_ARRAY - BOOLEAN - BOOLEAN_ARRAY **Result types** .. container:: supported-types - BOOLEAN - BOOLEAN_ARRAY ``=`` — EQUALS -------------- Equality comparison. Renders as ``x = y``. **Accepted operand types** .. container:: supported-types - INTEGER - DECIMAL - STRING - BOOLEAN - DATE - DATETIME - TIME - INTEGER_ARRAY - DECIMAL_ARRAY - STRING_ARRAY - BOOLEAN_ARRAY - DATE_ARRAY - DATETIME_ARRAY - TIME_ARRAY - OBJECT - OBJECT_ARRAY - INTEGER_MAP - DECIMAL_MAP - STRING_MAP - BOOLEAN_MAP - DATE_MAP - DATETIME_MAP - TIME_MAP - INTEGER_ARRAY_MAP - DECIMAL_ARRAY_MAP - STRING_ARRAY_MAP - BOOLEAN_ARRAY_MAP - DATE_ARRAY_MAP - DATETIME_ARRAY_MAP - TIME_ARRAY_MAP **Result types** .. container:: supported-types - BOOLEAN - BOOLEAN_ARRAY ``<>`` — NOT_EQUALS ------------------- Inequality comparison. Renders as ``x <> y``. **Accepted operand types** .. container:: supported-types - INTEGER - DECIMAL - STRING - BOOLEAN - DATE - DATETIME - TIME - INTEGER_ARRAY - DECIMAL_ARRAY - STRING_ARRAY - BOOLEAN_ARRAY - DATE_ARRAY - DATETIME_ARRAY - TIME_ARRAY - OBJECT - OBJECT_ARRAY - INTEGER_MAP - DECIMAL_MAP - STRING_MAP - BOOLEAN_MAP - DATE_MAP - DATETIME_MAP - TIME_MAP - INTEGER_ARRAY_MAP - DECIMAL_ARRAY_MAP - STRING_ARRAY_MAP - BOOLEAN_ARRAY_MAP - DATE_ARRAY_MAP - DATETIME_ARRAY_MAP - TIME_ARRAY_MAP **Result types** .. container:: supported-types - BOOLEAN - BOOLEAN_ARRAY ``-`` — NEGATE -------------- Unary numeric negation. Renders as ``-(x)``. **Accepted operand types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY **Result types** .. container:: supported-types - INTEGER - INTEGER_ARRAY - DECIMAL - DECIMAL_ARRAY ``.`` — MEMBER_ACCESS --------------------- Member access on a field / named-value / object-array operand. Resolves the named field's type, propagating array-ness from the receiver. Renders as ``base.[field]``. **Accepted operand types** .. container:: supported-types - OBJECT - OBJECT_ARRAY **Result types** .. container:: supported-types - INTEGER - DECIMAL - STRING - BOOLEAN - DATE - DATETIME - TIME - INTEGER_ARRAY - DECIMAL_ARRAY - STRING_ARRAY - BOOLEAN_ARRAY - DATE_ARRAY - DATETIME_ARRAY - TIME_ARRAY - OBJECT - OBJECT_ARRAY - INTEGER_MAP - DECIMAL_MAP - STRING_MAP - BOOLEAN_MAP - DATE_MAP - DATETIME_MAP - TIME_MAP ``[]`` — COLUMN_ACCESS ---------------------- Column access on a raw table. Renders with brackets (the dot form is invalid on a raw table) and returns the array variant of the column's type. Renders as ``table[field]``. **Accepted operand types** .. container:: supported-types - TABLE **Result types** .. container:: supported-types - _ARRAY