17.10 - Example: Set the Value of the Elements in Positions [10:15][10:20] of the Array - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL External Routine Programming

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
July 2021
Content Type
Programming Reference
Publication ID
B035-1147-171K
Language
English (United States)

In this example, FNC_SetArrayElements is called to set the elements within positions [10:15][10:20] to the value of the newValue argument.

/* This function sets the values of a set of elements. */

void setElements( ARRAY_HANDLE  *myArray,
                  INTEGER        newValue,
                  INTEGER       *result,
                  char           sqlstate[6])
{
    int nullIndicator;
    bounds_t *arrayRange;
    array_info_t arrayInfo;
    bounds_t arrayScope[FNC_ARRAYMAXDIMENSIONS];
    nullIndicator = 0;

    /* Call FNC_GetArrayTypeInfo first to find out the number of */
    /* elements in the array. */
    FNC_GetArrayTypeInfo(*myArray,
                         &arrayInfo,
                         arrayScope);

    arrayRange =
    (bounds_t*)FNC_malloc(sizeof(bounds_t)*arrayInfo.numDimensions);

    /* Set values of arrayRange to correspond to the */
    /* range [10:15][10:20] */

    arrayRange[0].lowerBound = 10;
    arrayRange[0].upperBound = 15;
    arrayRange[1].lowerBound = 10;
    arrayRange[1].upperBound = 20;

    /* Set the element values within the positions [10:15][10:20] to */
    /* the value contained in newValue. */
    FNC_SetArrayElements(*myArray, &arrayRange, &newValue,
       nullIndicator, SIZEOF_INTEGER);
    ...
}