Limitations of column map procedures

Column map procedures do not support certain data types and Lua functions.

Numeric data processed in double-precision format

Column map procedures process numeric data in double-precision format. Use the optim.source.getcolumnasdouble() function to get data from columns that have the following data types. A runtime error is generated if you use optim.source.getcolumnvalue() to get data from columns that have the following data types.
  • DECIMAL
  • DOUBLE
  • FLOAT
  • DECIMAL FLOAT (Informix®)
  • NUMBER (Oracle)

Precision mismatch in provider output

Some Optim™ Data Privacy Providers (ODPP) providers might not support precision and scale for double-precision data. In such cases, if a Lua column map procedure passes a double-precision number to a provider, the provider might generate unpredictable results in the output. To avoid precision issues, convert fetched double-precision data to a string by using the function value=tostring(source.column.getasdouble()). You can then use the provider to mask the data as a string, and set the value by using the function target.column.setvalue(tonumber(value)).

Encoding

Column map procedures use UTF-16 encoding in their internal processing.

Binary data types not supported

A runtime error is generated if you use the optim.source.getcolumnvalue() function to get values from columns with binary data types. A runtime error is also generated if you use the optim.target.setcolumnvalue() function to set values in columns with binary data types.

Unsupported functions

The following categories of functions are not supported in column map procedures.
  • Input and output functions in the Lua io library
  • Functions for loading and building modules in the Lua package library:
    • module
    • require
    • package.cpath
    • package.loaded
    • package.loaders
    • package.loadlib
    • package.path
    • package.preload
    • package.seeall
  • string.dump()


Feedback