- function_name
- Pointer to a C string whose value is the function name in the CREATE FUNCTION definition.
- The function can use this name to build error messages.
- aggregation_phase
- Current aggregation phrase, which determines how the aggregate function processes the input data.
- The aggregation phrase definition is:
typedef enum {
AGR_INIT = 1,
AGR_DETAIL = 2,
AGR_COMBINE = 3,
AGR_FINAL = 4,
AGR_NODATA = 5
AGR_MOVINGTRAIL = 6
} FNC_Phase;
- For details about the aggregation phases, see Basic Algorithm of a Window Aggregate Function.
- function_context
- Pointer to the function context structure, the intermediate aggregate storage area for groups on which the aggregate function operates.
- The function context structure definition is:
typedef struct FNC_Context_t {
int version;
FNC_flags_t flags;
void *interim1;
int intrm1_length;
void *interim2;
int intrm2_length;
long group_count;
long window_size;
long pre_window;
long post_window;
} FNC_Context_t;
- Vantage sets up the following fields before invoking the function:
- window_size
- pre_window
- post_window
- The function uses the fields to define a window of rows for the function to operate on.
For details about the FNC_Context_t fields that are applicable to window aggregate functions, see FNC_Context_t Fields.
- input_parameter_specification
- [Optional] Type and name of an input parameter in the CREATE FUNCTION definition. Each input parameter in the definition must have a corresponding input_parameter_specification. The maximum number of input parameters is 128.
- The type is the C type in sqltypes_td.h that corresponds to the SQL data type of input_parameter.
- result
- Pointer to a data area big enough to hold the result that the function returns, as defined by the RETURNS clause in the corresponding CREATE FUNCTION statement.
- indicator_parameter_specification
- [Optional] Indicator parameter corresponding to an input parameter. Each input_parameter_specification must have a corresponding indicator_parameter_specification. The input parameters and indicator parameters must be in the same order.
- If the value of indicator_parameter is -1, the value of the corresponding input_parameter is null.
- If the value of indicator_parameter is 0, the value of the corresponding input_parameter is a non-null value.
- indicator_result
- Result indicator parameter corresponding to the result.
- sqlstate
- Pointer to a six-character C string that indicates the SQLSTATE value—success, exception, or warning. The first five characters are ASCII and the sixth is the C null character. The string is initialized to '00000', which indicates success.
- For more information on SQLSTATE values, see Returning SQLSTATE Values.
- m
- Number of characters in the function name in the CREATE FUNCTION definition. The ANSI SQL standard defines the maximum value for m as 128. Vantage allows a maximum of 30 characters for a function name.
- specific_function_name
- Pointer to a C string whose value is the name of the external function being invoked.
- If the CREATE FUNCTION statement includes the SPECIFIC clause, specific_function_name is the name in the SPECIFIC clause; otherwise, specific_function_name is the same as function_name.
- The function can use this name to build error messages.
- l
- Number of characters in the name of the external function. The ANSI SQL standard defines the maximum value for m as 128. Vantage allows a maximum of 30 characters for a function name.
- error_message
- Pointer to a C string whose value is the the error message text.
- p
- Number of characters in the error message text. The maximum value is 256.