Subject Re: UDF's
Author Ian A. Newby
In IB-Architect@y..., Jim Starkey <jas@n...> wrote:

> There are two issues. I think everyone agrees that a larger
> (and better) library would be better. The question of
> is quite different. The existing philosophy, admittedly long in
> tooth, is that various groups or applications with no relationship
> could share a machine, which mandated per database administration.
> This question has been revisited a number of times. I have always
> favored decentralization.

I agree that the need for database specific udf's is required, but
what I am suggesting is that certain generic udf's could be written
and shipped as part of the core interbase/Firebird engine. If you scan
the newsgroups there are many questions of the form "how do I ..." for
which the answer is invariably "use a udf". If the generic udf's were
compiled and included in the distribution and were automatically
accessable from any database this would end. This would also get
around the problem which I personally face of writing udf's for
multiple platforms for which I don't have the compiler.

Correctly written udf's could also I belive get around the lack of
support for certain interbase/firebird features in the stored
procedure/ trigger language and dynamic SQL, namely BLOB access,
string manipulation, array support? etc.

> The exiting mechanism can pass internal descriptors (which have
> all the crud you want), but it isn't particularly documented.
> Read to code and write a HOWTO.

Any pointers as to where in the code I should look? Does this also
cover pre-allocation of return parameters?

> My favorite topic. Not a non-trivial undertaking. The strategic
> question is whether to bless a single JVM or try to support the
> full herd. In theory it shouldn't make a difference...
> However, supporting UDFs in Java would require engine local JDBC
> semantics, which is a mouthfull.

I have read your java triggers document on ibpheonix and belive that
for me at least, this would be the ideal solution. If only it would
appear in interbase/firebird! (I am useless at C so don't look at me
to do it if you want it to work!)

Ian Newby