Definir o locus de execução do UDTF

O sistema chama UDTFs, no host, uma SPU, ou todos os SPUs, a critério do otimizador. Ao criar ou alterar a UDTF, você pode especificar o locus de execução preferido do UDTF para o otimizador.

Se você registrar o UDTF como PARALLEL ALLOWED, a função de tabela pode ser chamada no host ou um SPU. O otimizador escolhe o locus com base em seus cálculos para um desempenho ideal. Em geral, se você especificar PARALLEL ALLOWED e usar argumentos não literais, o UDTF normalmente é executada no SPU. Se você registrar a função como NOT ALLOWED PARALLEL (ou, --noparallel para o comando nzudxcompile), o sistema chama a UDTF no host ou uma SPU única, mas não em todas as SPUs. O comportamento padrão é PARALLEL ALLOWED.

Uma função de tabela correlacionada (uma com todos os argumentos literais) sempre será executada no host porque a consulta pode ter um comportamento inconsistente, caso contrário. A saída pode variar com base no número de fatias de dados.