UDFs that Implement UDT Functionality | Teradata Vantage - UDFs that Implement UDT Functionality - Analytics Database - Teradata Vantage

SQL External Routine Programming

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
VMware
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
ft:locale
en-US
ft:lastEdition
2025-03-30
dita:mapPath
iiv1628111441820.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
qnu1472247494689
lifecycle
latest
Product Category
Teradata Vantageā„¢

Here is a synopsis of the steps you take to develop, compile, install, and use a UDF that implements UDT transform, ordering, or cast functionality:

  1. Write, test, and debug the C or C++ code for the UDF.

    You can use the Teradata C/C++ UDF Debugger, which is a version of GDB (the gnu Source-Level Debugger) that contains extensions for the database. For more information, see C/C++ Command-line Debugging for UDFs.

  2. Use the CREATE FUNCTION or REPLACE FUNCTION statement to identify the location of the source code or object, and install the item on the server.
    Teradata recommends against creating UDFs in Teradata system databases such as SYSLIB or SYSUDTLIB. See Installing the Function.

    The function is compiled, if the source code is submitted, linked to the dynamic linked library (DLL or SO) associated with the database in which the function resides, and distributed to all database nodes in the system.

  3. Register the UDF as a transform, ordering, or cast routine.
    Functionality UDF Implements Register UDF with This Statement
    Cast CREATE CAST or REPLACE CAST
    Ordering CREATE ORDERING or REPLACE ORDERING
    Transform CREATE TRANSFORM or REPLACE TRANSFORM
  4. Test the UDF in protected run mode until the UDF works correctly.

    Protected mode is the default run mode for a UDF. In protected mode, Vantage isolates the data the UDF may access as a separate process in its own local workspace. This makes the function run slower. If any memory violation or other system error occurs, the error is localized to the function and the transaction executing the function.

  5. Use ALTER FUNCTION to change the UDF to run in nonprotected run mode.
    If you subsequently use REPLACE FUNCTION to replace the function, the run mode reverts back to protected mode.
  6. Rerun the tests from Step 4 to test the UDF in nonprotected run mode until the UDF works correctly.
  7. Use GRANT to grant privileges to users who are authorized to use the UDF and the UDT.