Helen,
Thanks for all the time you took to share your ideas in this post and the
prior concerning this issue.
I was NOT able to use this:
ALTER EXTERNAL FUNCTION funcname
[ENTRY_POINT 'new_entry_point']
[MODULE_NAME 'new_library_name'];
It would allow me to do this, but I was still getting the error.
Instead I had to the following:
1) Rename all RDB$DEPENDED_ON_NAME in the RDB$DEPENDENCIES table where
RDV$DEPENED_ON_TYPE = 15
/* Change the name of all existing UDF's to prefix them with
'xyz'. This allows us to successfully drop the FreeUDFLib functions */
UPDATE RDB$DEPENDENCIES SET RDB$DEPENDED_ON_NAME = 'xyz' ||
RDB$DEPENDED_ON_NAME WHERE RDB$DEPENDED_ON_TYPE = 15;
2) Drop all external functions (All had to be named)
DROP EXTERNAL FUNCTION F_BLOBMAXSEGMENTLENGTH;
DROP EXTERNAL FUNCTION F_BLOBSEGMENTCOUNT;
.
3) Install fresh FreeAdhocUDF library
4) Then finally restore all RDB$DEPENDED_ON_NAME in the
RDB$DEPENDENCIES table.
/* Activate the (old) dependendies */
UPDATE RDB$DEPENDENCIES
SET RDB$DEPENDED_ON_NAME = F_REPLACESTRING(RDB$DEPENDED_ON_NAME, 'xyz', '',
0, 0)
WHERE RDB$DEPENDED_ON_TYPE = 15 AND RDB$DEPENDED_ON_NAME STARTING WITH
'xyz';
After this I did a compile all procedures and triggers and it appears I had
success.
Of course all of this was on a metadata only restore.
I created a script to handle all of this when ready to do it again.
Thanks, for all you help.
Mike