Library Version Compatibility (extfn_check_version_compatibility)

Use the extfn_check_version_compatibility method to define compatibility criteria for library versions across nodes in a multiplex.

Implementation

A v4 library can define this optional entry point:
a_bool extfn_check_version_compatibility( uint8 *buff, size_t len ); 

Description

Library versioning methods are at the library level, and do not have the a_v4 prefix in their method name.

This optional entry point accepts a buffer containing the version string and the version string length. It returns whether or not the library version on the target node is compatible with the version string parameter. The library developer defines the compatibility criteria.

Interaction with extfn_get_library_version

The leader node calls extfn_get_library_version before checking version compatibility. If extfn_get_library_version is not implemented on the leader node, then there is no distribution. If extfn_get_library_version is implemented on the leader node, then the UDF or TPF is eligible for distribution. Being eligible for distribution is not a guarantee that distributed query processing will occur.

The extfn_get_library_version method can return a 0-length string; however, this does not mean that extfn_get_library_version is not implemented.

Note: A TPF or UDF is still eligible for distribution if extfn_get_library_version returns a 0-length string.

If extfn_get_library_version returns a 0-length string, whether or not the worker node accepts the distributed work depends on the extfn_check_version_compatibility implementation on the worker node. A worker node requires a compatible library to process distributed work.

Related tasks
Setting the Dynamic Library Interface
Related reference
Library Version (extfn_get_library_version)