FW: user defnined function problem

Niall Rooney N.Rooney at sophiasearch.com
Tue Jan 7 11:39:03 CET 2014


Hello Stefan,

I have 80_udf.mal in .../lib/monetdb5/autoload with the line

include udf;

but I seem to still have a problem creating a udf function. I tried this simple definition:

80_udf.sql

create function identInt(val integer)
returns double external name udf.identInt;

udf.c
str UDFidentInt(int * res, int * val)
{
        *res =  *val ;
        return MAL_SUCCEED;
}

udf.h
udf_export str UDFidentInt(int * res, int * val);


udf.mal

command identInt(val:int):int
address UDFidentInt
comment "return val";


I get the error message:

TypeException:user.s2_1[3]:'udf.identint' undefined in: _5:any := udf.identint(_4:int)

Best
Niall
-----Original Message-----
From: developers-list [mailto:developers-list-bounces+n.rooney=sophiasearch.com at monetdb.org] On Behalf Of Sjoerd Mullender
Sent: 06 January 2014 22:04
To: developers-list at monetdb.org
Subject: Re: FW: user defnined function problem

You also need something like 80_udf.mal in .../lib/monetdb5/autoload with the line

include udf;

in it.

On 2014-01-06 18:46, Niall Rooney wrote:
> Hello Stefan,
>
> I tried doing so on a newly created database but I had the same error message.
>
>
> -----Original Message-----
> From: developers-list
> [mailto:developers-list-bounces+n.rooney=sophiasearch.com at monetdb.org]
> On Behalf Of Stefan Manegold
> Sent: 06 January 2014 17:32
> To: Communication channel for developers of the MonetDB suite.
> Subject: Re: user defnined function problem
>
> Hi,
>
> as all XY_*.sql files that are installed into <LIBDIR>/monetdb5/createdb/ also 80_udf.sql get only loaded and executed the first time mserver5 is started on a virgin empty (i.e., newly created) DB (then the content is persistently kept in the DB's catalog.
>
> Thus, to get your newly added funtion working (i.e., added to the SQL catalog), you either need to create a new database, or execute the SQL commands you added to 80_udf.sql by hand (once) in mclient.
>
> Best,
> Stefan
>
> ----- Original Message -----
>>
>>
>> Hello,
>>
>>
>>
>> I am making the following adjustment to the user defined function
>> template files .
>>
>>
>>
>>
>> I am using MonetDB-11.15.15 built from source on Ubuntu 12.04.
>>
>> I have added to the following files in the ./sql/backends/monet5/UDF
>> directory as shown:
>>
>>
>>
>>
>>
>> 80_udf.sql
>>
>>
>>
>> create function sumProb(prob1 double, prob2 double)
>>
>> returns double external name udf.sumProb;
>>
>>
>>
>> udf.mal
>>
>>
>>
>> module udf;
>>
>>
>>
>> command sumProb(prob1:dbl,prob2:dbl):dbl
>>
>> address UDFSumProb
>>
>> comment "sum two probabilities";
>>
>>
>>
>> udf.c
>>
>>
>>
>> str UDFSumProb(dbl * res, dbl * prob1, dbl * prob2)
>>
>> {
>>
>> *res = *prob1 + *prob2;
>>
>> return MAL_SUCCEED;
>>
>> }
>>
>>
>>
>> udf.h
>>
>>
>>
>> udf_export str UDFSumProb(dbl * res, dbl * prob1, dbl * prob2);
>>
>>
>>
>> I did a configure/make/make install and tried the following call in mclient:
>>
>>
>>
>> declare a, b,c double; set a= 0.1; set b= 0.2; select
>> c=jsdistance(a,b);
>>
>>
>>
>> and get the error:
>>
>>
>>
>> TypeException:user.s2_1[8]:'udf.sumprob' undefined in: _12:any :=
>> udf.sumprob(_8:dbl, _11:dbl)
>>
>> program contains errors
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> developers-list mailing list
>> developers-list at monetdb.org<mailto:developers-list at monetdb.org>
>> https://www.monetdb.org/mailman/listinfo/developers-list
>>
>

--
Sjoerd Mullender


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.monetdb.org/pipermail/developers-list/attachments/20140107/32cefc69/attachment.html>


More information about the developers-list mailing list