Support user defined funcation


#1

it seems that sciDB do not support user defined funcation. i don’t find any operator or funcation support it.
should it be included in SciDB?


#2

Hello,

Quite the opposite. Our system building blocks are:
-Datatypes (int64, float, datetimetz,…)
-Functions (+, -, sqrt, pow, log,…): accept a fixed number of arguments (usually 1, 2 or 3) and return a scalar value
-Aggregates (sum, min, avg…): accept a set of arguments (could be arbitrarily large) and return a scalar value
-Operators (scan, apply, filter, transpose,…): accept one or more arrays, and return an array
And, any of the four items above are user-defineable. So (in order) you are allowed to create UDTs, UDFs, UDAs and UDOs.

If you download the source tarball, and take a look at src/examples, you will see example UDTs and UDFs that can be built and added to the system. Our User’s Guide also has section
16. SciDB Plugins: Extending SciDB Functionality
That section describes how to write UDTs, UDFs and UDOs.

UDAs are also currently supported but the API will be changing in the next month or so. Still, let us know if you are interested in UDAs and we’ll walk you through the process of creating one.

Hope it helps. Let us know if you have questions about any of these.
–Alex Poliakov


#3

Also, take a look at these posts for more information on UDFs:

viewtopic.php?f=11&t=484
viewtopic.php?f=6&t=486#p770


#4

thank you so much. i have a test with an UDF successfully.


#5

[quote=“apoliakov”]Also, take a look at these posts for more information on UDFs:

viewtopic.php?f=11&t=484
viewtopic.php?f=6&t=486#p770[/quote]

Hey apo, where can I find the latest info on this? I take it this is slightly outdated by now?


#6

I’m not Alex, but I can answer the question. We’ve not changed the UDF/UDT mechanisms recently.

These conversations don’t talk about other extensibility options–User-Defined Aggregates, and User-Defined Operators–in any detail. But these are (much) more complex APIs. Your best best is to look into the contents of the ‘examples’ directory, where we ship code that implements all of these kinds of extensions.