Operators for Scalars

[This is preliminary documentation and subject to change.]

DBOP_scalar_parameter
Scalar parameter, named by a string. The name must be unique within all parameters for the command, including the parameters of SQL commands in textual nodes in the same command tree. No inputs, scalar output.
DBOP_scalar_function
A scalar function identified by name, GUID, etc. similar to a column-name. The number of arguments (inputs) depends on the function. Scalar output.
DBOP_plus, DBOP_minus, DBOP_times, DBOP_over, DBOP_div, DBOP_modulo, DBOP_power
Standard arithmetic. "div" always returns an integer result, such that "(a div b) times b plus a modulo b==a" for all non-zero values for b. Two scalar inputs, scalar result.
DBOP_like, DBOP_sounds_like
Regular expression matching. Two string inputs. For DBOP_like, the operator node includes a GUID to indicate the language or system whose regular expression syntax is meant. Fixed GUIDs are assigned for SQL, DOS, OFS, and MAPI. Boolean result. The DBOP_like node uses the DBLIKE structure to hold the GUID and a weight.
typedef struct  tagDBLIKE{
    LONG lWeight;        // weight of the node
    GUID guidDialect;    // dialect's guid
    }    DBLIKE;
 
DBOP_like_any, DBOP_like_all
Regular expression matching. Take a scalar first input and a table-valued second input and produce a Boolean valued output.
DBOP_is_INVALID, DBOP_is_TRUE, DBOP_is_FALSE
SQL's tests on predicates. One scalar input, Boolean result.
DBOP_overlaps, DBOP_case_condition, DBOP_case_value, DBOP_nullif, DBOP_cast, DBOP_coalesce, DBOP_position, DBOP_extract, DBOP_char_length, DBOP_octet_length, DBOP_bit_length, DBOP_substring, DBOP_upper, DBOP_lower, DBOP_trim, DBOP_translate, DBOP_convert, DBOP_string_concat, DBOP_current_date, DBOP_current_time, DBOP_current_timestamp