An example UDF that informs the server to perform partitioning on column 1 (c1).
void UDF_CALLBACK my_tpf_proc_describe( a_v4_extfn_proc_context *ctx )
{
if( ctx->current_state == EXTFNAPIV4_STATE_ANNOTATION ) {
a_sql_int32 rc = 0;
a_v4_extfn_column_list pbcol =
{ 1, // 1 column in the partition by list
1 }; // column index 1 requires partitioning
// Describe partitioning for argument 1 (the table)
rc = ctx->describe_parameter_set(
ctx,
1,
EXTFNAPIV4_DESCRIBE_PARM_TABLE_PARTITIONBY,
&pbcol,
sizeof(pbcol) );
if( rc == 0 ) {
ctx->set_error( ctx, 17000,
“Runtime error, unable set partitioning requirements for column.” );
}
}
}