List:General Discussion« Previous MessageNext Message »
From:Stefan Kuhn Date:November 4 2012 10:23pm
Subject:UDF behaves non-deterministic
View as plain text  
Hi all,
I have a weired (for me at least) problem with a user defined function, 
written in C. The function seems to return different results in different 
runs (the code of the function does not contain random elements). Basically, 
the function calculates a score based on a column in a table and an input 
value. So I do something like this:
select * from table order by udf(column, 'input_value') desc;
For my understanding, this should give the same result always. But if I run 
many statements (execution is from a java program and I can do it in parallel 
threads) so that they overlap (the udf on a large table takes 5-10 s on a 
slow machine), the results of some queries are different. If I have enough 
time between statements, it seems to work, i. e. the result is always the 
same. I would have thought the statements are independent, even if executed 
on different jdbc connections in parallel.
Does somebody have an idea?
Or could somebody give an idea on debugging? Normally I would try to debug the 
code to see what goes on, but how can I do this in a udf? Can I log in the 
udf?
Thanks for any hints,
Stefan
Thread
UDF behaves non-deterministicStefan Kuhn4 Nov
  • Re: UDF behaves non-deterministicDan Nelson5 Nov
  • Re: UDF behaves non-deterministicwalter harms5 Nov
  • Re: UDF behaves non-deterministichsv5 Nov
    • Re: UDF behaves non-deterministicStefan Kuhn5 Nov
Re: UDF behaves non-deterministicMichael Dykman4 Nov
  • Re: UDF behaves non-deterministicStefan Kuhn4 Nov