# mco_uda_get_udfmap_size
RT

> Return the amount of memory necessary to keep information about all user-defined functions at runtime.

### Prototype

        MCO_RET mco_uda_get_udfmap_size (	/*IN*/ const mco_metadict_header_t * metadict,
                            /*IN*/ unsigned short dict_no,
                           /*OUT*/ unsigned int * size );

### Arguments

metadict | The address of an initialized mco_metadict_header_t structure
dict_no | The number of the dictionary (must be between 0 and `mco_metadict_count()` - 1)
size | The size of the memory buffer used to store user-defined functions. (See also `mco_uda_register_udf()`

### Description

> This function returns the amount of memory necessary to keep information about all user-defined functions at runtime. The application should allocate the memory and pass it to the user-defined indexes registration API `mco_uda_register_udf()`.

### Return Codes

MCO_S_OK | Size returned successfully
MCO_E_UDA_DICT_NOTFOUND | Invalid dict_no

### Example

        Application snippet:

        const char * dbname = "SimpleDb";

        int main(int argc, char* argv[])
        {
            MCO_RET rc;
            mco_runtime_info_t info;
            unsigned int dict_no = 0;
            mco_metadict_header_t *header;
            unsigned int udf_map_size;
            mco_userdef_funcs_h udf_map;

            ...
            mco_runtime_start();
            mco_get_runtime_info(&info);
            ...

            header = (mco_metadict_header_t *) malloc(size);
            mco_metadict_init(header, size); /* initialize the metadict */
            ...
            /* Allocate udfmap */
            mco_uda_get_udfmap_size(metadict, dict_no, &udf_map_size);

            udf_map = (mco_userdef_funcs_h) malloc(udf_map_size);
            ...
        }

### Files

Header file:
mcouda.h
Source file:
mcouda.c
Library:
libmcouda.a