Archivo de control del arnés de prueba

Cuando ejecuta el mandato nzudxharness, éste crea un archivo de control llamado udfname_func.harness o udaname_agg.harness. Un archivo de control es un archivo de texto que especifica los detalles del entorno de simulación y prueba.

El mandato nzudxrunharness graba el archivo de control del arnés en el directorio actual. Para el ejemplo CustomerName UDF de la sección Arnés de pruebas UDX, el comando creó y utilizó el siguiente archivo de control:
[nz@nzhost udx]$ more customername_func.harness
udxtype: udf
objectfile:/nz/data.1.0/base/2547310/udf/2928850.oh
udxname:customername
version: 2
numenvironments:0
numreturns:1
returninfo:16:-1:-1
numarguments:1
argument:1:64000:-1
classname:CCustomerName
fenced:t
deterministic:t
nullcall:t
memory:0
logmask:0
nulls:
numdependencies:0
undefined:vtable for __cxxabiv1::__class_type_info
undefined:vtable for __cxxabiv1::__si_class_type_info
undefined:operator delete[](void*)
undefined:operator delete(void*)
undefined:operator new(unsigned int)
undefined:__cxa_pure_virtual
undefined:__gxx_personality_v0
undefined:free
undefined:memcmp
undefined:sprintf
undefined:strcmp
undefined:strdup
undefined:throwError
inputdelim:,
inputquote: true
hexinput: false
printoutput: none
numrows: 100
validate: true
Puede editar los parámetros del archivo de control para cambiar el entorno de prueba. También puede utilizar el binario udxharness y especificar uno o más archivos de control para probar un UDX o varios UDX y sus interacciones en el mismo ámbito de transacción. Por ejemplo:
[nz@nzhost udx]$ udxharness -f customername_func.harness -f 
penmaxv2_agg.harness -k /nz/kit

Este mandato de ejemplo ejecuta la UDF customername y el UDA PenMax en el mismo entorno de prueba para evaluar el efecto en el sistema.

La tabla siguiente describe los parámetros del archivo de control del arnés.

Tabla 1. Parámetros del fichero de control. Esta tabla describe las opciones y los parámetros que puede especificar para los objetos definidos por el usuario.
Parámetro Descripción
Opciones comunes para UDF, UDA y UDTF
udxtype: tipo Especifica el tipo de UDX. El tipo debe ser udf, uda o udtf. Este parámetro debe ser el primero en el archivo de control.
numarguments: núm Especifica el número de argumentos para el UDX. Debe ir seguido inmediatamente después por los argumentos. Debe especificar exactamente núm argumentos.
argumento: info Especifica uno de los argumentos al que hace referencia el núm. El formato del valor info es type:typmod:scale.
  • El valor tipo es una de las enum DataType de la clase C++ UdxBase.
  • El valor mod_tipo es -1 o el tamaño de una serie, o la precisión de un numérico.
  • El valor escala es -1 o la escala de un numérico.
classname: clase Especifica la clase C++ para el UDX. Este parámetro es necesario.
fichero de datos: fichero Especifica el archivo de datos de entrada.
numdependencies: núm Especifica el número de dependencias de biblioteca para el UDX. Debe ir seguido inmediatamente después por las dependencias. Debe especificar exactamente núm dependencias.
dependency: info_biblio Especifica una dependencia de biblioteca para el UDX. Debe especificar las bibliotecas en el orden correcto; es decir, las bibliotecas que dependen de otras bibliotecas deben listarse después de las bibliotecas de las que dependen. El formato del valor info_biblio es auto,archivo,nombre.
  • El valor auto es t para carga automática y f para carga manual.
  • El nombre es el nombre de la biblioteca.
  • El valor archivo es el archivo de objeto de biblioteca .so.

No se permiten espacios antes o después de las comas, a menos que sean parte del archivo o nombre.

vallado: valor Especifica si el UDX se ejecuta en modalidad protegida o no protegida.

Puede especificar un valor booleano como true, t, on, yes, y o 1 para ejecutar el UDX en modalidad protegida. Especifique un valor de false, f, off, no, n o 0 para ejecutar el UDX en modalidad no protegida.

shaper: valor Especifica si el UDX llama a un medidor o modelador. El valor predeterminado es false (no llama a un medidor/modelador).

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

hexinput: valor Especifica si los datos del archivo de entrada están en formato hexadecimal. El valor predeterminado es false (no en formato hex).

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

inputdelim: delim Especifica el delimitador para el archivo de entrada. El valor predeterminado es coma.
inputescape: escape Especifica el carácter de escape para el archivo de entrada. El valor predeterminado no es un carácter de escape.
inputquote: valor Especifica si los datos de serie del archivo de entrada están entrecomillados. El valor predeterminado es false (no entrecomillado).

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

logmask: máscara Especifica la máscara de registro para el UDX. Los valores válidos son 1 para TRACE, 2 para DEBUG, 3 para DEBUG y TRACE o 0 para NONE. El valor predeterminado es 0.
memoria: mem Especifica la memoria máxima para el UDX. El valor del tamaño puede ser un valor vacío o un valor en forma de un número y las letras b (bytes), k (kilobytes), m (megabytes) o g (gigabytes). El valor predeterminado es 0.
nulls: columnas Especifica las columnas que serán null aleatoriamente cuando se utilizan los datos de prueba generados aleatoriamente (no se ha especificado el archivo de datos de entrada). El valor columnas es una lista separada por comas de números de columna. Los números de columna empiezan en 1.
numreturns: núm Especifica el número columnas de retorno para el UDX. El valor es 1 para UDF y UDA, pero puede ser 1 o más para las UDTF. Debe ir seguida inmediatamente de la información de retorno. Debe especificar exactamente num valores de retorno. Este parámetro es necesario.
información de devolución: información Especifica la información de retorno. El valor info tiene la forma ' type:typmod:scale:name.
  • El valor tipo es una de las enum DataType de la clase C++ UdxBase.
  • El valor mod_tipo es -1 o el tamaño de una serie, o la precisión de un numérico.
  • El valor escala es -1 o la escala de un numérico.
  • El valor nombre se utiliza únicamente para una UDTF, donde especifica el nombre de columna. Para una UDTF, se debe especificar la información de retorno en el orden correcto; es decir, el mismo orden en el que se declaran las columnas para la función de tabla.
numrows: núm Especifica el número de filas generadas aleatoriamente que se van a producir para la prueba. Esta opción se utiliza únicamente cuando no especifica un archivo de datos de entrada. El valor predeterminado es 100.
objectfile: archivo Especifica el archivo de objeto de UDX del host. Este valor es obligatorio.
printoutput: tipo Especifica cómo imprimir la salida del UDX. Los valores posibles son normal, hex o ninguno. Normal imprime la salida esperada normalmente; hex imprime series en su representación hexadecimal en lugar de la representación de serie; ninguno no imprime ninguna salida. El valor predeterminado es ninguno.
validar: valor Especifica si validar los resultados para desbordamientos del almacenamiento intermedio, que añade tiempo de ejecución. El valor predeterminado es Verdadero.

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

udxname: nombre Especifica el nombre de un UDX como registrado en la base de datos. Este valor es obligatorio.
undefined: símbolo Especifica el símbolo no definido de un archivo de objeto. Pueden ser 0 o más símbolos. El programa lo imprime únicamente para mostrar problemas como referencias potencialmente no resueltas. Este parámetro no es obligatorio.
versión: ver Especifica la versión de API del UDX. El valor ver puede ser 1 o 2. El valor predeterminado es 1.
Opciones específicas para los UDA
columnorder: columna Especifica la columna que se va a utilizar para la agrupación cuando se ejecute un agregado. El parámetro desencadena la llamada de InitializeState cuando cambia el grupo.

La columna es un número basado en 1 que especifica la posición en el archivo de datos. Este parámetro es necesario si especifica un archivo de entrada de datos.

grupos: num Especifica el número de grupos a simular cuando se utilizan datos aleatorios en lugar de un archivo de entrada de datos. El valor predeterminado es 5.
numstate: núm Especifica el número de valores de estado para el UDA. Debe ir seguido inmediatamente después por los estados. Debe especificar exactamente núm estados. Este parámetro es necesario.
estado: info Especifica los valores de estado para el UDA. El formato del campo info es type:typmod:scale.
  • El valor tipo es una de las enum DataType de la clase C++ UdxBase.
  • El valor mod_tipo es -1 o el tamaño de una serie, o la precisión de un numérico.
  • El valor escala es -1 o la escala de un numérico.
Opciones específicas para las UDTF
determinista: valor Especifica si la UDF es determinista. El valor predeterminado es Verdadero.

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

nullcall: valor Especifica si se llama a la UDF cuando uno de los argumentos es null. El valor predeterminado es false.

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

Parámetros específicos de las UDTF
lastcall: valor Especifica si se llama a la UDTF después de la última fila de entrada. El valor predeterminado es false.

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0.

Opciones específicas del UDX versión 2
numenvironments: núm Especifica el número de valores de entorno para el UDX. Debe ir seguido inmediatamente después por el valor de entorno. Debe especificar exactamente núm variables.
entorno: info Especifica la entrada de entorno para el UDX. El formato del valor info es nombre, valor.
  • El valor nombre especifica el nombre del valor de entorno.
  • El valor es el valor de la configuración de entorno.
cerrar: valor Especifica si el arnés de pruebas invoca la función de biblioteca C ' dlclose() para cerrar referencias a bibliotecas compartidas UNIX que se pusieron a disposición con ' dlopen().

Especifique un valor booleano como true, t, on, yes, y o 1; o false, f, off, no, n o 0. El valor por defecto es true para llamar a ' dlclose().

Si va a ejecutar el arnés de prueba dentro de la herramienta de depuración como valgrind o callgrind, especifique en false para que el arnés no invoque dlclose() automáticamente. Esto le permite acceder a los nombres de símbolo y a otros valores que pueden ser útiles para la depuración, pero puede que no estén disponibles después de llamar a dlclose(). (Para obtener más información sobre el entorno de depuración valgrind, consulte http://valgrind.org.)