Metodi di modellazione UDTF

Il metodo 'calculateShape() definisce la forma e il contenuto di una tabella di ritorno per gli UDTF:
calculateShape(UdxOutputShaper *shaper);
I seguenti metodi operano sull'oggetto UdxOutputShaper per definire una colonna di uscita:
void addOutputColumn(int nType, const char* strName, int nSize);
void addOutputColumn(int nType, const char* strName, int precision, 
int scale);
void addOutputColumn(int nType, const char* strName);
I metodi seguenti operano sull'oggetto UdxOutputShaper per ottenere informazioni sulle colonne di ritorno e sull'involucro del sistema:
int numOutputColumns(); 
const UdxColumnInfo* getOutputColumn(int n); 
bool isSystemCaseUpper();
È possibile utilizzare i seguenti metodi sull'oggetto UdxColumnInfo per ottenere informazioni su una colonna:
int getType(); 
int getSize(); 
int getPrecision();
int getScale();
const char* getName();
È possibile utilizzare i seguenti metodi sull'oggetto shaper per ottenere argomenti e metadati di input. Molti di questi metodi funzionano come i metodi standard di UDX Arguments.
int numArgs();
int argType(int n);
int stringArgSize(int n);
int numericArgPrecision(int n);
int numericArgScale(int n);
bool isArgConst(int n);
bool isArgNull(int n);
Numeric32Val* numeric32Arg(int n);
Numeric64Val* numeric64Arg(int n);
Numeric128Val* numeric128Arg(int n);
StringArg* stringArg(int n);
TimeTzADT* timetzArg(int n);
struct Interval* intervalArg(int n);
bool boolArg(int n);
int32 dateArg(int n);
int64 timeArg(int n);
int64 timestampArg(int n);
int8 int8Arg(int n);
int16 int16Arg(int n);
int32 int32Arg(int n);
int64 int64Arg(int n);
float floatArg(int n);
double doubleArg(int n);