How to drop new UDFs like TRIM from old databases?
You might have this problem if you migrate your database from earlier Firebird versions to a newer one. It is possible that in old version you had to use an UDF function for some purpose (like, for example, trimming a char column) and new version of Firebird has it as a built in function. Trying to drop it results in an 'Token unknown' error:
DROP EXTERNAL FUNCTION TRIM;
The problem is that Firebird's SQL parser now treats the TRIM token differently. Still, you'd want to remove that declaration, because built in TRIM works much better (no issues with character set, input column size, etc.).
To accomplish this, you need to put the function name in quotes:
DROP EXTERNAL FUNCTION "TRIM";