Arguments to UDRs in Remote Databases

UDRs are valid in cross-database and in cross-server distributed operations in most contexts where a UDR is valid in the local database, but every participating database must have the same logging mode.

Excluding BIGSERIAL, BYTE, SERIAL, SERIAL8, and TEXT, the data types that are valid as arguments to cross-server UDRs include the built-in SQL data types that are not opaque, as listed in Data Types in Distributed Queries, and these additional built-in opaque and DISTINCT data types:
  • BOOLEAN
  • LVARCHAR
  • DISTINCT of built-in types that are not opaque
  • DISTINCT of BOOLEAN
  • DISTINCT of LVARCHAR
  • DISTINCT of the DISTINCT types listed above.

These data types can be arguments to SPL, C, or Java language UDRs, if the UDRs are defined in all the participating databases. Any implicit or explicit casts defined over these data types must be duplicated across all the participating Informix® instances. The DISTINCT data types must have exactly the same data type hierarchy defined in all databases that participate in the distributed query.

The same data types are valid as arguments in calls to UDRs in other databases of the same Informix® instance, as well as arguments of the following additional types:
  • BLOB
  • CLOB
  • UDTs that you cast explicitly to built-in types
All the UDRs, UDTs, DISTINCT data types, DISTINCT type hierarchies, casts, and cast functions must be registered in all of the participating databases. For more information on DISTINCT types in distributed operations, see DISTINCT Types in Distributed Operations.