FirebirdDbComparer icon indicating copy to clipboard operation
FirebirdDbComparer copied to clipboard

External function with BLOB parameter not correctly "compared"

Open la-we opened this issue 2 years ago • 0 comments

A "declare external function" command is not correctly generated when the input and output parameter are of BLOB type.

This is being generated:

DECLARE EXTERNAL FUNCTION U_FOO 
    BLOB SUB_TYPE 0 BY DESCRIPTOR
    RETURNS PARAMETER BLOB SUB_TYPE 0 BY DESCRIPTOR
    ENTRY_POINT 'Foo' 
    MODULE_NAME 'Bar';

This is the expected output:

DECLARE EXTERNAL FUNCTION U_FOO
    BLOB,
    BLOB
    RETURNS PARAMETER 2
    ENTRY_POINT 'Foo'
    MODULE_NAME 'Bar';

The latter command was also used to declare the UDF in the first place and is being generated when using the IBExpert DatabaseComparer.

Just for completeness, here is the method declaration in the C library itself

__declspec(dllexport) BLOBCALLBACK Foo(BLOBCALLBACK input, BLOBCALLBACK output)

la-we avatar Apr 13 '22 11:04 la-we