Routine name

A user-defined routine is typically defined in SQL and implemented in C.

When a user-defined routine is created in a database, the SQL routine and a C function are connected.

For example, the SQL function AddIntegers() is created with the following statement:
CREATE FUNCTION AddIntegers() 
RETURNS integer 
EXTERNAL NAME "$INFORMIXDIR/extend/AddInts.1.0/AddInts.bld(AddInts)" 
LANGUAGE C; 

When the SQL function AddIntegers() is called, the HCL Informix® server calls the C function AddInts() in the library AddInts.bld.

The SQL object model treats routines with the same name but different parameters as different routines. For example, the HCL Informix® server allows the following functions to exist in the same database and selects which one to call depending on the signature:
CREATE FUNCTION AddIntegers(integer) ...; 
CREATE FUNCTION AddIntegers(float) ...;
In C, function names must be unique. Two C functions with different names are required to implement the two user-defined routines created in the preceding SQL statements, as follows:
CREATE FUNCTION AddIntegers(integer) 
RETURNS integer 
EXTERNAL NAME "$INFORMIXDIR/extend/AddInts.1.0/AddInts.bld(AddInts)" 
LANGUAGE C;   ...  

CREATE FUNCTION AddIntegers(float) 
RETURNS float EXTERNAL NAME "$INFORMIXDIR/extend/AddInts.1.0/AddInts.bld(AddInts1)" 
LANGUAGE C; 

In this example, the C function names are AddInts() and AddInts1().

For more information about routines and routine names, see the HCL® Informix® User-Defined Routines and Data Types Developer's Guide.