The mi_named_zalloc() function

The mi_named_zalloc() function allocates and initializes a named-memory block in the specified memory duration.

Syntax

mi_integer *mi_named_zalloc(size, mem_name, duration, mem_ptr)
   mi_integer size;
   mi_string mem_name;
   MI_MEMORY_DURATION duration;
   void **mem_ptr;
size
The number of bytes to allocate to the named-memory block.
mem_name
The null-terminated name to assign the named-memory block.
duration
A value that specifies the memory duration of the named-memory block to allocate. 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
mem_ptr
The pointer to the zero-filled allocated named-memory block.
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_zalloc() function allocates a named-memory block of size bytes of memory, with a memory duration of duration, and assigns it the name that mem_name references. It then initializes this named-memory block with zeros. The function saves the pointer to the allocated named-memory block in the mem_ptr argument. The mi_named_zalloc() function is a constructor function for named memory.
Important: The mi_named_zalloc() function only allocates a block of named memory. It does not request a lock on this memory.

A DataBlade API module can use the mi_named_free() function to free named memory when that memory is no longer needed.

Return values

MI_OK
The function was successful.
MI_NAME_ALREADY_EXISTS
A named-memory block with the mem_name name exist for the specified duration.
MI_ERROR
The function was not successful.

Copyright© 2019 HCL Technologies Limited