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);