The mi_named_free() function

The mi_named_free() function frees a block of named memory.

Syntax

void mi_named_free(mem_name, duration)
   mi_string *mem_name;
   MI_MEMORY_DURATION duration;
mem_name
The null-terminated name of an existing named-memory block.
duration
A value that specifies the memory duration of the named-memory block to free. Valid values for duration are:
PER_ROUTINE
For the duration of one iteration of the UDR
PER_COMMAND
For the duration of the execution of the current subquery
PER_STATEMENT (Deprecated)
For the duration of the current SQL statement
PER_STMT_EXEC
For the duration of the execution of the current SQL statement
PER_STMT_PREP
For the duration of the current prepared SQL statement
PER_TRANSACTION
For the duration of one transaction
PER_SESSION
For the duration of the current client session
PER_SYSTEM
For the duration of the database server execution
Valid in client LIBMI application? Valid in user-defined routine?
No Yes
Important: This advanced function can adversely affect your UDR if you use the function incorrectly. Use it only when no regular DataBlade API function can perform the task you need done.

Usage

The mi_named_free() function frees a named-memory block based on its memory duration of duration and its name, which mem_name references. To conserve resources, use the mi_named_free() function to explicitly deallocate the named memory once your DataBlade API module no longer needs it. The mi_named_free() function is the destructor function for named memory. If you do not explicitly free named memory, the database server frees it when its memory duration expires.

If mem_name references a named-memory block that was already freed or does not reference a named-memory block, the mi_named_free() function does not return a value. The function returns silently in all cases, even when it cannot find mem_name.

The mi_named_free() function frees named memory previously allocated with the mi_named_alloc() or mi_named_zalloc() function. It does not free memory allocated with the malloc(), mi_alloc(), mi_dalloc(), or the mi_zalloc() function.
Restriction: Do not attempt to free a named-memory block if it is currently locked. Always unlock a named-memory block with the mi_unlock_memory() function before you attempt to free the memory. Failure to do so can severely impact the operation of the database server.

Return values

None.


Copyright© 2019 HCL Technologies Limited