Alright. 
Indeed, the syntax is now ok and if I implement the subjoin version then it also works again.





On 8 January 2016 at 15:32, Roberto Cornacchia <roberto.cornacchia@gmail.com> wrote:
UPDATE:

Looking at src/sql/backends/monet5/LSST/Tests/lsst_htmxmatch.sql, it seems that the syntax I need is indeed 

where [t.name] maxlevenshtein [f.name, 2]

However, now I suspect that the problem is that my join was implemented as:

str
STRdistjoin_levenshtein(bat *r1, bat *r2, const bat *lid, const bat *rid, const int *k)

and not as STRdistjoin_levenshteinsubjoin

Is this needed in Jul2015? And do I need also the subselect version?

Is there any guideline to help? I find all these subjoin/subselect implementations rather unfriendly ;)

Roberto


On 8 January 2016 at 15:01, Roberto Cornacchia <roberto.cornacchia@gmail.com> wrote:
Hi there,

I'm a bit struggling with the syntax for filter function, after it changed from Oct2014 to Jul2015.
I have looked at the release notes, but they don't seem to even mention this change of syntax.



This used to work in Oct2014:

create filter function maxlevenshtein(s1 string, s2 string, k int) 
external name str."distjoin_levenshtein";

select t.name, f.name 
from sys.tables t, sys.functions f
where t.name maxlevenshtein(2) f.name;

In Jul2015, if I look at Niels' comment in https://www.monetdb.org/bugzilla/show_bug.cgi?id=3702 , it should be something similar to

select t.name, f.name 
from sys.tables t, sys.functions f
where [t.name] maxlevenshtein [f.name, 2];

But this is still not right. How should it be? And should I change the SQL / MAL / C interface of the function as well?

Thanks,