Important cautions for user code on Netezza Performance Server systems
UDXs are powerful tools for extending the data analysis capabilities of the systems.
The introduction of user-defined code also introduces risks to the stability of the Netezza Performance Server system, and to the integrity of the data that is stored within the system. Make certain that only authorized users have the access privileges that are required to create and alter UDXs. This helps you to guard against users who introduce unapproved or unauthorized code into the Netezza Performance Server environment. User accounts and access privileges are described in detail in the IBM® Netezza® System Administrator’s Guide.
You can use Netezza Performance Server access controls and privileges to make sure that only authorized SQL query users have Execute privilege for any UDXs. The access privileges help to restrict access to functions and aggregates that might be intended for specific purposes or users, that might affect the performance of the Netezza Performance Server system, or that might still be undergoing development or testing.
As a developer of user-defined code, make sure that you carefully test your UDXs to ensure that they operate in the manner that you expect. Use caution to avoid memory leaks in your code and uninitialized pointers. Because you read, alter, and save data that is processed by your UDXs, you can unintentionally change the data on your Netezza Performance Server system. Make sure that you follow the best practices described in these topics and that you understand the limitations and recommendations for UDXs.
You should test your UDXs in fenced mode and within a development environment before you deploy them to production systems. Create test plans to verify that they operate correctly. Run reports to verify data within your test Netezza Performance Server system before and after deployment of your UDXs. This helps you to confirm that your functions did not change or delete data that should not be affected, and that they are processing the target data correctly.