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 

Reply via email to