Window Function Parameter Syntax Elements - Advanced SQL Engine - Teradata Database

SQL External Routine Programming

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
July 2021
Language
English (United States)
Last Update
2021-07-27
dita:mapPath
rin1593638965306.ditamap
dita:ditavalPath
rin1593638965306.ditaval
dita:id
B035-1147
lifecycle
previous
Product Category
Teradata Vantage™
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.