Как выполнить функцию MAL в monetdb?

Я читаю Внутреннее описание MonetDB, потому что мне интересно реализовать специальную процедуру непосредственно на языке алгебры MonetDB (MAL) вместо SQL-интерфейса (я надеюсь, что при этом увеличу производительность). Вот пример кода MAL, предоставленного в документации MonetDB

 function sample(nme:str, val:any_1):bit;
    c := 2 * 3;
    b := bbp.bind(nme);  #find a BAT
    h := algebra.select(b,val,val);
    t := aggr.count(h);
    x := io.print(t);
    y := io.print(val);
 end sample;

Мой вопрос заключается в том, как выполнить такой код MAL на одной из моих существующих баз данных?

Спасибо за любой повтор

1 ответ

Решение

Клиентская программа monetdb имеет языковую директиву -l.

Используйте команду:

mclient -d -l mal

вы увидите приглашение mal>, после чего вы сможете вызвать функцию, например:

mal> sample ('colname', 23)

Обратите внимание, что операция bbp.bind() имеет неверный тип. Это не может быть установлено во время компиляции. Используйте вместо:

b: bat [: oid,: any_1]: = bpp.bind (nme);

Другие вопросы по тегам